summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/Makefile.am3
-rw-r--r--apps/Makefile.in351
-rw-r--r--apps/X11/InstallMgr/ABOUT-NLS226
-rw-r--r--apps/X11/InstallMgr/AUTHORS0
-rw-r--r--apps/X11/InstallMgr/COPYING340
-rw-r--r--apps/X11/InstallMgr/ChangeLog0
-rw-r--r--apps/X11/InstallMgr/INSTALL182
-rw-r--r--apps/X11/InstallMgr/Makefile421
-rw-r--r--apps/X11/InstallMgr/Makefile.am25
-rw-r--r--apps/X11/InstallMgr/Makefile.in421
-rw-r--r--apps/X11/InstallMgr/NEWS0
-rw-r--r--apps/X11/InstallMgr/README0
-rw-r--r--apps/X11/InstallMgr/acconfig.h9
-rw-r--r--apps/X11/InstallMgr/aclocal.m41227
-rwxr-xr-xapps/X11/InstallMgr/autogen.sh15
-rw-r--r--apps/X11/InstallMgr/config.h134
-rw-r--r--apps/X11/InstallMgr/config.h.in133
-rwxr-xr-xapps/X11/InstallMgr/configure4995
-rw-r--r--apps/X11/InstallMgr/configure.in42
-rwxr-xr-xapps/X11/InstallMgr/install-sh251
-rw-r--r--apps/X11/InstallMgr/installmgr.glade1220
-rw-r--r--apps/X11/InstallMgr/intl/ChangeLog1086
-rw-r--r--apps/X11/InstallMgr/intl/Makefile214
-rw-r--r--apps/X11/InstallMgr/intl/Makefile.in214
-rw-r--r--apps/X11/InstallMgr/intl/VERSION1
-rw-r--r--apps/X11/InstallMgr/intl/bindtextdom.c203
-rw-r--r--apps/X11/InstallMgr/intl/cat-compat.c262
-rw-r--r--apps/X11/InstallMgr/intl/dcgettext.c624
-rw-r--r--apps/X11/InstallMgr/intl/dgettext.c59
-rw-r--r--apps/X11/InstallMgr/intl/explodename.c188
-rw-r--r--apps/X11/InstallMgr/intl/finddomain.c216
-rw-r--r--apps/X11/InstallMgr/intl/gettext.c70
-rw-r--r--apps/X11/InstallMgr/intl/gettext.h105
-rw-r--r--apps/X11/InstallMgr/intl/gettextP.h89
-rw-r--r--apps/X11/InstallMgr/intl/hash-string.h59
-rw-r--r--apps/X11/InstallMgr/intl/intl-compat.c76
-rw-r--r--apps/X11/InstallMgr/intl/l10nflist.c411
-rw-r--r--apps/X11/InstallMgr/intl/libgettext.h182
-rw-r--r--apps/X11/InstallMgr/intl/linux-msg.sed100
-rw-r--r--apps/X11/InstallMgr/intl/loadinfo.h76
-rw-r--r--apps/X11/InstallMgr/intl/loadmsgcat.c222
-rw-r--r--apps/X11/InstallMgr/intl/localealias.c424
-rw-r--r--apps/X11/InstallMgr/intl/po2tbl.sed60
-rw-r--r--apps/X11/InstallMgr/intl/po2tbl.sed.in102
-rw-r--r--apps/X11/InstallMgr/intl/textdomain.c108
-rw-r--r--apps/X11/InstallMgr/intl/xopen-msg.sed104
-rw-r--r--apps/X11/InstallMgr/macros/Makefile255
-rw-r--r--apps/X11/InstallMgr/macros/Makefile.am40
-rw-r--r--apps/X11/InstallMgr/macros/Makefile.in255
-rw-r--r--apps/X11/InstallMgr/macros/aclocal-include.m416
-rw-r--r--apps/X11/InstallMgr/macros/autogen.sh145
-rw-r--r--apps/X11/InstallMgr/macros/compiler-flags.m4109
-rw-r--r--apps/X11/InstallMgr/macros/curses.m4318
-rw-r--r--apps/X11/InstallMgr/macros/gnome-bonobo-check.m4150
-rw-r--r--apps/X11/InstallMgr/macros/gnome-common.m414
-rw-r--r--apps/X11/InstallMgr/macros/gnome-fileutils.m4414
-rw-r--r--apps/X11/InstallMgr/macros/gnome-gettext.m4336
-rw-r--r--apps/X11/InstallMgr/macros/gnome-ghttp-check.m414
-rw-r--r--apps/X11/InstallMgr/macros/gnome-gnorba-check.m435
-rw-r--r--apps/X11/InstallMgr/macros/gnome-guile-checks.m4119
-rw-r--r--apps/X11/InstallMgr/macros/gnome-libgtop-check.m4182
-rw-r--r--apps/X11/InstallMgr/macros/gnome-objc-checks.m479
-rw-r--r--apps/X11/InstallMgr/macros/gnome-orbit-check.m433
-rw-r--r--apps/X11/InstallMgr/macros/gnome-print-check.m4171
-rw-r--r--apps/X11/InstallMgr/macros/gnome-pthread-check.m416
-rw-r--r--apps/X11/InstallMgr/macros/gnome-support.m468
-rw-r--r--apps/X11/InstallMgr/macros/gnome-undelfs.m420
-rw-r--r--apps/X11/InstallMgr/macros/gnome-vfs.m4120
-rw-r--r--apps/X11/InstallMgr/macros/gnome-x-checks.m480
-rw-r--r--apps/X11/InstallMgr/macros/gnome-xml-check.m430
-rw-r--r--apps/X11/InstallMgr/macros/gnome.m4124
-rw-r--r--apps/X11/InstallMgr/macros/linger.m428
-rw-r--r--apps/X11/InstallMgr/macros/need-declaration.m442
-rwxr-xr-xapps/X11/InstallMgr/missing190
-rwxr-xr-xapps/X11/InstallMgr/mkinstalldirs40
-rw-r--r--apps/X11/InstallMgr/pixmaps/arrow2r.xpm25
-rw-r--r--apps/X11/InstallMgr/pixmaps/filenew.xpm25
-rw-r--r--apps/X11/InstallMgr/pixmaps/globe.xpm24
-rw-r--r--apps/X11/InstallMgr/pixmaps/sword.xpm875
-rw-r--r--apps/X11/InstallMgr/pixmaps/trash.xpm25
-rw-r--r--apps/X11/InstallMgr/po/ChangeLog0
-rw-r--r--apps/X11/InstallMgr/po/Makefile252
-rw-r--r--apps/X11/InstallMgr/po/Makefile.in248
-rw-r--r--apps/X11/InstallMgr/po/Makefile.in.in248
-rw-r--r--apps/X11/InstallMgr/po/POTFILES4
-rw-r--r--apps/X11/InstallMgr/po/POTFILES.in6
-rw-r--r--apps/X11/InstallMgr/po/cat-id-tbl.c43
-rw-r--r--apps/X11/InstallMgr/po/installmgr.pot137
-rw-r--r--apps/X11/InstallMgr/po/stamp-cat-id1
-rw-r--r--apps/X11/InstallMgr/src/FTPDownload.cpp29
-rw-r--r--apps/X11/InstallMgr/src/FTPDownload.h16
-rw-r--r--apps/X11/InstallMgr/src/InfoFrm.cpp33
-rw-r--r--apps/X11/InstallMgr/src/InfoFrm.h32
-rw-r--r--apps/X11/InstallMgr/src/InstallMgr.conf5
-rw-r--r--apps/X11/InstallMgr/src/InstallMgr.cpp33
-rw-r--r--apps/X11/InstallMgr/src/MainFrm.cpp1526
-rw-r--r--apps/X11/InstallMgr/src/MainFrm.h169
-rw-r--r--apps/X11/InstallMgr/src/Makefile387
-rw-r--r--apps/X11/InstallMgr/src/Makefile.am20
-rw-r--r--apps/X11/InstallMgr/src/Makefile.in387
-rw-r--r--apps/X11/InstallMgr/src/RemoteMntFrm.cpp145
-rw-r--r--apps/X11/InstallMgr/src/RemoteMntFrm.h49
-rw-r--r--apps/X11/InstallMgr/src/StatusFrm.cpp175
-rw-r--r--apps/X11/InstallMgr/src/StatusFrm.h61
-rw-r--r--apps/X11/InstallMgr/src/callbacks.cpp154
-rw-r--r--apps/X11/InstallMgr/src/callbacks.h72
-rw-r--r--apps/X11/InstallMgr/src/cipherfrm.cpp67
-rw-r--r--apps/X11/InstallMgr/src/cipherfrm.h36
-rw-r--r--apps/X11/InstallMgr/src/interface.c510
-rw-r--r--apps/X11/InstallMgr/src/interface.h10
-rw-r--r--apps/X11/InstallMgr/src/main.cpp47
-rw-r--r--apps/X11/InstallMgr/src/pix/arrow2r.xpm24
-rw-r--r--apps/X11/InstallMgr/src/pix/bookshut.xpm24
-rw-r--r--apps/X11/InstallMgr/src/pix/bulblk.xpm26
-rw-r--r--apps/X11/InstallMgr/src/pix/bulbon.xpm25
-rw-r--r--apps/X11/InstallMgr/src/pix/filenew.xpm25
-rw-r--r--apps/X11/InstallMgr/src/pix/fingerup.xpm24
-rw-r--r--apps/X11/InstallMgr/src/pix/globe.xpm24
-rw-r--r--apps/X11/InstallMgr/src/pix/null.xpm5
-rw-r--r--apps/X11/InstallMgr/src/pix/sword.xpm875
-rw-r--r--apps/X11/InstallMgr/src/pix/trash.xpm25
-rw-r--r--apps/X11/InstallMgr/src/pix/upgrdlk.xpm25
-rw-r--r--apps/X11/InstallMgr/src/support.c143
-rw-r--r--apps/X11/InstallMgr/src/support.h34
-rw-r--r--apps/X11/InstallMgr/stamp-h1
-rw-r--r--apps/X11/InstallMgr/stamp-h.in1
-rw-r--r--apps/X11/Makefile5
-rw-r--r--apps/X11/VCL/Makefile4
-rw-r--r--apps/X11/VCL/TComponent.cpp8
-rw-r--r--apps/X11/VCL/TComponent.h134
-rw-r--r--apps/X11/VCL/TControl.cpp1874
-rw-r--r--apps/X11/VCL/TControl.h331
-rw-r--r--apps/X11/VCL/TCustomImageList.cpp1142
-rw-r--r--apps/X11/VCL/TCustomImageList.h136
-rw-r--r--apps/X11/VCL/TCustomTabControl.cpp7
-rw-r--r--apps/X11/VCL/TCustomTabControl.h103
-rw-r--r--apps/X11/VCL/TCustomTreeView.cpp1169
-rw-r--r--apps/X11/VCL/TCustomTreeView.h238
-rw-r--r--apps/X11/VCL/TDragImageList.cpp144
-rw-r--r--apps/X11/VCL/TDragImageList.h40
-rw-r--r--apps/X11/VCL/TImageList.cpp2
-rw-r--r--apps/X11/VCL/TImageList.h28
-rw-r--r--apps/X11/VCL/TObject.cpp7
-rw-r--r--apps/X11/VCL/TObject.h38
-rw-r--r--apps/X11/VCL/TPageControl.cpp408
-rw-r--r--apps/X11/VCL/TPageControl.h113
-rw-r--r--apps/X11/VCL/TPersistent.cpp2
-rw-r--r--apps/X11/VCL/TPersistent.h19
-rw-r--r--apps/X11/VCL/TTreeNode.cpp1003
-rw-r--r--apps/X11/VCL/TTreeNode.h163
-rw-r--r--apps/X11/VCL/TTreeNodes.cpp553
-rw-r--r--apps/X11/VCL/TTreeNodes.h90
-rw-r--r--apps/X11/VCL/TTreeView.cpp1
-rw-r--r--apps/X11/VCL/TTreeView.h92
-rw-r--r--apps/X11/VCL/TWinControl.cpp16
-rw-r--r--apps/X11/VCL/TWinControl.h331
-rw-r--r--apps/X11/VCL/property77
-rw-r--r--apps/X11/cheatah/AUTHORS1
-rw-r--r--apps/X11/cheatah/COPYING340
-rw-r--r--apps/X11/cheatah/ChangeLog2
-rw-r--r--apps/X11/cheatah/INSTALL10
-rw-r--r--apps/X11/cheatah/Makefile.am14
-rw-r--r--apps/X11/cheatah/Makefile.in385
-rw-r--r--apps/X11/cheatah/NEWS1
-rw-r--r--apps/X11/cheatah/README4
-rw-r--r--apps/X11/cheatah/aclocal.m4299
-rw-r--r--apps/X11/cheatah/cheatah.cpp654
-rw-r--r--apps/X11/cheatah/cheatah.h162
-rw-r--r--apps/X11/cheatah/cheatsig.cpp326
-rw-r--r--apps/X11/cheatah/cheatsig.h68
-rw-r--r--apps/X11/cheatah/configure1707
-rw-r--r--apps/X11/cheatah/configure.in25
-rw-r--r--apps/X11/cheatah/install-sh250
-rw-r--r--apps/X11/cheatah/missing188
-rw-r--r--apps/X11/cheatah/mkinstalldirs40
-rw-r--r--apps/X11/cheatah/save/Makefile.am2
-rw-r--r--apps/X11/cheatah/save/cheatah.glade406
-rw-r--r--apps/X11/cheatah/save/configure.in4
-rw-r--r--apps/X11/micros/AUTHORS1
-rw-r--r--apps/X11/micros/COPYING340
-rw-r--r--apps/X11/micros/ChangeLog2
-rw-r--r--apps/X11/micros/INSTALL10
-rw-r--r--apps/X11/micros/Makefile18
-rw-r--r--apps/X11/micros/NEWS1
-rw-r--r--apps/X11/micros/README1
-rw-r--r--apps/X11/micros/confdefs.h3
-rw-r--r--apps/X11/micros/micros.cpp699
-rw-r--r--apps/X11/micros/micros.h151
-rw-r--r--apps/X11/micros/microssig.cpp125
-rw-r--r--apps/X11/micros/microssig.h67
-rw-r--r--apps/X11/wxSword/Makefile26
-rw-r--r--apps/X11/wxSword/bak/gui_sword.mak18
-rw-r--r--apps/X11/wxSword/bak/project.prj17
-rw-r--r--apps/X11/wxSword/bitmaps/copy.bmpbin0 -> 238 bytes
-rw-r--r--apps/X11/wxSword/bitmaps/copy.xpm25
-rw-r--r--apps/X11/wxSword/bitmaps/cut.bmpbin0 -> 238 bytes
-rw-r--r--apps/X11/wxSword/bitmaps/cut.xpm24
-rw-r--r--apps/X11/wxSword/bitmaps/help.bmpbin0 -> 238 bytes
-rw-r--r--apps/X11/wxSword/bitmaps/help.xpm25
-rw-r--r--apps/X11/wxSword/bitmaps/new.bmpbin0 -> 238 bytes
-rw-r--r--apps/X11/wxSword/bitmaps/new.xpm24
-rw-r--r--apps/X11/wxSword/bitmaps/open.bmpbin0 -> 238 bytes
-rw-r--r--apps/X11/wxSword/bitmaps/open.xpm26
-rw-r--r--apps/X11/wxSword/bitmaps/page.bmpbin0 -> 714 bytes
-rw-r--r--apps/X11/wxSword/bitmaps/paste.bmpbin0 -> 238 bytes
-rw-r--r--apps/X11/wxSword/bitmaps/preview.bmpbin0 -> 238 bytes
-rw-r--r--apps/X11/wxSword/bitmaps/preview.xpm26
-rw-r--r--apps/X11/wxSword/bitmaps/print.bmpbin0 -> 238 bytes
-rw-r--r--apps/X11/wxSword/bitmaps/print.xpm26
-rw-r--r--apps/X11/wxSword/bitmaps/save.bmpbin0 -> 238 bytes
-rw-r--r--apps/X11/wxSword/bitmaps/save.xpm25
-rw-r--r--apps/X11/wxSword/gui_sword.cpp1075
-rw-r--r--apps/X11/wxSword/gui_sword.h11
-rw-r--r--apps/X11/wxSword/jptr.C199
-rw-r--r--apps/X11/wxSword/jptr.h95
-rw-r--r--apps/X11/wxSword/mondrian.xpm44
-rw-r--r--apps/console/Makefile.am3
-rw-r--r--apps/console/Makefile.in351
-rw-r--r--apps/console/diatheke/Makefile.am9
-rw-r--r--apps/console/diatheke/Makefile.in373
-rw-r--r--apps/console/diatheke/README76
-rwxr-xr-xapps/console/diatheke/cgi/dia-def.pl41
-rwxr-xr-xapps/console/diatheke/cgi/diatheke.pl467
-rw-r--r--apps/console/diatheke/cgi/index-private.html1264
-rw-r--r--apps/console/diatheke/cgi/index-public.html883
-rw-r--r--apps/console/diatheke/corediatheke.cpp427
-rw-r--r--apps/console/diatheke/corediatheke.h39
-rw-r--r--apps/console/diatheke/diafiltmgr.cpp221
-rw-r--r--apps/console/diatheke/diafiltmgr.h44
-rw-r--r--apps/console/diatheke/diatheke.cpp213
-rw-r--r--apps/console/diatheke/diatheke.dsp196
-rw-r--r--apps/console/diatheke/diatheke.dsw44
-rw-r--r--apps/console/diatheke/diathekemgr.cpp107
-rw-r--r--apps/console/diatheke/diathekemgr.h35
-rw-r--r--apps/console/diatheke/gbfcgi.cpp138
-rw-r--r--apps/console/diatheke/gbfcgi.h33
-rw-r--r--apps/console/diatheke/pqa/Diatheke.pqabin0 -> 662 bytes
-rw-r--r--apps/console/diatheke/pqa/src/README1
-rw-r--r--apps/console/diatheke/pqa/src/all.html170
-rw-r--r--apps/console/diatheke/pqa/src/ancient.html32
-rw-r--r--apps/console/diatheke/pqa/src/dict.html32
-rw-r--r--apps/console/diatheke/pqa/src/english.html68
-rw-r--r--apps/console/diatheke/pqa/src/french.html26
-rw-r--r--apps/console/diatheke/pqa/src/german.html35
-rw-r--r--apps/console/diatheke/pqa/src/index.html43
-rw-r--r--apps/console/diatheke/pqa/src/lex.html29
-rw-r--r--apps/console/diatheke/pqa/src/other.html57
-rw-r--r--apps/console/diatheke/pqa/src/spanish.html29
-rwxr-xr-xapps/console/diatheke/soap/sapouni.cgi97
-rwxr-xr-xapps/console/diatheke/soap/soapatheke.pl16
-rw-r--r--apps/console/diatheke/tcl/biblebot-diatheke.tcl2109
-rw-r--r--apps/console/diatheke/thmlcgi.cpp192
-rw-r--r--apps/console/diatheke/thmlcgi.h33
-rw-r--r--apps/wince/sword/include/dirent.h18
-rw-r--r--apps/wince/sword/include/fcntl.h23
-rw-r--r--apps/wince/sword/include/io.h1
-rw-r--r--apps/wince/sword/include/swordce.h11
-rw-r--r--apps/wince/sword/include/sys/stat.h2
-rw-r--r--apps/wince/sword/include/sys/types.h1
-rw-r--r--apps/wince/sword/include/unistd.h15
-rw-r--r--apps/wince/sword/src/dirent.cpp98
-rw-r--r--apps/wince/sword/src/swordce.cpp42
-rw-r--r--apps/wince/sword/src/unistd.cpp59
-rw-r--r--apps/wince/sword/swordlib.vcp18093
-rw-r--r--apps/wince/sword/swordlib.vcw98
-rw-r--r--apps/windoze/CBuilder1/mainform.cpp31
-rw-r--r--apps/windoze/CBuilder1/mainform.dfmbin0 -> 513 bytes
-rw-r--r--apps/windoze/CBuilder1/mainform.h28
-rw-r--r--apps/windoze/CBuilder1/sword.cpp35
-rw-r--r--apps/windoze/CBuilder1/sword.mak73
-rw-r--r--apps/windoze/CBuilder1/swordvcl/Unit1.cpp14
-rw-r--r--apps/windoze/CBuilder1/swordvcl/Unit1.dfmbin0 -> 189 bytes
-rw-r--r--apps/windoze/CBuilder1/swordvcl/Unit1.h21
-rw-r--r--apps/windoze/CBuilder1/swordvcl/swordcomp.cpp20
-rw-r--r--apps/windoze/CBuilder1/swordvcl/swordcomp.h19
-rw-r--r--apps/windoze/CBuilder1/swordvcl/swordvcl.cpp17
-rw-r--r--apps/windoze/CBuilder1/swordvcl/swordvcl.mak60
-rw-r--r--apps/windoze/CBuilder3/Makefile14
-rw-r--r--apps/windoze/CBuilder4/BibleCS/AboutBoxfrm.cpp92
-rw-r--r--apps/windoze/CBuilder4/BibleCS/AboutBoxfrm.dfmbin0 -> 2921 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/AboutBoxfrm.h36
-rw-r--r--apps/windoze/CBuilder4/BibleCS/Makefile13
-rw-r--r--apps/windoze/CBuilder4/BibleCS/ModInstForm.cpp14
-rw-r--r--apps/windoze/CBuilder4/BibleCS/ModInstForm.dfmbin0 -> 1539 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/ModInstForm.h27
-rw-r--r--apps/windoze/CBuilder4/BibleCS/RangeMaintFrm.cpp130
-rw-r--r--apps/windoze/CBuilder4/BibleCS/RangeMaintFrm.dfmbin0 -> 3507 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/RangeMaintFrm.h64
-rw-r--r--apps/windoze/CBuilder4/BibleCS/back.bmpbin0 -> 778 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/biblecsmgr.cpp80
-rw-r--r--apps/windoze/CBuilder4/BibleCS/biblecsmgr.h22
-rw-r--r--apps/windoze/CBuilder4/BibleCS/bookmark.bmpbin0 -> 758 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/bookmarkfrm.cpp221
-rw-r--r--apps/windoze/CBuilder4/BibleCS/bookmarkfrm.dfmbin0 -> 1627 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/bookmarkfrm.h48
-rw-r--r--apps/windoze/CBuilder4/BibleCS/bookmarks/personal.conf7
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/InstallBtn.BMPbin0 -> 26456 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/RunBtn.BMPbin0 -> 26456 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/alpha.bmpbin0 -> 921656 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/cdstartup.bpr182
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/cdstartup.cpp21
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/cdstartup.resbin0 -> 1896 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/html/Alpha/index.html246
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/html/alpha.html28
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/html/swordalpha.JPGbin0 -> 52 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/mainfrm.cpp48
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/mainfrm.dfmbin0 -> 488254 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/mainfrm.h37
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/sword.bmpbin0 -> 433216 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/swordalpha.BMPbin0 -> 433216 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/swordalpha.JPGbin0 -> 19708 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/confsafe/getsaved.conf10
-rw-r--r--apps/windoze/CBuilder4/BibleCS/confsafe/mods.conf304
-rw-r--r--apps/windoze/CBuilder4/BibleCS/confsafe/wtbsa.conf18
-rw-r--r--apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientForm.cpp46
-rw-r--r--apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientForm.dfmbin0 -> 1353 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientForm.h41
-rw-r--r--apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientProj.cpp24
-rw-r--r--apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientProj.mak55
-rw-r--r--apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientProj.resbin0 -> 876 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/editentryfrm.cpp330
-rw-r--r--apps/windoze/CBuilder4/BibleCS/editentryfrm.dfmbin0 -> 22859 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/editentryfrm.h108
-rw-r--r--apps/windoze/CBuilder4/BibleCS/getsaved.conf8
-rw-r--r--apps/windoze/CBuilder4/BibleCS/mainfrm.cpp1151
-rw-r--r--apps/windoze/CBuilder4/BibleCS/mainfrm.dfmbin0 -> 11039 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/mainfrm.h252
-rw-r--r--apps/windoze/CBuilder4/BibleCS/mods.conf487
-rw-r--r--apps/windoze/CBuilder4/BibleCS/newbmfilefrm.cpp14
-rw-r--r--apps/windoze/CBuilder4/BibleCS/newbmfilefrm.dfmbin0 -> 1734 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/newbmfilefrm.h27
-rw-r--r--apps/windoze/CBuilder4/BibleCS/optionfrm.cpp22
-rw-r--r--apps/windoze/CBuilder4/BibleCS/optionfrm.dfmbin0 -> 3375 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/optionfrm.h47
-rw-r--r--apps/windoze/CBuilder4/BibleCS/options.conf22
-rw-r--r--apps/windoze/CBuilder4/BibleCS/search.bmpbin0 -> 780 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/searchfrm.cpp192
-rw-r--r--apps/windoze/CBuilder4/BibleCS/searchfrm.dfmbin0 -> 3038 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/searchfrm.h69
-rw-r--r--apps/windoze/CBuilder4/BibleCS/sword.bpr201
-rw-r--r--apps/windoze/CBuilder4/BibleCS/sword.cpp41
-rw-r--r--apps/windoze/CBuilder4/BibleCS/sword.icobin0 -> 766 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/sword.resbin0 -> 1964 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/swordlib.bpr208
-rw-r--r--apps/windoze/CBuilder4/BibleCS/swordlib.cpp45
-rw-r--r--apps/windoze/CBuilder4/BibleCS/swordprj.bpg24
-rw-r--r--apps/windoze/CBuilder4/BibleCS/versesel.cpp22
-rw-r--r--apps/windoze/CBuilder4/BibleCS/versesel.dfmbin0 -> 773 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/versesel.h27
-rw-r--r--apps/windoze/CBuilder4/BibleCS/vrslstfrm.cpp48
-rw-r--r--apps/windoze/CBuilder4/BibleCS/vrslstfrm.dfmbin0 -> 563 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/vrslstfrm.h29
-rw-r--r--apps/windoze/CBuilder4/BibleCS/wtbsa.conf20
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/FTPDownload.cpp29
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/FTPDownload.h16
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/InfoFrm.cpp33
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/InfoFrm.dfmbin0 -> 1124 bytes
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/InfoFrm.h32
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/InstallMgr.bpg23
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/InstallMgr.bpr202
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/InstallMgr.conf5
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/InstallMgr.cpp33
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/InstallMgr.resbin0 -> 1796 bytes
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/MainFrm.cpp1021
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/MainFrm.dfmbin0 -> 32703 bytes
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/MainFrm.h139
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/RemoteMntFrm.cpp145
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/RemoteMntFrm.dfmbin0 -> 3327 bytes
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/RemoteMntFrm.h49
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/StatusFrm.cpp175
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/StatusFrm.dfmbin0 -> 1065 bytes
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/StatusFrm.h61
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/arrow2r.bmpbin0 -> 376 bytes
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/arrow3u.bmpbin0 -> 376 bytes
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/back.bmpbin0 -> 798 bytes
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/bookshut.bmpbin0 -> 376 bytes
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/bulblk.bmpbin0 -> 374 bytes
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/bulbon.bmpbin0 -> 376 bytes
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/check.bmpbin0 -> 374 bytes
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/cipherfrm.cpp67
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/cipherfrm.dfmbin0 -> 1172 bytes
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/cipherfrm.h36
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/delete.bmpbin0 -> 374 bytes
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/filenew.bmpbin0 -> 374 bytes
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/floppy.bmpbin0 -> 376 bytes
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/globe.bmpbin0 -> 376 bytes
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/insert.bmpbin0 -> 374 bytes
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/query.bmpbin0 -> 374 bytes
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/sword.bmpbin0 -> 8950 bytes
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/trash.bmpbin0 -> 376 bytes
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/undo.bmpbin0 -> 374 bytes
-rw-r--r--apps/windoze/CBuilder4/InstallMgr/upgdlk.bmpbin0 -> 374 bytes
-rw-r--r--apps/windoze/CBuilder4/UninstCust/CoolTools.bpr191
-rw-r--r--apps/windoze/CBuilder4/UninstCust/CoolTools.cpp55
-rw-r--r--apps/windoze/CBuilder4/UninstCust/CoolTools.resbin0 -> 1920 bytes
-rw-r--r--apps/windoze/CBuilder4/UninstCust/Project1.bpr179
-rw-r--r--apps/windoze/CBuilder4/UninstCust/Project1.cpp21
-rw-r--r--apps/windoze/CBuilder4/UninstCust/Project1.resbin0 -> 876 bytes
-rw-r--r--apps/windoze/CBuilder4/UninstCust/ProjectGroup1.bpg26
-rw-r--r--apps/windoze/CBuilder4/UninstCust/UninstCust.bpr178
-rw-r--r--apps/windoze/CBuilder4/UninstCust/UninstCust.cpp90
-rw-r--r--apps/windoze/CBuilder4/UninstCust/UninstCust.resbin0 -> 1912 bytes
-rw-r--r--apps/windoze/CBuilder4/UninstCust/Unit1.cpp107
-rw-r--r--apps/windoze/CBuilder4/UninstCust/Unit1.dfmbin0 -> 521 bytes
-rw-r--r--apps/windoze/CBuilder4/UninstCust/Unit1.h25
-rw-r--r--apps/windoze/CBuilder4/prototype/AboutBoxfrm.cpp85
-rw-r--r--apps/windoze/CBuilder4/prototype/AboutBoxfrm.dfmbin0 -> 2778 bytes
-rw-r--r--apps/windoze/CBuilder4/prototype/AboutBoxfrm.h36
-rw-r--r--apps/windoze/CBuilder4/prototype/AppBar.cpp108
-rw-r--r--apps/windoze/CBuilder4/prototype/AppBar.dfmbin0 -> 10204 bytes
-rw-r--r--apps/windoze/CBuilder4/prototype/AppBar.h84
-rw-r--r--apps/windoze/CBuilder4/prototype/Bitmap1.bmpbin0 -> 5318 bytes
-rw-r--r--apps/windoze/CBuilder4/prototype/BookMarkPanel.cpp344
-rw-r--r--apps/windoze/CBuilder4/prototype/BookMarkPanel.h39
-rw-r--r--apps/windoze/CBuilder4/prototype/CommentPanel.cpp222
-rw-r--r--apps/windoze/CBuilder4/prototype/CommentPanel.h39
-rw-r--r--apps/windoze/CBuilder4/prototype/DeskTopNameForm.cpp15
-rw-r--r--apps/windoze/CBuilder4/prototype/DeskTopNameForm.dfmbin0 -> 868 bytes
-rw-r--r--apps/windoze/CBuilder4/prototype/DeskTopNameForm.h27
-rw-r--r--apps/windoze/CBuilder4/prototype/LDPanel.cpp174
-rw-r--r--apps/windoze/CBuilder4/prototype/LDPanel.h39
-rw-r--r--apps/windoze/CBuilder4/prototype/ModInstForm.cpp14
-rw-r--r--apps/windoze/CBuilder4/prototype/ModInstForm.dfmbin0 -> 1457 bytes
-rw-r--r--apps/windoze/CBuilder4/prototype/ModInstForm.h27
-rw-r--r--apps/windoze/CBuilder4/prototype/ModTabPanel.cpp114
-rw-r--r--apps/windoze/CBuilder4/prototype/ModTabPanel.h30
-rw-r--r--apps/windoze/CBuilder4/prototype/TextPanel.cpp183
-rw-r--r--apps/windoze/CBuilder4/prototype/TextPanel.h34
-rw-r--r--apps/windoze/CBuilder4/prototype/back.bmpbin0 -> 780 bytes
-rw-r--r--apps/windoze/CBuilder4/prototype/biblecsmgr.cpp41
-rw-r--r--apps/windoze/CBuilder4/prototype/biblecsmgr.h18
-rw-r--r--apps/windoze/CBuilder4/prototype/bookmark.bmpbin0 -> 758 bytes
-rw-r--r--apps/windoze/CBuilder4/prototype/bookmarkfrm.cpp222
-rw-r--r--apps/windoze/CBuilder4/prototype/bookmarkfrm.dfmbin0 -> 1594 bytes
-rw-r--r--apps/windoze/CBuilder4/prototype/bookmarkfrm.h48
-rw-r--r--apps/windoze/CBuilder4/prototype/bookmarks/personal.conf4
-rw-r--r--apps/windoze/CBuilder4/prototype/desktop.bmpbin0 -> 374 bytes
-rw-r--r--apps/windoze/CBuilder4/prototype/desktop2.bmpbin0 -> 246 bytes
-rw-r--r--apps/windoze/CBuilder4/prototype/editentryfrm.cpp332
-rw-r--r--apps/windoze/CBuilder4/prototype/editentryfrm.dfmbin0 -> 22859 bytes
-rw-r--r--apps/windoze/CBuilder4/prototype/editentryfrm.h108
-rw-r--r--apps/windoze/CBuilder4/prototype/mainfrm.cpp824
-rw-r--r--apps/windoze/CBuilder4/prototype/mainfrm.dfmbin0 -> 10646 bytes
-rw-r--r--apps/windoze/CBuilder4/prototype/mainfrm.h238
-rw-r--r--apps/windoze/CBuilder4/prototype/mods.conf465
-rw-r--r--apps/windoze/CBuilder4/prototype/newbmfilefrm.cpp14
-rw-r--r--apps/windoze/CBuilder4/prototype/newbmfilefrm.dfmbin0 -> 1638 bytes
-rw-r--r--apps/windoze/CBuilder4/prototype/newbmfilefrm.h27
-rw-r--r--apps/windoze/CBuilder4/prototype/optionfrm.cpp20
-rw-r--r--apps/windoze/CBuilder4/prototype/optionfrm.dfmbin0 -> 2521 bytes
-rw-r--r--apps/windoze/CBuilder4/prototype/optionfrm.h39
-rw-r--r--apps/windoze/CBuilder4/prototype/options.conf15
-rw-r--r--apps/windoze/CBuilder4/prototype/search.bmpbin0 -> 780 bytes
-rw-r--r--apps/windoze/CBuilder4/prototype/searchfrm.cpp95
-rw-r--r--apps/windoze/CBuilder4/prototype/searchfrm.dfmbin0 -> 2304 bytes
-rw-r--r--apps/windoze/CBuilder4/prototype/searchfrm.h44
-rw-r--r--apps/windoze/CBuilder4/prototype/sword.bpr223
-rw-r--r--apps/windoze/CBuilder4/prototype/sword.cpp46
-rw-r--r--apps/windoze/CBuilder4/prototype/sword.resbin0 -> 876 bytes
-rw-r--r--apps/windoze/CBuilder4/prototype/swordlib.bpr214
-rw-r--r--apps/windoze/CBuilder4/prototype/swordlib.cpp36
-rw-r--r--apps/windoze/CBuilder4/prototype/swordprj.bpg23
-rw-r--r--apps/windoze/CBuilder4/prototype/versesel.cpp22
-rw-r--r--apps/windoze/CBuilder4/prototype/versesel.dfmbin0 -> 677 bytes
-rw-r--r--apps/windoze/CBuilder4/prototype/versesel.h27
-rw-r--r--apps/windoze/CBuilder4/prototype/vrslstfrm.cpp50
-rw-r--r--apps/windoze/CBuilder4/prototype/vrslstfrm.dfmbin0 -> 561 bytes
-rw-r--r--apps/windoze/CBuilder4/prototype/vrslstfrm.h29
-rw-r--r--apps/windoze/CBuilder5/BibleCS/AboutBoxfrm.cpp92
-rw-r--r--apps/windoze/CBuilder5/BibleCS/AboutBoxfrm.dfm151
-rw-r--r--apps/windoze/CBuilder5/BibleCS/AboutBoxfrm.h36
-rw-r--r--apps/windoze/CBuilder5/BibleCS/DevOfTheDay.bmpbin0 -> 8718 bytes
-rw-r--r--apps/windoze/CBuilder5/BibleCS/DevOfTheDay.cpp37
-rw-r--r--apps/windoze/CBuilder5/BibleCS/DevOfTheDay.dfm359
-rw-r--r--apps/windoze/CBuilder5/BibleCS/DevOfTheDay.h30
-rw-r--r--apps/windoze/CBuilder5/BibleCS/FontSel.cpp120
-rw-r--r--apps/windoze/CBuilder5/BibleCS/FontSel.dfm213
-rw-r--r--apps/windoze/CBuilder5/BibleCS/FontSel.h56
-rw-r--r--apps/windoze/CBuilder5/BibleCS/Makefile16
-rw-r--r--apps/windoze/CBuilder5/BibleCS/ModInstForm.cpp14
-rw-r--r--apps/windoze/CBuilder5/BibleCS/ModInstForm.dfm83
-rw-r--r--apps/windoze/CBuilder5/BibleCS/ModInstForm.h27
-rw-r--r--apps/windoze/CBuilder5/BibleCS/ModVisFrm.cpp50
-rw-r--r--apps/windoze/CBuilder5/BibleCS/ModVisFrm.dfm70
-rw-r--r--apps/windoze/CBuilder5/BibleCS/ModVisFrm.h37
-rw-r--r--apps/windoze/CBuilder5/BibleCS/RangeMaintFrm.cpp129
-rw-r--r--apps/windoze/CBuilder5/BibleCS/RangeMaintFrm.dfm219
-rw-r--r--apps/windoze/CBuilder5/BibleCS/RangeMaintFrm.h64
-rw-r--r--apps/windoze/CBuilder5/BibleCS/SplashPage.cpp16
-rw-r--r--apps/windoze/CBuilder5/BibleCS/SplashPage.dfm4962
-rw-r--r--apps/windoze/CBuilder5/BibleCS/SplashPage.h25
-rw-r--r--apps/windoze/CBuilder5/BibleCS/StudyProfessor.cpp16
-rw-r--r--apps/windoze/CBuilder5/BibleCS/StudyProfessor.dfm44
-rw-r--r--apps/windoze/CBuilder5/BibleCS/StudyProfessor.h25
-rw-r--r--apps/windoze/CBuilder5/BibleCS/Sword.BMPbin0 -> 157854 bytes
-rw-r--r--apps/windoze/CBuilder5/BibleCS/back.bmpbin0 -> 778 bytes
-rw-r--r--apps/windoze/CBuilder5/BibleCS/biblecsmgr.cpp112
-rw-r--r--apps/windoze/CBuilder5/BibleCS/biblecsmgr.h31
-rw-r--r--apps/windoze/CBuilder5/BibleCS/bookmark.bmpbin0 -> 758 bytes
-rw-r--r--apps/windoze/CBuilder5/BibleCS/bookmarkfrm.cpp221
-rw-r--r--apps/windoze/CBuilder5/BibleCS/bookmarkfrm.dfm79
-rw-r--r--apps/windoze/CBuilder5/BibleCS/bookmarkfrm.h48
-rw-r--r--apps/windoze/CBuilder5/BibleCS/cdstartup/InstallBtn.BMPbin0 -> 26456 bytes
-rw-r--r--apps/windoze/CBuilder5/BibleCS/cdstartup/RunBtn.BMPbin0 -> 26456 bytes
-rw-r--r--apps/windoze/CBuilder5/BibleCS/cdstartup/cdstartup.bpr104
-rw-r--r--apps/windoze/CBuilder5/BibleCS/cdstartup/cdstartup.cpp21
-rw-r--r--apps/windoze/CBuilder5/BibleCS/cdstartup/cdstartup.resbin0 -> 1896 bytes
-rw-r--r--apps/windoze/CBuilder5/BibleCS/cdstartup/mainfrm.cpp48
-rw-r--r--apps/windoze/CBuilder5/BibleCS/cdstartup/mainfrm.dfmbin0 -> 488359 bytes
-rw-r--r--apps/windoze/CBuilder5/BibleCS/cdstartup/mainfrm.h37
-rw-r--r--apps/windoze/CBuilder5/BibleCS/cdstartup/sword.bmpbin0 -> 145002 bytes
-rw-r--r--apps/windoze/CBuilder5/BibleCS/editentryfrm.cpp335
-rw-r--r--apps/windoze/CBuilder5/BibleCS/editentryfrm.dfm897
-rw-r--r--apps/windoze/CBuilder5/BibleCS/editentryfrm.h108
-rw-r--r--apps/windoze/CBuilder5/BibleCS/getsaved.conf8
-rw-r--r--apps/windoze/CBuilder5/BibleCS/layout.conf156
-rw-r--r--apps/windoze/CBuilder5/BibleCS/mainfrm.cpp2068
-rw-r--r--apps/windoze/CBuilder5/BibleCS/mainfrm.dfm708
-rw-r--r--apps/windoze/CBuilder5/BibleCS/mainfrm.h326
-rw-r--r--apps/windoze/CBuilder5/BibleCS/newbmfilefrm.cpp14
-rw-r--r--apps/windoze/CBuilder5/BibleCS/newbmfilefrm.dfm98
-rw-r--r--apps/windoze/CBuilder5/BibleCS/newbmfilefrm.h27
-rw-r--r--apps/windoze/CBuilder5/BibleCS/optionfrm.cpp438
-rw-r--r--apps/windoze/CBuilder5/BibleCS/optionfrm.dfm551
-rw-r--r--apps/windoze/CBuilder5/BibleCS/optionfrm.h118
-rw-r--r--apps/windoze/CBuilder5/BibleCS/options.conf48
-rw-r--r--apps/windoze/CBuilder5/BibleCS/rxlib/Maxmin.objbin0 -> 3300 bytes
-rw-r--r--apps/windoze/CBuilder5/BibleCS/rxlib/RXCCONST.R32bin0 -> 612 bytes
-rw-r--r--apps/windoze/CBuilder5/BibleCS/rxlib/RXCOMBOS.R32bin0 -> 636 bytes
-rw-r--r--apps/windoze/CBuilder5/BibleCS/rxlib/RXCONST.R32bin0 -> 856 bytes
-rw-r--r--apps/windoze/CBuilder5/BibleCS/rxlib/RxRichEd.hpp624
-rw-r--r--apps/windoze/CBuilder5/BibleCS/rxlib/RxRichEd.objbin0 -> 100219 bytes
-rw-r--r--apps/windoze/CBuilder5/BibleCS/rxlib/Rxcconst.objbin0 -> 740 bytes
-rw-r--r--apps/windoze/CBuilder5/BibleCS/rxlib/Rxcombos.hpp272
-rw-r--r--apps/windoze/CBuilder5/BibleCS/rxlib/Rxcombos.objbin0 -> 28577 bytes
-rw-r--r--apps/windoze/CBuilder5/BibleCS/rxlib/Rxconst.objbin0 -> 1029 bytes
-rw-r--r--apps/windoze/CBuilder5/BibleCS/rxlib/Vclutils.objbin0 -> 46960 bytes
-rw-r--r--apps/windoze/CBuilder5/BibleCS/save.bmpbin0 -> 334 bytes
-rw-r--r--apps/windoze/CBuilder5/BibleCS/schemes.conf84
-rw-r--r--apps/windoze/CBuilder5/BibleCS/search.bmpbin0 -> 780 bytes
-rw-r--r--apps/windoze/CBuilder5/BibleCS/searchfrm.cpp241
-rw-r--r--apps/windoze/CBuilder5/BibleCS/searchfrm.dfm245
-rw-r--r--apps/windoze/CBuilder5/BibleCS/searchfrm.h76
-rw-r--r--apps/windoze/CBuilder5/BibleCS/splashfrm.cpp16
-rw-r--r--apps/windoze/CBuilder5/BibleCS/splashfrm.dfm13590
-rw-r--r--apps/windoze/CBuilder5/BibleCS/splashfrm.h26
-rw-r--r--apps/windoze/CBuilder5/BibleCS/sword.bpr153
-rw-r--r--apps/windoze/CBuilder5/BibleCS/sword.cpp146
-rw-r--r--apps/windoze/CBuilder5/BibleCS/sword.h1
-rw-r--r--apps/windoze/CBuilder5/BibleCS/sword.icobin0 -> 766 bytes
-rw-r--r--apps/windoze/CBuilder5/BibleCS/sword.resbin0 -> 1968 bytes
-rw-r--r--apps/windoze/CBuilder5/BibleCS/swordlib.bpr199
-rw-r--r--apps/windoze/CBuilder5/BibleCS/swordlib.cpp119
-rw-r--r--apps/windoze/CBuilder5/BibleCS/swordprj.bpg32
-rw-r--r--apps/windoze/CBuilder5/BibleCS/versesel.cpp22
-rw-r--r--apps/windoze/CBuilder5/BibleCS/versesel.dfm63
-rw-r--r--apps/windoze/CBuilder5/BibleCS/versesel.h27
-rw-r--r--apps/windoze/CBuilder5/BibleCS/vrslstfrm.cpp48
-rw-r--r--apps/windoze/CBuilder5/BibleCS/vrslstfrm.dfm39
-rw-r--r--apps/windoze/CBuilder5/BibleCS/vrslstfrm.h29
-rw-r--r--apps/windoze/CBuilder5/BibleCS/wtbsa.conf20
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/FTPDownload.cpp29
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/FTPDownload.h16
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/InfoFrm.cpp33
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/InfoFrm.dfmbin0 -> 1132 bytes
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/InfoFrm.h32
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/InstallMgr.bpg27
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/InstallMgr.bpr137
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/InstallMgr.cpp34
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/InstallMgr.resbin0 -> 1796 bytes
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/MainFrm.cpp1110
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/MainFrm.dfm2224
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/MainFrm.h146
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/RemoteMntFrm.cpp160
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/RemoteMntFrm.dfmbin0 -> 3588 bytes
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/RemoteMntFrm.h52
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/StatusFrm.cpp201
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/StatusFrm.dfmbin0 -> 1142 bytes
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/StatusFrm.h74
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/UninstallFrm.cpp15
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/UninstallFrm.dfmbin0 -> 675 bytes
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/UninstallFrm.h26
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/arrow2r.bmpbin0 -> 376 bytes
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/arrow3u.bmpbin0 -> 376 bytes
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/back.bmpbin0 -> 798 bytes
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/bookshut.bmpbin0 -> 376 bytes
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/bulblk.bmpbin0 -> 374 bytes
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/bulbon.bmpbin0 -> 376 bytes
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/check.bmpbin0 -> 374 bytes
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/cipherfrm.cpp67
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/cipherfrm.dfmbin0 -> 1278 bytes
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/cipherfrm.h37
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/delete.bmpbin0 -> 374 bytes
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/filenew.bmpbin0 -> 374 bytes
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/floppy.bmpbin0 -> 376 bytes
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/globe.bmpbin0 -> 376 bytes
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/insert.bmpbin0 -> 374 bytes
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/installmgr.conf8
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/query.bmpbin0 -> 374 bytes
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/sword.bmpbin0 -> 8950 bytes
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/trash.bmpbin0 -> 376 bytes
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/undo.bmpbin0 -> 374 bytes
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/upgdlk.bmpbin0 -> 374 bytes
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/zlib.bpf25
-rw-r--r--apps/windoze/CBuilder5/InstallMgr/zlib.bpr126
-rw-r--r--apps/windoze/CBuilder5/prototype/AboutBoxfrm.cpp85
-rw-r--r--apps/windoze/CBuilder5/prototype/AboutBoxfrm.dfmbin0 -> 2778 bytes
-rw-r--r--apps/windoze/CBuilder5/prototype/AboutBoxfrm.h36
-rw-r--r--apps/windoze/CBuilder5/prototype/AppBar.cpp234
-rw-r--r--apps/windoze/CBuilder5/prototype/AppBar.dfmbin0 -> 10405 bytes
-rw-r--r--apps/windoze/CBuilder5/prototype/AppBar.h94
-rw-r--r--apps/windoze/CBuilder5/prototype/Bitmap1.bmpbin0 -> 5318 bytes
-rw-r--r--apps/windoze/CBuilder5/prototype/BookMarkPanel.cpp352
-rw-r--r--apps/windoze/CBuilder5/prototype/BookMarkPanel.h39
-rw-r--r--apps/windoze/CBuilder5/prototype/CommentPanel.cpp222
-rw-r--r--apps/windoze/CBuilder5/prototype/CommentPanel.h39
-rw-r--r--apps/windoze/CBuilder5/prototype/DeskTopNameForm.cpp15
-rw-r--r--apps/windoze/CBuilder5/prototype/DeskTopNameForm.dfmbin0 -> 868 bytes
-rw-r--r--apps/windoze/CBuilder5/prototype/DeskTopNameForm.h27
-rw-r--r--apps/windoze/CBuilder5/prototype/DockCanvas.cpp16
-rw-r--r--apps/windoze/CBuilder5/prototype/DockCanvas.dfm18
-rw-r--r--apps/windoze/CBuilder5/prototype/DockCanvas.h21
-rw-r--r--apps/windoze/CBuilder5/prototype/LDPanel.cpp174
-rw-r--r--apps/windoze/CBuilder5/prototype/LDPanel.h39
-rw-r--r--apps/windoze/CBuilder5/prototype/ModInstForm.cpp14
-rw-r--r--apps/windoze/CBuilder5/prototype/ModInstForm.dfmbin0 -> 1457 bytes
-rw-r--r--apps/windoze/CBuilder5/prototype/ModInstForm.h27
-rw-r--r--apps/windoze/CBuilder5/prototype/ModTabPanel.cpp114
-rw-r--r--apps/windoze/CBuilder5/prototype/ModTabPanel.h30
-rw-r--r--apps/windoze/CBuilder5/prototype/TextPanel.cpp183
-rw-r--r--apps/windoze/CBuilder5/prototype/TextPanel.h34
-rw-r--r--apps/windoze/CBuilder5/prototype/back.bmpbin0 -> 780 bytes
-rw-r--r--apps/windoze/CBuilder5/prototype/biblecsmgr.cpp88
-rw-r--r--apps/windoze/CBuilder5/prototype/biblecsmgr.h23
-rw-r--r--apps/windoze/CBuilder5/prototype/bookmark.bmpbin0 -> 758 bytes
-rw-r--r--apps/windoze/CBuilder5/prototype/bookmarkfrm.cpp222
-rw-r--r--apps/windoze/CBuilder5/prototype/bookmarkfrm.dfmbin0 -> 1627 bytes
-rw-r--r--apps/windoze/CBuilder5/prototype/bookmarkfrm.h48
-rw-r--r--apps/windoze/CBuilder5/prototype/bookmarks/personal.conf7
-rw-r--r--apps/windoze/CBuilder5/prototype/desktop.bmpbin0 -> 374 bytes
-rw-r--r--apps/windoze/CBuilder5/prototype/desktop2.bmpbin0 -> 246 bytes
-rw-r--r--apps/windoze/CBuilder5/prototype/editentryfrm.cpp332
-rw-r--r--apps/windoze/CBuilder5/prototype/editentryfrm.dfmbin0 -> 22859 bytes
-rw-r--r--apps/windoze/CBuilder5/prototype/editentryfrm.h108
-rw-r--r--apps/windoze/CBuilder5/prototype/mainfrm.cpp825
-rw-r--r--apps/windoze/CBuilder5/prototype/mainfrm.dfmbin0 -> 10684 bytes
-rw-r--r--apps/windoze/CBuilder5/prototype/mainfrm.h238
-rw-r--r--apps/windoze/CBuilder5/prototype/newbmfilefrm.cpp14
-rw-r--r--apps/windoze/CBuilder5/prototype/newbmfilefrm.dfmbin0 -> 1638 bytes
-rw-r--r--apps/windoze/CBuilder5/prototype/newbmfilefrm.h27
-rw-r--r--apps/windoze/CBuilder5/prototype/optionfrm.cpp20
-rw-r--r--apps/windoze/CBuilder5/prototype/optionfrm.dfmbin0 -> 2521 bytes
-rw-r--r--apps/windoze/CBuilder5/prototype/optionfrm.h39
-rw-r--r--apps/windoze/CBuilder5/prototype/options.conf15
-rw-r--r--apps/windoze/CBuilder5/prototype/search.bmpbin0 -> 780 bytes
-rw-r--r--apps/windoze/CBuilder5/prototype/searchfrm.cpp95
-rw-r--r--apps/windoze/CBuilder5/prototype/searchfrm.dfmbin0 -> 2304 bytes
-rw-r--r--apps/windoze/CBuilder5/prototype/searchfrm.h44
-rw-r--r--apps/windoze/CBuilder5/prototype/sword.bpr124
-rw-r--r--apps/windoze/CBuilder5/prototype/sword.cpp47
-rw-r--r--apps/windoze/CBuilder5/prototype/sword.resbin0 -> 876 bytes
-rw-r--r--apps/windoze/CBuilder5/prototype/swordlib.bpr168
-rw-r--r--apps/windoze/CBuilder5/prototype/swordlib.cpp61
-rw-r--r--apps/windoze/CBuilder5/prototype/swordprj.bpg23
-rw-r--r--apps/windoze/CBuilder5/prototype/versesel.cpp22
-rw-r--r--apps/windoze/CBuilder5/prototype/versesel.dfmbin0 -> 677 bytes
-rw-r--r--apps/windoze/CBuilder5/prototype/versesel.h27
-rw-r--r--apps/windoze/CBuilder5/prototype/vrslstfrm.cpp50
-rw-r--r--apps/windoze/CBuilder5/prototype/vrslstfrm.dfmbin0 -> 561 bytes
-rw-r--r--apps/windoze/CBuilder5/prototype/vrslstfrm.h29
-rw-r--r--apps/windoze/Delphi20/swordvc/SWKey.hpp57
-rw-r--r--apps/windoze/Delphi20/swordvc/SWKey.pas150
-rw-r--r--apps/windoze/Delphi20/swordvc/SWLstKey.hpp42
-rw-r--r--apps/windoze/Delphi20/swordvc/SwordAPI.hpp63
-rw-r--r--apps/windoze/Delphi20/swordvc/SwordAPI.pas50
-rw-r--r--apps/windoze/Delphi20/swordvc/Unit1.dfmbin0 -> 1261 bytes
-rw-r--r--apps/windoze/Delphi20/swordvc/Unit1.pas40
-rw-r--r--apps/windoze/Delphi20/swordvc/listkey.pas36
-rw-r--r--apps/windoze/Delphi20/swordvc/swmodule.hpp85
-rw-r--r--apps/windoze/Delphi20/swordvc/swmodule.pas222
-rw-r--r--apps/windoze/Delphi20/swordvc/swordvc.dpr18
-rw-r--r--apps/windoze/Delphi20/swordvc/swtxtdsp.hpp106
-rw-r--r--apps/windoze/Delphi20/swordvc/swtxtdsp.pas247
-rw-r--r--apps/windoze/Delphi20/swordvc/swvskey.hpp60
-rw-r--r--apps/windoze/Delphi20/swordvc/swvskey.pas118
-rw-r--r--apps/windoze/Makefile14
-rw-r--r--apps/windoze/bcowl25/swordapi/Sword16.idebin0 -> 33578 bytes
-rw-r--r--apps/windoze/bcowl25/swordapi/Sword32.idebin0 -> 52746 bytes
-rw-r--r--apps/windoze/bcowl25/swordapi/Sword32cg.idebin0 -> 73908 bytes
-rw-r--r--apps/windoze/bcowl25/swordapi/Swordapi.cpp334
-rw-r--r--apps/windoze/bcowl25/swordapi/mods.conf66
-rw-r--r--apps/windoze/bcowl25/swordapi/swordapi.h60
-rw-r--r--apps/windoze/swdisprtf.cpp187
-rw-r--r--apps/windoze/swdisprtfchap.cpp128
-rw-r--r--apps/windoze/swwinlog.cpp76
-rw-r--r--apps/windoze/tbdisp.cpp55
-rw-r--r--apps/windoze/vb/ActiveDiathekeDemo/ADDemo.frm318
-rw-r--r--apps/windoze/vb/ActiveDiathekeDemo/ADDemo.frxbin0 -> 127 bytes
-rw-r--r--apps/windoze/vb/ActiveDiathekeDemo/ADDemo.vbp41
-rw-r--r--apps/windoze/vb/ActiveDiathekeDemo/ADDemo.vbw1
-rw-r--r--apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.clw72
-rw-r--r--apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.cpp79
-rw-r--r--apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.def9
-rw-r--r--apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.dsp1332
-rw-r--r--apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.dsw29
-rw-r--r--apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.h33
-rw-r--r--apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.odl90
-rw-r--r--apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.rc262
-rw-r--r--apps/windoze/vc/ActiveDiatheke/ActiveDiathekeCtl.bmpbin0 -> 238 bytes
-rw-r--r--apps/windoze/vc/ActiveDiatheke/ActiveDiathekeCtl.cpp388
-rw-r--r--apps/windoze/vc/ActiveDiatheke/ActiveDiathekeCtl.h137
-rw-r--r--apps/windoze/vc/ActiveDiatheke/ActiveDiathekePpg.cpp140
-rw-r--r--apps/windoze/vc/ActiveDiatheke/ActiveDiathekePpg.h66
-rw-r--r--apps/windoze/vc/ActiveDiatheke/ReadMe.txt84
-rw-r--r--apps/windoze/vc/ActiveDiatheke/Resource.h42
-rw-r--r--apps/windoze/vc/ActiveDiatheke/StdAfx.cpp5
-rw-r--r--apps/windoze/vc/ActiveDiatheke/StdAfx.h29
-rw-r--r--apps/windoze/vc/swordlib/swordlib.dsp1086
-rw-r--r--apps/windoze/vc/swordlib/swordlib.dsw29
719 files changed, 126968 insertions, 0 deletions
diff --git a/apps/Makefile.am b/apps/Makefile.am
new file mode 100644
index 0000000..fcbb535
--- /dev/null
+++ b/apps/Makefile.am
@@ -0,0 +1,3 @@
+AUTOMAKE_OPTIONS = 1.5
+
+SUBDIRS = console
diff --git a/apps/Makefile.in b/apps/Makefile.in
new file mode 100644
index 0000000..42cc4b8
--- /dev/null
+++ b/apps/Makefile.in
@@ -0,0 +1,351 @@
+# Makefile.in generated by automake 1.6 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+
+EXEEXT = @EXEEXT@
+OBJEXT = @OBJEXT@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+AMTAR = @AMTAR@
+AS = @AS@
+AWK = @AWK@
+CC = @CC@
+CXX = @CXX@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+ECHO = @ECHO@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+MAINT = @MAINT@
+OBJDUMP = @OBJDUMP@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+STRIP = @STRIP@
+VERSION = @VERSION@
+am__include = @am__include@
+am__quote = @am__quote@
+dir_confdef = @dir_confdef@
+enable_debug = @enable_debug@
+enable_profile = @enable_profile@
+enable_vcl = @enable_vcl@
+install_sh = @install_sh@
+target_cpu = @target_cpu@
+target_mingw32 = @target_mingw32@
+target_os = @target_os@
+target_system = @target_system@
+target_vendor = @target_vendor@
+with_conf = @with_conf@
+with_icu = @with_icu@
+with_zlib = @with_zlib@
+AUTOMAKE_OPTIONS = 1.5
+
+SUBDIRS = console
+subdir = apps
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+
+RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \
+ uninstall-info-recursive all-recursive install-data-recursive \
+ install-exec-recursive installdirs-recursive install-recursive \
+ uninstall-recursive check-recursive installcheck-recursive
+DIST_COMMON = Makefile.am Makefile.in
+DIST_SUBDIRS = $(SUBDIRS)
+all: all-recursive
+
+.SUFFIXES:
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu apps/Makefile
+Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+uninstall-info-am:
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+ @set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+
+ETAGS = etags
+ETAGSFLAGS =
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$tags$$unique" \
+ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkinstalldirs) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ cp -pR $$d/$$file $(distdir)$$dir \
+ || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d $(distdir)/$$subdir \
+ || mkdir $(distdir)/$$subdir \
+ || exit 1; \
+ (cd $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" \
+ distdir=../$(distdir)/$$subdir \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+
+distclean-am: clean-am distclean-generic distclean-libtool \
+ distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+uninstall-am: uninstall-info-am
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
+ clean-generic clean-libtool clean-recursive distclean \
+ distclean-generic distclean-libtool distclean-recursive \
+ distclean-tags distdir dvi dvi-am dvi-recursive info info-am \
+ info-recursive install install-am install-data install-data-am \
+ install-data-recursive install-exec install-exec-am \
+ install-exec-recursive install-info install-info-am \
+ install-info-recursive install-man install-recursive \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am installdirs-recursive maintainer-clean \
+ maintainer-clean-generic maintainer-clean-recursive mostlyclean \
+ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \
+ tags tags-recursive uninstall uninstall-am uninstall-info-am \
+ uninstall-info-recursive uninstall-recursive
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/apps/X11/InstallMgr/ABOUT-NLS b/apps/X11/InstallMgr/ABOUT-NLS
new file mode 100644
index 0000000..28d38c7
--- /dev/null
+++ b/apps/X11/InstallMgr/ABOUT-NLS
@@ -0,0 +1,226 @@
+Notes on the Free Translation Project
+*************************************
+
+ Free software is going international! The Free Translation Project
+is a way to get maintainers of free software, translators, and users all
+together, so that will gradually become able to speak many languages.
+A few packages already provide translations for their messages.
+
+ If you found this `ABOUT-NLS' file inside a distribution, you may
+assume that the distributed package does use GNU `gettext' internally,
+itself available at your nearest GNU archive site. But you do *not*
+need to install GNU `gettext' prior to configuring, installing or using
+this package with messages translated.
+
+ Installers will find here some useful hints. These notes also
+explain how users should proceed for getting the programs to use the
+available translations. They tell how people wanting to contribute and
+work at translations should contact the appropriate team.
+
+ When reporting bugs in the `intl/' directory or bugs which may be
+related to internationalization, you should tell about the version of
+`gettext' which is used. The information can be found in the
+`intl/VERSION' file, in internationalized packages.
+
+One advise in advance
+=====================
+
+ If you want to exploit the full power of internationalization, you
+should configure it using
+
+ ./configure --with-included-gettext
+
+to force usage of internationalizing routines provided within this
+package, despite the existence of internationalizing capabilities in the
+operating system where this package is being installed. So far, only
+the `gettext' implementation in the GNU C library version 2 provides as
+many features (such as locale alias or message inheritance) as the
+implementation here. It is also not possible to offer this additional
+functionality on top of a `catgets' implementation. Future versions of
+GNU `gettext' will very likely convey even more functionality. So it
+might be a good idea to change to GNU `gettext' as soon as possible.
+
+ So you need not provide this option if you are using GNU libc 2 or
+you have installed a recent copy of the GNU gettext package with the
+included `libintl'.
+
+INSTALL Matters
+===============
+
+ Some packages are "localizable" when properly installed; the
+programs they contain can be made to speak your own native language.
+Most such packages use GNU `gettext'. Other packages have their own
+ways to internationalization, predating GNU `gettext'.
+
+ By default, this package will be installed to allow translation of
+messages. It will automatically detect whether the system provides
+usable `catgets' (if using this is selected by the installer) or
+`gettext' functions. If neither is available, the GNU `gettext' own
+library will be used. This library is wholly contained within this
+package, usually in the `intl/' subdirectory, so prior installation of
+the GNU `gettext' package is *not* required. Installers may use
+special options at configuration time for changing the default
+behaviour. The commands:
+
+ ./configure --with-included-gettext
+ ./configure --with-catgets
+ ./configure --disable-nls
+
+will respectively bypass any pre-existing `catgets' or `gettext' to use
+the internationalizing routines provided within this package, enable
+the use of the `catgets' functions (if found on the locale system), or
+else, *totally* disable translation of messages.
+
+ When you already have GNU `gettext' installed on your system and run
+configure without an option for your new package, `configure' will
+probably detect the previously built and installed `libintl.a' file and
+will decide to use this. This might be not what is desirable. You
+should use the more recent version of the GNU `gettext' library. I.e.
+if the file `intl/VERSION' shows that the library which comes with this
+package is more recent, you should use
+
+ ./configure --with-included-gettext
+
+to prevent auto-detection.
+
+ By default the configuration process will not test for the `catgets'
+function and therefore they will not be used. The reasons are already
+given above: the emulation on top of `catgets' cannot provide all the
+extensions provided by the GNU `gettext' library. If you nevertheless
+want to use the `catgets' functions use
+
+ ./configure --with-catgets
+
+to enable the test for `catgets' (this causes no harm if `catgets' is
+not available on your system). If you really select this option we
+would like to hear about the reasons because we cannot think of any
+good one ourself.
+
+ Internationalized packages have usually many `po/LL.po' files, where
+LL gives an ISO 639 two-letter code identifying the language. Unless
+translations have been forbidden at `configure' time by using the
+`--disable-nls' switch, all available translations are installed
+together with the package. However, the environment variable `LINGUAS'
+may be set, prior to configuration, to limit the installed set.
+`LINGUAS' should then contain a space separated list of two-letter
+codes, stating which languages are allowed.
+
+Using This Package
+==================
+
+ As a user, if your language has been installed for this package, you
+only have to set the `LANG' environment variable to the appropriate
+ISO 639 `LL' two-letter code prior to using the programs in the
+package. For example, let's suppose that you speak German. At the
+shell prompt, merely execute `setenv LANG de' (in `csh'),
+`export LANG; LANG=de' (in `sh') or `export LANG=de' (in `bash'). This
+can be done from your `.login' or `.profile' file, once and for all.
+
+ An operating system might already offer message localization for
+many of its programs, while other programs have been installed locally
+with the full capabilities of GNU `gettext'. Just using `gettext'
+extended syntax for `LANG' would break proper localization of already
+available operating system programs. In this case, users should set
+both `LANGUAGE' and `LANG' variables in their environment, as programs
+using GNU `gettext' give preference to `LANGUAGE'. For example, some
+Swedish users would rather read translations in German than English for
+when Swedish is not available. This is easily accomplished by setting
+`LANGUAGE' to `sv:de' while leaving `LANG' to `sv'.
+
+Translating Teams
+=================
+
+ For the Free Translation Project to be a success, we need interested
+people who like their own language and write it well, and who are also
+able to synergize with other translators speaking the same language.
+Each translation team has its own mailing list, courtesy of Linux
+International. You may reach your translation team at the address
+`LL@li.org', replacing LL by the two-letter ISO 639 code for your
+language. Language codes are *not* the same as the country codes given
+in ISO 3166. The following translation teams exist, as of December
+1997:
+
+ Chinese `zh', Czech `cs', Danish `da', Dutch `nl', English `en',
+ Esperanto `eo', Finnish `fi', French `fr', German `de', Hungarian
+ `hu', Irish `ga', Italian `it', Indonesian `id', Japanese `ja',
+ Korean `ko', Latin `la', Norwegian `no', Persian `fa', Polish
+ `pl', Portuguese `pt', Russian `ru', Slovenian `sl', Spanish `es',
+ Swedish `sv', and Turkish `tr'.
+
+For example, you may reach the Chinese translation team by writing to
+`zh@li.org'.
+
+ If you'd like to volunteer to *work* at translating messages, you
+should become a member of the translating team for your own language.
+The subscribing address is *not* the same as the list itself, it has
+`-request' appended. For example, speakers of Swedish can send a
+message to `sv-request@li.org', having this message body:
+
+ subscribe
+
+ Keep in mind that team members are expected to participate
+*actively* in translations, or at solving translational difficulties,
+rather than merely lurking around. If your team does not exist yet and
+you want to start one, or if you are unsure about what to do or how to
+get started, please write to `translation@iro.umontreal.ca' to reach the
+coordinator for all translator teams.
+
+ The English team is special. It works at improving and uniformizing
+the terminology in use. Proven linguistic skill are praised more than
+programming skill, here.
+
+Available Packages
+==================
+
+ Languages are not equally supported in all packages. The following
+matrix shows the current state of internationalization, as of December
+1997. The matrix shows, in regard of each package, for which languages
+PO files have been submitted to translation coordination.
+
+ Ready PO files cs da de en es fi fr it ja ko nl no pl pt ru sl sv
+ .----------------------------------------------------.
+ bash | [] [] [] | 3
+ bison | [] [] [] | 3
+ clisp | [] [] [] [] | 4
+ cpio | [] [] [] [] [] [] | 6
+ diffutils | [] [] [] [] [] | 5
+ enscript | [] [] [] [] [] [] | 6
+ fileutils | [] [] [] [] [] [] [] [] [] [] | 10
+ findutils | [] [] [] [] [] [] [] [] [] | 9
+ flex | [] [] [] [] | 4
+ gcal | [] [] [] [] [] | 5
+ gettext | [] [] [] [] [] [] [] [] [] [] [] | 12
+ grep | [] [] [] [] [] [] [] [] [] [] | 10
+ hello | [] [] [] [] [] [] [] [] [] [] [] | 11
+ id-utils | [] [] [] | 3
+ indent | [] [] [] [] [] | 5
+ libc | [] [] [] [] [] [] [] | 7
+ m4 | [] [] [] [] [] [] | 6
+ make | [] [] [] [] [] [] | 6
+ music | [] [] | 2
+ ptx | [] [] [] [] [] [] [] [] | 8
+ recode | [] [] [] [] [] [] [] [] [] | 9
+ sh-utils | [] [] [] [] [] [] [] [] | 8
+ sharutils | [] [] [] [] [] [] | 6
+ tar | [] [] [] [] [] [] [] [] [] [] [] | 11
+ texinfo | [] [] [] | 3
+ textutils | [] [] [] [] [] [] [] [] [] | 9
+ wdiff | [] [] [] [] [] [] [] [] | 8
+ `----------------------------------------------------'
+ 17 languages cs da de en es fi fr it ja ko nl no pl pt ru sl sv
+ 27 packages 6 4 25 1 18 1 26 2 1 12 20 9 19 7 4 7 17 179
+
+ Some counters in the preceding matrix are higher than the number of
+visible blocks let us expect. This is because a few extra PO files are
+used for implementing regional variants of languages, or language
+dialects.
+
+ For a PO file in the matrix above to be effective, the package to
+which it applies should also have been internationalized and
+distributed as such by its maintainer. There might be an observable
+lag between the mere existence a PO file and its wide availability in a
+distribution.
+
+ If December 1997 seems to be old, you may fetch a more recent copy
+of this `ABOUT-NLS' file on most GNU archive sites.
+
diff --git a/apps/X11/InstallMgr/AUTHORS b/apps/X11/InstallMgr/AUTHORS
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/apps/X11/InstallMgr/AUTHORS
diff --git a/apps/X11/InstallMgr/COPYING b/apps/X11/InstallMgr/COPYING
new file mode 100644
index 0000000..d60c31a
--- /dev/null
+++ b/apps/X11/InstallMgr/COPYING
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year 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/apps/X11/InstallMgr/ChangeLog b/apps/X11/InstallMgr/ChangeLog
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/apps/X11/InstallMgr/ChangeLog
diff --git a/apps/X11/InstallMgr/INSTALL b/apps/X11/InstallMgr/INSTALL
new file mode 100644
index 0000000..b42a17a
--- /dev/null
+++ b/apps/X11/InstallMgr/INSTALL
@@ -0,0 +1,182 @@
+Basic Installation
+==================
+
+ These are generic installation instructions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, a file
+`config.cache' that saves the results of its tests to speed up
+reconfiguring, and a file `config.log' containing compiler output
+(useful mainly for debugging `configure').
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If at some point `config.cache'
+contains results you don't want to keep, you may remove or edit it.
+
+ The file `configure.in' is used to create `configure' by a program
+called `autoconf'. You only need `configure.in' if you want to change
+it or regenerate `configure' using a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system. If you're
+ using `csh' on an old version of System V, you might need to type
+ `sh ./configure' instead to prevent `csh' from trying to execute
+ `configure' itself.
+
+ Running `configure' takes awhile. While running, it prints some
+ messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 5. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. You can give `configure'
+initial values for variables by setting them in the environment. Using
+a Bourne-compatible shell, you can do that on the command line like
+this:
+ CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+
+Or on systems that have the `env' program, you can do it like this:
+ env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ If you have to use a `make' that does not supports the `VPATH'
+variable, you have to compile the package for one architecture at a time
+in the source code directory. After you have installed the package for
+one architecture, use `make distclean' before reconfiguring for another
+architecture.
+
+Installation Names
+==================
+
+ By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc. You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=PATH' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' can not figure out
+automatically, but needs to determine by the type of host the package
+will run on. Usually `configure' can figure that out, but if it prints
+a message saying it can not guess the host type, give it the
+`--host=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name with three fields:
+ CPU-COMPANY-SYSTEM
+
+See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the host type.
+
+ If you are building compiler tools for cross-compiling, you can also
+use the `--target=TYPE' option to select the type of system they will
+produce code for and the `--build=TYPE' option to select the type of
+system on which you are compiling the package.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Operation Controls
+==================
+
+ `configure' recognizes the following options to control how it
+operates.
+
+`--cache-file=FILE'
+ Use and save the results of the tests in FILE instead of
+ `./config.cache'. Set FILE to `/dev/null' to disable caching, for
+ debugging `configure'.
+
+`--help'
+ Print a summary of the options to `configure', and exit.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`--version'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`configure' also accepts some other, not widely useful, options.
diff --git a/apps/X11/InstallMgr/Makefile b/apps/X11/InstallMgr/Makefile
new file mode 100644
index 0000000..09251a2
--- /dev/null
+++ b/apps/X11/InstallMgr/Makefile
@@ -0,0 +1,421 @@
+# Generated automatically from Makefile.in by configure.
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = .
+prefix = /usr/local
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/lib
+infodir = ${prefix}/info
+mandir = ${prefix}/man
+includedir = ${prefix}/include
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/installmgr
+pkglibdir = $(libdir)/installmgr
+pkgincludedir = $(includedir)/installmgr
+
+top_builddir = .
+
+ACLOCAL = aclocal -I macros
+AUTOCONF = autoconf
+AUTOMAKE = automake
+AUTOHEADER = autoheader
+
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL} $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_SCRIPT = ${INSTALL_PROGRAM}
+transform = s,x,x,
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+CATALOGS =
+CATOBJEXT = .gmo
+CC = gcc
+CXX = c++
+DATADIRNAME = share
+GENCAT =
+GMOFILES =
+GMSGFMT = /usr/bin/msgfmt
+GNOMEGNORBA_LIBS = -rdynamic -lgnorba -lORBitCosNaming -lORBit -lIIOP -lORBitutil -lnsl -lgnomeui -lart_lgpl -lgdk_imlib -lSM -lICE -lgtk -lgdk -lgmodule -lXi -lXext -lX11 -lgnome -lgnomesupport -lesd -laudiofile -lm -ldb1 -lglib -ldl
+GNOMEUI_LIBS = -rdynamic -lgnomeui -lart_lgpl -lgdk_imlib -lSM -lICE -lgtk -lgdk -lgmodule -lXi -lXext -lX11 -lgnome -lgnomesupport -lesd -laudiofile -lm -ldb1 -lglib -ldl
+GNOME_APPLETS_LIBS =
+GNOME_CAPPLET_LIBS =
+GNOME_CONFIG = /usr/bin/gnome-config
+GNOME_INCLUDEDIR = -I/usr/include -DNEED_GNOMESUPPORT_H -I/usr/lib/gnome-libs/include -I/usr/lib/glib/include -I/usr/X11R6/include
+GNOME_LIBDIR = -rdynamic -L/usr/lib -L/usr/X11R6/lib
+GNOME_LIBS = -lgnome -lgnomesupport -lesd -laudiofile -lm -ldb1 -lglib -ldl
+GNORBA_CFLAGS = -I/usr/include -DNEED_GNOMESUPPORT_H -I/usr/lib/gnome-libs/include -I/usr/lib/glib/include -I/usr/X11R6/include
+GNORBA_LIBS = -rdynamic -L/usr/lib -L/usr/X11R6/lib -lgnorba -lORBitCosNaming -lORBit -lIIOP -lORBitutil -lnsl -lgnomeui -lart_lgpl -lgdk_imlib -lSM -lICE -lgtk -lgdk -lgmodule -lXi -lXext -lX11 -lgnome -lgnomesupport -lesd -laudiofile -lm -ldb1 -lglib -ldl
+GTKXMHTML_LIBS = -rdynamic -lgtkxmhtml -lXpm -ljpeg -lpng -lz -lSM -lICE -lgtk -lgdk -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm
+GTK_CFLAGS = -I/usr/lib/glib/include -I/usr/X11R6/include
+GTK_CONFIG = /usr/bin/gtk-config
+GTK_LIBS = -lSM -lICE -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm
+GT_NO =
+GT_YES = #YES#
+INCLUDE_LOCALE_H = #include <locale.h>
+INSTOBJEXT = .mo
+INTLDEPS =
+INTLLIBS =
+INTLOBJS =
+MAKEINFO = makeinfo
+MKINSTALLDIRS = ./mkinstalldirs
+MSGFMT = /usr/bin/msgfmt
+ORBIT_CFLAGS = -I/usr/lib/glib/include -I/usr/include
+ORBIT_CONFIG = /usr/bin/orbit-config
+ORBIT_IDL = /usr/bin/orbit-idl
+ORBIT_LIBS = -L/usr/lib -lORBitCosNaming -lORBit -lIIOP -lORBitutil -lglib -lnsl -lm
+PACKAGE = installmgr
+PACKAGE_PIXMAPS_DIR = /usr/share/pixmaps/installmgr
+POFILES =
+POSUB = po
+PTHREAD_LIB = -lpthread
+RANLIB = ranlib
+USE_INCLUDED_LIBINTL = no
+USE_NLS = yes
+VERSION = 0.1
+XPM_LIBS = -lXpm
+ZVT_LIBS = -rdynamic -lzvt -lutil -lSM -lICE -lgtk -lgdk -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm
+cflags_set = yes
+cxxflags_set = @cxxflags_set@
+l =
+
+SUBDIRS = intl po macros src
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES =
+DIST_COMMON = README ./stamp-h.in ABOUT-NLS AUTHORS COPYING ChangeLog \
+INSTALL Makefile.am Makefile.in NEWS acconfig.h aclocal.m4 config.h.in \
+configure configure.in install-sh missing mkinstalldirs
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
+ cd $(top_builddir) \
+ && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+$(ACLOCAL_M4): configure.in
+ cd $(srcdir) && $(ACLOCAL)
+
+config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
+ cd $(srcdir) && $(AUTOCONF)
+
+config.h: stamp-h
+ @if test ! -f $@; then \
+ rm -f stamp-h; \
+ $(MAKE) stamp-h; \
+ else :; fi
+stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES= CONFIG_HEADERS=config.h \
+ $(SHELL) ./config.status
+ @echo timestamp > stamp-h 2> /dev/null
+$(srcdir)/config.h.in: $(srcdir)/stamp-h.in
+ @if test ! -f $@; then \
+ rm -f $(srcdir)/stamp-h.in; \
+ $(MAKE) $(srcdir)/stamp-h.in; \
+ else :; fi
+$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
+ cd $(top_srcdir) && $(AUTOHEADER)
+ @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null
+
+mostlyclean-hdr:
+
+clean-hdr:
+
+distclean-hdr:
+ -rm -f config.h
+
+maintainer-clean-hdr:
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+
+
+
+all-recursive install-data-recursive install-exec-recursive \
+installdirs-recursive install-recursive uninstall-recursive \
+check-recursive installcheck-recursive info-recursive dvi-recursive:
+ @set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+ @set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
+ rev="$$subdir $$rev"; \
+ test "$$subdir" = "." && dot_seen=yes; \
+ done; \
+ test "$$dot_seen" = "no" && rev=". $$rev"; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ -rm -rf $(distdir)
+ GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
+ mkdir $(distdir)/=build
+ mkdir $(distdir)/=inst
+ dc_install_base=`cd $(distdir)/=inst && pwd`; \
+ cd $(distdir)/=build \
+ && ../configure --with-included-gettext --srcdir=.. --prefix=$$dc_install_base \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) dist
+ -rm -rf $(distdir)
+ @banner="$(distdir).tar.gz is ready for distribution"; \
+ dashes=`echo "$$banner" | sed s/./=/g`; \
+ echo "$$dashes"; \
+ echo "$$banner"; \
+ echo "$$dashes"
+dist: distdir
+ -chmod -R a+r $(distdir)
+ GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
+ -rm -rf $(distdir)
+dist-all: distdir
+ -chmod -R a+r $(distdir)
+ GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
+ -rm -rf $(distdir)
+distdir: $(DISTFILES)
+ -rm -rf $(distdir)
+ mkdir $(distdir)
+ -chmod 777 $(distdir)
+ here=`cd $(top_builddir) && pwd`; \
+ top_distdir=`cd $(distdir) && pwd`; \
+ distdir=`cd $(distdir) && pwd`; \
+ cd $(top_srcdir) \
+ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Makefile
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+ for subdir in $(SUBDIRS); do \
+ if test "$$subdir" = .; then :; else \
+ test -d $(distdir)/$$subdir \
+ || mkdir $(distdir)/$$subdir \
+ || exit 1; \
+ chmod 777 $(distdir)/$$subdir; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
+ || exit 1; \
+ fi; \
+ done
+ $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook
+info-am:
+info: info-recursive
+dvi-am:
+dvi: dvi-recursive
+check-am: all-am
+check: check-recursive
+installcheck-am:
+installcheck: installcheck-recursive
+all-recursive-am: config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+install-exec-am:
+install-exec: install-exec-recursive
+
+install-data-am: install-data-local
+install-data: install-data-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-recursive
+uninstall-am:
+uninstall: uninstall-recursive
+all-am: Makefile config.h
+all-redirect: all-recursive-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs: installdirs-recursive
+installdirs-am:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic
+
+mostlyclean: mostlyclean-recursive
+
+clean-am: clean-hdr clean-tags clean-generic mostlyclean-am
+
+clean: clean-recursive
+
+distclean-am: distclean-hdr distclean-tags distclean-generic clean-am
+
+distclean: distclean-recursive
+ -rm -f config.status
+
+maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \
+ maintainer-clean-generic distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f config.status
+
+.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
+install-data-recursive uninstall-data-recursive install-exec-recursive \
+uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
+all-recursive check-recursive installcheck-recursive info-recursive \
+dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
+maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \
+install-exec-am install-exec install-data-local install-data-am \
+install-data install-am install uninstall-am uninstall all-redirect \
+all-am all installdirs-am installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+install-data-local:
+ @$(NORMAL_INSTALL)
+ if test -d $(srcdir)/pixmaps; then \
+ $(mkinstalldirs) $(DESTDIR)/usr/share/pixmaps/installmgr; \
+ for pixmap in $(srcdir)/pixmaps/*; do \
+ if test -f $$pixmap; then \
+ $(INSTALL_DATA) $$pixmap $(DESTDIR)/usr/share/pixmaps/installmgr; \
+ fi \
+ done \
+ fi
+
+dist-hook:
+ if test -d pixmaps; then \
+ mkdir $(distdir)/pixmaps; \
+ for pixmap in pixmaps/*; do \
+ if test -f $$pixmap; then \
+ cp -p $$pixmap $(distdir)/pixmaps; \
+ fi \
+ done \
+ fi
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/apps/X11/InstallMgr/Makefile.am b/apps/X11/InstallMgr/Makefile.am
new file mode 100644
index 0000000..e02f1e4
--- /dev/null
+++ b/apps/X11/InstallMgr/Makefile.am
@@ -0,0 +1,25 @@
+## Process this file with automake to produce Makefile.in
+
+SUBDIRS = intl po macros src
+
+install-data-local:
+ @$(NORMAL_INSTALL)
+ if test -d $(srcdir)/pixmaps; then \
+ $(mkinstalldirs) $(DESTDIR)@PACKAGE_PIXMAPS_DIR@; \
+ for pixmap in $(srcdir)/pixmaps/*; do \
+ if test -f $$pixmap; then \
+ $(INSTALL_DATA) $$pixmap $(DESTDIR)@PACKAGE_PIXMAPS_DIR@; \
+ fi \
+ done \
+ fi
+
+dist-hook:
+ if test -d pixmaps; then \
+ mkdir $(distdir)/pixmaps; \
+ for pixmap in pixmaps/*; do \
+ if test -f $$pixmap; then \
+ cp -p $$pixmap $(distdir)/pixmaps; \
+ fi \
+ done \
+ fi
+
diff --git a/apps/X11/InstallMgr/Makefile.in b/apps/X11/InstallMgr/Makefile.in
new file mode 100644
index 0000000..b9a1609
--- /dev/null
+++ b/apps/X11/InstallMgr/Makefile.in
@@ -0,0 +1,421 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = .
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CXX = @CXX@
+DATADIRNAME = @DATADIRNAME@
+GENCAT = @GENCAT@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNOMEGNORBA_LIBS = @GNOMEGNORBA_LIBS@
+GNOMEUI_LIBS = @GNOMEUI_LIBS@
+GNOME_APPLETS_LIBS = @GNOME_APPLETS_LIBS@
+GNOME_CAPPLET_LIBS = @GNOME_CAPPLET_LIBS@
+GNOME_CONFIG = @GNOME_CONFIG@
+GNOME_INCLUDEDIR = @GNOME_INCLUDEDIR@
+GNOME_LIBDIR = @GNOME_LIBDIR@
+GNOME_LIBS = @GNOME_LIBS@
+GNORBA_CFLAGS = @GNORBA_CFLAGS@
+GNORBA_LIBS = @GNORBA_LIBS@
+GTKXMHTML_LIBS = @GTKXMHTML_LIBS@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_CONFIG = @GTK_CONFIG@
+GTK_LIBS = @GTK_LIBS@
+GT_NO = @GT_NO@
+GT_YES = @GT_YES@
+INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
+INSTOBJEXT = @INSTOBJEXT@
+INTLDEPS = @INTLDEPS@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+ORBIT_CFLAGS = @ORBIT_CFLAGS@
+ORBIT_CONFIG = @ORBIT_CONFIG@
+ORBIT_IDL = @ORBIT_IDL@
+ORBIT_LIBS = @ORBIT_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_PIXMAPS_DIR = @PACKAGE_PIXMAPS_DIR@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PTHREAD_LIB = @PTHREAD_LIB@
+RANLIB = @RANLIB@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XPM_LIBS = @XPM_LIBS@
+ZVT_LIBS = @ZVT_LIBS@
+cflags_set = @cflags_set@
+cxxflags_set = @cxxflags_set@
+l = @l@
+
+SUBDIRS = intl po macros src
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES =
+DIST_COMMON = README ./stamp-h.in ABOUT-NLS AUTHORS COPYING ChangeLog \
+INSTALL Makefile.am Makefile.in NEWS acconfig.h aclocal.m4 config.h.in \
+configure configure.in install-sh missing mkinstalldirs
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
+ cd $(top_builddir) \
+ && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+$(ACLOCAL_M4): configure.in
+ cd $(srcdir) && $(ACLOCAL)
+
+config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
+ cd $(srcdir) && $(AUTOCONF)
+
+config.h: stamp-h
+ @if test ! -f $@; then \
+ rm -f stamp-h; \
+ $(MAKE) stamp-h; \
+ else :; fi
+stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES= CONFIG_HEADERS=config.h \
+ $(SHELL) ./config.status
+ @echo timestamp > stamp-h 2> /dev/null
+$(srcdir)/config.h.in: $(srcdir)/stamp-h.in
+ @if test ! -f $@; then \
+ rm -f $(srcdir)/stamp-h.in; \
+ $(MAKE) $(srcdir)/stamp-h.in; \
+ else :; fi
+$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
+ cd $(top_srcdir) && $(AUTOHEADER)
+ @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null
+
+mostlyclean-hdr:
+
+clean-hdr:
+
+distclean-hdr:
+ -rm -f config.h
+
+maintainer-clean-hdr:
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+
+@SET_MAKE@
+
+all-recursive install-data-recursive install-exec-recursive \
+installdirs-recursive install-recursive uninstall-recursive \
+check-recursive installcheck-recursive info-recursive dvi-recursive:
+ @set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+ @set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
+ rev="$$subdir $$rev"; \
+ test "$$subdir" = "." && dot_seen=yes; \
+ done; \
+ test "$$dot_seen" = "no" && rev=". $$rev"; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ -rm -rf $(distdir)
+ GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
+ mkdir $(distdir)/=build
+ mkdir $(distdir)/=inst
+ dc_install_base=`cd $(distdir)/=inst && pwd`; \
+ cd $(distdir)/=build \
+ && ../configure --with-included-gettext --srcdir=.. --prefix=$$dc_install_base \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) dist
+ -rm -rf $(distdir)
+ @banner="$(distdir).tar.gz is ready for distribution"; \
+ dashes=`echo "$$banner" | sed s/./=/g`; \
+ echo "$$dashes"; \
+ echo "$$banner"; \
+ echo "$$dashes"
+dist: distdir
+ -chmod -R a+r $(distdir)
+ GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
+ -rm -rf $(distdir)
+dist-all: distdir
+ -chmod -R a+r $(distdir)
+ GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
+ -rm -rf $(distdir)
+distdir: $(DISTFILES)
+ -rm -rf $(distdir)
+ mkdir $(distdir)
+ -chmod 777 $(distdir)
+ here=`cd $(top_builddir) && pwd`; \
+ top_distdir=`cd $(distdir) && pwd`; \
+ distdir=`cd $(distdir) && pwd`; \
+ cd $(top_srcdir) \
+ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Makefile
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+ for subdir in $(SUBDIRS); do \
+ if test "$$subdir" = .; then :; else \
+ test -d $(distdir)/$$subdir \
+ || mkdir $(distdir)/$$subdir \
+ || exit 1; \
+ chmod 777 $(distdir)/$$subdir; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
+ || exit 1; \
+ fi; \
+ done
+ $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook
+info-am:
+info: info-recursive
+dvi-am:
+dvi: dvi-recursive
+check-am: all-am
+check: check-recursive
+installcheck-am:
+installcheck: installcheck-recursive
+all-recursive-am: config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+install-exec-am:
+install-exec: install-exec-recursive
+
+install-data-am: install-data-local
+install-data: install-data-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-recursive
+uninstall-am:
+uninstall: uninstall-recursive
+all-am: Makefile config.h
+all-redirect: all-recursive-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs: installdirs-recursive
+installdirs-am:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic
+
+mostlyclean: mostlyclean-recursive
+
+clean-am: clean-hdr clean-tags clean-generic mostlyclean-am
+
+clean: clean-recursive
+
+distclean-am: distclean-hdr distclean-tags distclean-generic clean-am
+
+distclean: distclean-recursive
+ -rm -f config.status
+
+maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \
+ maintainer-clean-generic distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f config.status
+
+.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
+install-data-recursive uninstall-data-recursive install-exec-recursive \
+uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
+all-recursive check-recursive installcheck-recursive info-recursive \
+dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
+maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \
+install-exec-am install-exec install-data-local install-data-am \
+install-data install-am install uninstall-am uninstall all-redirect \
+all-am all installdirs-am installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+install-data-local:
+ @$(NORMAL_INSTALL)
+ if test -d $(srcdir)/pixmaps; then \
+ $(mkinstalldirs) $(DESTDIR)@PACKAGE_PIXMAPS_DIR@; \
+ for pixmap in $(srcdir)/pixmaps/*; do \
+ if test -f $$pixmap; then \
+ $(INSTALL_DATA) $$pixmap $(DESTDIR)@PACKAGE_PIXMAPS_DIR@; \
+ fi \
+ done \
+ fi
+
+dist-hook:
+ if test -d pixmaps; then \
+ mkdir $(distdir)/pixmaps; \
+ for pixmap in pixmaps/*; do \
+ if test -f $$pixmap; then \
+ cp -p $$pixmap $(distdir)/pixmaps; \
+ fi \
+ done \
+ fi
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/apps/X11/InstallMgr/NEWS b/apps/X11/InstallMgr/NEWS
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/apps/X11/InstallMgr/NEWS
diff --git a/apps/X11/InstallMgr/README b/apps/X11/InstallMgr/README
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/apps/X11/InstallMgr/README
diff --git a/apps/X11/InstallMgr/acconfig.h b/apps/X11/InstallMgr/acconfig.h
new file mode 100644
index 0000000..4a321c8
--- /dev/null
+++ b/apps/X11/InstallMgr/acconfig.h
@@ -0,0 +1,9 @@
+#undef ENABLE_NLS
+#undef HAVE_CATGETS
+#undef HAVE_GETTEXT
+#undef HAVE_LC_MESSAGES
+#undef HAVE_STPCPY
+#undef HAVE_LIBSM
+#undef PACKAGE_LOCALE_DIR
+#undef PACKAGE_DATA_DIR
+#undef PACKAGE_SOURCE_DIR
diff --git a/apps/X11/InstallMgr/aclocal.m4 b/apps/X11/InstallMgr/aclocal.m4
new file mode 100644
index 0000000..9d56aa0
--- /dev/null
+++ b/apps/X11/InstallMgr/aclocal.m4
@@ -0,0 +1,1227 @@
+dnl aclocal.m4 generated automatically by aclocal 1.4
+
+dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+dnl PARTICULAR PURPOSE.
+
+# Do all the work for Automake. This macro actually does too much --
+# some checks are only needed if your package does certain things.
+# But this isn't really a big deal.
+
+# serial 1
+
+dnl Usage:
+dnl AM_INIT_AUTOMAKE(package,version, [no-define])
+
+AC_DEFUN(AM_INIT_AUTOMAKE,
+[AC_REQUIRE([AC_PROG_INSTALL])
+PACKAGE=[$1]
+AC_SUBST(PACKAGE)
+VERSION=[$2]
+AC_SUBST(VERSION)
+dnl test to see if srcdir already configured
+if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+fi
+ifelse([$3],,
+AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
+AC_REQUIRE([AM_SANITY_CHECK])
+AC_REQUIRE([AC_ARG_PROGRAM])
+dnl FIXME This is truly gross.
+missing_dir=`cd $ac_aux_dir && pwd`
+AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
+AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
+AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
+AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
+AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
+AC_REQUIRE([AC_PROG_MAKE_SET])])
+
+#
+# Check to make sure that the build environment is sane.
+#
+
+AC_DEFUN(AM_SANITY_CHECK,
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftestfile
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
+ if test "[$]*" = "X"; then
+ # -L didn't work.
+ set X `ls -t $srcdir/configure conftestfile`
+ fi
+ if test "[$]*" != "X $srcdir/configure conftestfile" \
+ && test "[$]*" != "X conftestfile $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
+
+ test "[$]2" = conftestfile
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+rm -f conftest*
+AC_MSG_RESULT(yes)])
+
+dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
+dnl The program must properly implement --version.
+AC_DEFUN(AM_MISSING_PROG,
+[AC_MSG_CHECKING(for working $2)
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if ($2 --version) < /dev/null > /dev/null 2>&1; then
+ $1=$2
+ AC_MSG_RESULT(found)
+else
+ $1="$3/missing $2"
+ AC_MSG_RESULT(missing)
+fi
+AC_SUBST($1)])
+
+# Like AC_CONFIG_HEADER, but automatically create stamp file.
+
+AC_DEFUN(AM_CONFIG_HEADER,
+[AC_PREREQ([2.12])
+AC_CONFIG_HEADER([$1])
+dnl When config.status generates a header, we must update the stamp-h file.
+dnl This file resides in the same directory as the config header
+dnl that is generated. We must strip everything past the first ":",
+dnl and everything past the last "/".
+AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
+ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
+<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
+<<am_indx=1
+for am_file in <<$1>>; do
+ case " <<$>>CONFIG_HEADERS " in
+ *" <<$>>am_file "*<<)>>
+ echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
+ ;;
+ esac
+ am_indx=`expr "<<$>>am_indx" + 1`
+done<<>>dnl>>)
+changequote([,]))])
+
+# aclocal-include.m4
+#
+# This macro adds the name macrodir to the set of directories
+# that `aclocal' searches for macros.
+
+# serial 1
+
+dnl AM_ACLOCAL_INCLUDE(macrodir)
+AC_DEFUN([AM_ACLOCAL_INCLUDE],
+[
+ AM_CONDITIONAL(INSIDE_GNOME_COMMON, test x = y)
+
+ test -n "$ACLOCAL_FLAGS" && ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
+
+ for k in $1 ; do ACLOCAL="$ACLOCAL -I $k" ; done
+])
+
+# Define a conditional.
+
+AC_DEFUN(AM_CONDITIONAL,
+[AC_SUBST($1_TRUE)
+AC_SUBST($1_FALSE)
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi])
+
+dnl
+dnl GNOME_INIT_HOOK (script-if-gnome-enabled, [failflag], [additional-inits])
+dnl
+dnl if failflag is "fail" then GNOME_INIT_HOOK will abort if gnomeConf.sh
+dnl is not found.
+dnl
+
+AC_DEFUN([GNOME_INIT_HOOK],[
+ AC_SUBST(GNOME_LIBS)
+ AC_SUBST(GNOMEUI_LIBS)
+ AC_SUBST(GNOMEGNORBA_LIBS)
+ AC_SUBST(GTKXMHTML_LIBS)
+ AC_SUBST(ZVT_LIBS)
+ AC_SUBST(GNOME_LIBDIR)
+ AC_SUBST(GNOME_INCLUDEDIR)
+
+ AC_ARG_WITH(gnome-includes,
+ [ --with-gnome-includes Specify location of GNOME headers],[
+ CFLAGS="$CFLAGS -I$withval"
+ ])
+
+ AC_ARG_WITH(gnome-libs,
+ [ --with-gnome-libs Specify location of GNOME libs],[
+ LDFLAGS="$LDFLAGS -L$withval"
+ gnome_prefix=$withval
+ ])
+
+ AC_ARG_WITH(gnome,
+ [ --with-gnome Specify prefix for GNOME files],
+ if test x$withval = xyes; then
+ want_gnome=yes
+ dnl Note that an empty true branch is not
+ dnl valid sh syntax.
+ ifelse([$1], [], :, [$1])
+ else
+ if test "x$withval" = xno; then
+ want_gnome=no
+ else
+ want_gnome=yes
+ LDFLAGS="$LDFLAGS -L$withval/lib"
+ CFLAGS="$CFLAGS -I$withval/include"
+ gnome_prefix=$withval/lib
+ fi
+ fi,
+ want_gnome=yes)
+
+ if test "x$want_gnome" = xyes; then
+
+ AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
+ if test "$GNOME_CONFIG" = "no"; then
+ no_gnome_config="yes"
+ else
+ AC_MSG_CHECKING(if $GNOME_CONFIG works)
+ if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then
+ AC_MSG_RESULT(yes)
+ GNOME_GNORBA_HOOK([],$2)
+ GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome`"
+ GNOMEUI_LIBS="`$GNOME_CONFIG --libs-only-l gnomeui`"
+ GNOMEGNORBA_LIBS="`$GNOME_CONFIG --libs-only-l gnorba gnomeui`"
+ GTKXMHTML_LIBS="`$GNOME_CONFIG --libs-only-l gtkxmhtml`"
+ ZVT_LIBS="`$GNOME_CONFIG --libs-only-l zvt`"
+ GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`"
+ GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`"
+ $1
+ else
+ AC_MSG_RESULT(no)
+ no_gnome_config="yes"
+ fi
+ fi
+
+ if test x$exec_prefix = xNONE; then
+ if test x$prefix = xNONE; then
+ gnome_prefix=$ac_default_prefix/lib
+ else
+ gnome_prefix=$prefix/lib
+ fi
+ else
+ gnome_prefix=`eval echo \`echo $libdir\``
+ fi
+
+ if test "$no_gnome_config" = "yes"; then
+ AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix)
+ if test -f $gnome_prefix/gnomeConf.sh; then
+ AC_MSG_RESULT(found)
+ echo "loading gnome configuration from" \
+ "$gnome_prefix/gnomeConf.sh"
+ . $gnome_prefix/gnomeConf.sh
+ $1
+ else
+ AC_MSG_RESULT(not found)
+ if test x$2 = xfail; then
+ AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install)
+ fi
+ fi
+ fi
+ fi
+
+ if test -n "$3"; then
+ n="$3"
+ for i in $n; do
+ AC_MSG_CHECKING(extra library \"$i\")
+ case $i in
+ applets)
+ AC_SUBST(GNOME_APPLETS_LIBS)
+ GNOME_APPLETS_LIBS=`$GNOME_CONFIG --libs-only-l applets`
+ AC_MSG_RESULT($GNOME_APPLETS_LIBS);;
+ capplet)
+ AC_SUBST(GNOME_CAPPLET_LIBS)
+ GNOME_CAPPLET_LIBS=`$GNOME_CONFIG --libs-only-l capplet`
+ AC_MSG_RESULT($GNOME_CAPPLET_LIBS);;
+ *)
+ AC_MSG_RESULT(unknown library)
+ esac
+ done
+ fi
+])
+
+dnl
+dnl GNOME_INIT ([additional-inits])
+dnl
+
+AC_DEFUN([GNOME_INIT],[
+ GNOME_INIT_HOOK([],fail,$1)
+])
+
+dnl
+dnl GNOME_GNORBA_HOOK (script-if-gnorba-found, failflag)
+dnl
+dnl if failflag is "failure" it aborts if gnorba is not found.
+dnl
+
+AC_DEFUN([GNOME_GNORBA_HOOK],[
+ GNOME_ORBIT_HOOK([],$2)
+ AC_CACHE_CHECK([for gnorba libraries],gnome_cv_gnorba_found,[
+ gnome_cv_gnorba_found=no
+ if test x$gnome_cv_orbit_found = xyes; then
+ GNORBA_CFLAGS="`gnome-config --cflags gnorba gnomeui`"
+ GNORBA_LIBS="`gnome-config --libs gnorba gnomeui`"
+ if test -n "$GNORBA_LIBS"; then
+ gnome_cv_gnorba_found=yes
+ fi
+ fi
+ ])
+ AM_CONDITIONAL(HAVE_GNORBA, test x$gnome_cv_gnorba_found = xyes)
+ if test x$gnome_cv_orbit_found = xyes; then
+ $1
+ GNORBA_CFLAGS="`gnome-config --cflags gnorba gnomeui`"
+ GNORBA_LIBS="`gnome-config --libs gnorba gnomeui`"
+ AC_SUBST(GNORBA_CFLAGS)
+ AC_SUBST(GNORBA_LIBS)
+ else
+ if test x$2 = xfailure; then
+ AC_MSG_ERROR(gnorba library not installed or installation problem)
+ fi
+ fi
+])
+
+AC_DEFUN([GNOME_GNORBA_CHECK], [
+ GNOME_GNORBA_HOOK([],failure)
+])
+
+dnl
+dnl GNOME_ORBIT_HOOK (script-if-orbit-found, failflag)
+dnl
+dnl if failflag is "failure" it aborts if orbit is not found.
+dnl
+
+AC_DEFUN([GNOME_ORBIT_HOOK],[
+ AC_PATH_PROG(ORBIT_CONFIG,orbit-config,no)
+ AC_PATH_PROG(ORBIT_IDL,orbit-idl,no)
+ AC_CACHE_CHECK([for working ORBit environment],gnome_cv_orbit_found,[
+ if test x$ORBIT_CONFIG = xno -o x$ORBIT_IDL = xno; then
+ gnome_cv_orbit_found=no
+ else
+ gnome_cv_orbit_found=yes
+ fi
+ ])
+ AM_CONDITIONAL(HAVE_ORBIT, test x$gnome_cv_orbit_found = xyes)
+ if test x$gnome_cv_orbit_found = xyes; then
+ $1
+ ORBIT_CFLAGS=`orbit-config --cflags client server`
+ ORBIT_LIBS=`orbit-config --use-service=name --libs client server`
+ AC_SUBST(ORBIT_CFLAGS)
+ AC_SUBST(ORBIT_LIBS)
+ else
+ if test x$2 = xfailure; then
+ AC_MSG_ERROR(ORBit not installed or installation problem)
+ fi
+ fi
+])
+
+AC_DEFUN([GNOME_ORBIT_CHECK], [
+ GNOME_ORBIT_HOOK([],failure)
+])
+
+
+# serial 1
+
+# @defmac AC_PROG_CC_STDC
+# @maindex PROG_CC_STDC
+# @ovindex CC
+# If the C compiler in not in ANSI C mode by default, try to add an option
+# to output variable @code{CC} to make it so. This macro tries various
+# options that select ANSI C on some system or another. It considers the
+# compiler to be in ANSI C mode if it handles function prototypes correctly.
+#
+# If you use this macro, you should check after calling it whether the C
+# compiler has been set to accept ANSI C; if not, the shell variable
+# @code{am_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source
+# code in ANSI C, you can make an un-ANSIfied copy of it by using the
+# program @code{ansi2knr}, which comes with Ghostscript.
+# @end defmac
+
+AC_DEFUN(AM_PROG_CC_STDC,
+[AC_REQUIRE([AC_PROG_CC])
+AC_BEFORE([$0], [AC_C_INLINE])
+AC_BEFORE([$0], [AC_C_CONST])
+dnl Force this before AC_PROG_CPP. Some cpp's, eg on HPUX, require
+dnl a magic option to avoid problems with ANSI preprocessor commands
+dnl like #elif.
+dnl FIXME: can't do this because then AC_AIX won't work due to a
+dnl circular dependency.
+dnl AC_BEFORE([$0], [AC_PROG_CPP])
+AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C)
+AC_CACHE_VAL(am_cv_prog_cc_stdc,
+[am_cv_prog_cc_stdc=no
+ac_save_CC="$CC"
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX -qlanglvl=ansi
+# Ultrix and OSF/1 -std1
+# HP-UX -Aa -D_HPUX_SOURCE
+# SVR4 -Xc -D__EXTENSIONS__
+for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ AC_TRY_COMPILE(
+[#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+], [
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+],
+[am_cv_prog_cc_stdc="$ac_arg"; break])
+done
+CC="$ac_save_CC"
+])
+if test -z "$am_cv_prog_cc_stdc"; then
+ AC_MSG_RESULT([none needed])
+else
+ AC_MSG_RESULT($am_cv_prog_cc_stdc)
+fi
+case "x$am_cv_prog_cc_stdc" in
+ x|xno) ;;
+ *) CC="$CC $am_cv_prog_cc_stdc" ;;
+esac
+])
+
+dnl GNOME_COMPILE_WARNINGS
+dnl Turn on many useful compiler warnings
+dnl For now, only works on GCC
+AC_DEFUN([GNOME_COMPILE_WARNINGS],[
+ AC_ARG_ENABLE(compile-warnings,
+ [ --enable-compile-warnings=[no/minimum/yes] Turn on compiler warnings.],,enable_compile_warnings=minimum)
+
+ AC_MSG_CHECKING(what warning flags to pass to the C compiler)
+ warnCFLAGS=
+ if test "x$GCC" != xyes; then
+ enable_compile_warnings=no
+ fi
+
+ if test "x$enable_compile_warnings" != "xno"; then
+ if test "x$GCC" = "xyes"; then
+ case " $CFLAGS " in
+ *[\ \ ]-Wall[\ \ ]*) ;;
+ *) warnCFLAGS="-Wall -Wunused" ;;
+ esac
+
+ ## -W is not all that useful. And it cannot be controlled
+ ## with individual -Wno-xxx flags, unlike -Wall
+ if test "x$enable_compile_warnings" = "xyes"; then
+ warnCFLAGS="$warnCFLAGS -Wmissing-prototypes -Wmissing-declarations"
+ fi
+ fi
+ fi
+ AC_MSG_RESULT($warnCFLAGS)
+
+ AC_ARG_ENABLE(iso-c,
+ [ --enable-iso-c Try to warn if code is not ISO C ],,
+ enable_iso_c=no)
+
+ AC_MSG_CHECKING(what language compliance flags to pass to the C compiler)
+ complCFLAGS=
+ if test "x$enable_iso_c" != "xno"; then
+ if test "x$GCC" = "xyes"; then
+ case " $CFLAGS " in
+ *[\ \ ]-ansi[\ \ ]*) ;;
+ *) complCFLAGS="$complCFLAGS -ansi" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[\ \ ]-pedantic[\ \ ]*) ;;
+ *) complCFLAGS="$complCFLAGS -pedantic" ;;
+ esac
+ fi
+ fi
+ AC_MSG_RESULT($complCFLAGS)
+ if test "x$cflags_set" != "xyes"; then
+ CFLAGS="$CFLAGS $warnCFLAGS $complCFLAGS"
+ cflags_set=yes
+ AC_SUBST(cflags_set)
+ fi
+])
+
+dnl For C++, do basically the same thing.
+
+AC_DEFUN([GNOME_CXX_WARNINGS],[
+ AC_ARG_ENABLE(cxx-warnings,
+ [ --enable-cxx-warnings=[no/minimum/yes] Turn on compiler warnings.],,enable_cxx_warnings=minimum)
+
+ AC_MSG_CHECKING(what warning flags to pass to the C++ compiler)
+ warnCXXFLAGS=
+ if test "x$GCC" != xyes; then
+ enable_compile_warnings=no
+ fi
+ if test "x$enable_cxx_warnings" != "xno"; then
+ if test "x$GCC" = "xyes"; then
+ case " $CXXFLAGS " in
+ *[\ \ ]-Wall[\ \ ]*) ;;
+ *) warnCXXFLAGS="-Wall -Wno-unused" ;;
+ esac
+
+ ## -W is not all that useful. And it cannot be controlled
+ ## with individual -Wno-xxx flags, unlike -Wall
+ if test "x$enable_cxx_warnings" = "xyes"; then
+ warnCXXFLAGS="$warnCXXFLAGS -Wmissing-prototypes -Wmissing-declarations -Wshadow -Woverloaded-virtual"
+ fi
+ fi
+ fi
+ AC_MSG_RESULT($warnCXXFLAGS)
+
+ AC_ARG_ENABLE(iso-cxx,
+ [ --enable-iso-cxx Try to warn if code is not ISO C++ ],,
+ enable_iso_cxx=no)
+
+ AC_MSG_CHECKING(what language compliance flags to pass to the C++ compiler)
+ complCXXFLAGS=
+ if test "x$enable_iso_cxx" != "xno"; then
+ if test "x$GCC" = "xyes"; then
+ case " $CXXFLAGS " in
+ *[\ \ ]-ansi[\ \ ]*) ;;
+ *) complCXXFLAGS="$complCXXFLAGS -ansi" ;;
+ esac
+
+ case " $CXXFLAGS " in
+ *[\ \ ]-pedantic[\ \ ]*) ;;
+ *) complCXXFLAGS="$complCXXFLAGS -pedantic" ;;
+ esac
+ fi
+ fi
+ AC_MSG_RESULT($complCXXFLAGS)
+ if test "x$cxxflags_set" != "xyes"; then
+ CXXFLAGS="$CXXFLAGS $warnCXXFLAGS $complCXXFLAGS"
+ cxxflags_set=yes
+ AC_SUBST(cxxflags_set)
+ fi
+])
+
+dnl GNOME_X_CHECKS
+dnl
+dnl Basic X11 related checks for X11. At the end, the following will be
+dnl defined/changed:
+dnl GTK_{CFLAGS,LIBS} From AM_PATH_GTK
+dnl CPPFLAGS Will include $X_CFLAGS
+dnl GNOME_HAVE_SM `true' or `false' depending on whether session
+dnl management is available. It is available if
+dnl both -lSM and X11/SM/SMlib.h exist. (Some
+dnl Solaris boxes have the library but not the header)
+dnl XPM_LIBS -lXpm if Xpm library is present, otherwise ""
+dnl
+dnl The following configure cache variables are defined (but not used):
+dnl gnome_cv_passdown_{x_libs,X_LIBS,X_CFLAGS}
+dnl
+AC_DEFUN([GNOME_X_CHECKS],
+[
+ AM_PATH_GTK(1.2.0,,AC_MSG_ERROR(GTK not installed, or gtk-config not in path))
+ dnl Hope that GTK_CFLAGS have only -I and -D. Otherwise, we could
+ dnl test -z "$x_includes" || CPPFLAGS="$CPPFLAGS -I$x_includes"
+ dnl
+ dnl Use CPPFLAGS instead of CFLAGS because AC_CHECK_HEADERS uses
+ dnl CPPFLAGS, not CFLAGS
+ CPPFLAGS="$CPPFLAGS $GTK_CFLAGS"
+
+ saved_ldflags="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $GTK_LIBS"
+
+ gnome_cv_passdown_x_libs="$GTK_LIBS"
+ gnome_cv_passdown_X_LIBS="$GTK_LIBS"
+ gnome_cv_passdown_X_CFLAGS="$GTK_CFLAGS"
+ gnome_cv_passdown_GTK_LIBS="$GTK_LIBS"
+
+ LDFLAGS="$saved_ldflags $GTK_LIBS"
+
+dnl We are requiring GTK >= 1.1.1, which means this will be fine anyhow.
+ USE_DEVGTK=true
+
+dnl AC_MSG_CHECKING([whether to use features from (unstable) GTK+ 1.1.x])
+dnl AC_EGREP_CPP(answer_affirmatively,
+dnl [#include <gtk/gtkfeatures.h>
+dnl #ifdef GTK_HAVE_FEATURES_1_1_0
+dnl answer_affirmatively
+dnl #endif
+dnl ], dev_gtk=yes, dev_gtk=no)
+dnl if test "$dev_gtk" = "yes"; then
+dnl USE_DEVGTK=true
+dnl fi
+dnl AC_MSG_RESULT("$dev_gtk")
+
+ GNOME_HAVE_SM=true
+ case "$GTK_LIBS" in
+ *-lSM*)
+ dnl Already found it.
+ ;;
+ *)
+ dnl Assume that if we have -lSM then we also have -lICE.
+ AC_CHECK_LIB(SM, SmcSaveYourselfDone,
+ [GTK_LIBS="-lSM -lICE $GTK_LIBS"],GNOME_HAVE_SM=false,
+ $x_libs -lICE)
+ ;;
+ esac
+
+ if test "$GNOME_HAVE_SM" = true; then
+ AC_CHECK_HEADERS(X11/SM/SMlib.h,,GNOME_HAVE_SM=false)
+ fi
+
+ if test "$GNOME_HAVE_SM" = true; then
+ AC_DEFINE(HAVE_LIBSM)
+ fi
+
+ XPM_LIBS=""
+ AC_CHECK_LIB(Xpm, XpmFreeXpmImage, [XPM_LIBS="-lXpm"], , $x_libs)
+ AC_SUBST(XPM_LIBS)
+
+ AC_REQUIRE([GNOME_PTHREAD_CHECK])
+ LDFLAGS="$saved_ldflags"
+
+ AC_PROVIDE([GNOME_X_CHECKS])
+])
+
+# Configure paths for GTK+
+# Owen Taylor 97-11-3
+
+dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
+dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
+dnl
+AC_DEFUN(AM_PATH_GTK,
+[dnl
+dnl Get the cflags and libraries from the gtk-config script
+dnl
+AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
+ gtk_config_prefix="$withval", gtk_config_prefix="")
+AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
+ gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
+AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
+ , enable_gtktest=yes)
+
+ for module in . $4
+ do
+ case "$module" in
+ gthread)
+ gtk_config_args="$gtk_config_args gthread"
+ ;;
+ esac
+ done
+
+ if test x$gtk_config_exec_prefix != x ; then
+ gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
+ if test x${GTK_CONFIG+set} != xset ; then
+ GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
+ fi
+ fi
+ if test x$gtk_config_prefix != x ; then
+ gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
+ if test x${GTK_CONFIG+set} != xset ; then
+ GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
+ fi
+ fi
+
+ AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
+ min_gtk_version=ifelse([$1], ,0.99.7,$1)
+ AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
+ no_gtk=""
+ if test "$GTK_CONFIG" = "no" ; then
+ no_gtk=yes
+ else
+ GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
+ GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
+ gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+ if test "x$enable_gtktest" = "xyes" ; then
+ ac_save_CFLAGS="$CFLAGS"
+ ac_save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $GTK_CFLAGS"
+ LIBS="$GTK_LIBS $LIBS"
+dnl
+dnl Now check if the installed GTK is sufficiently new. (Also sanity
+dnl checks the results of gtk-config to some extent
+dnl
+ rm -f conf.gtktest
+ AC_TRY_RUN([
+#include <gtk/gtk.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+int
+main ()
+{
+ int major, minor, micro;
+ char *tmp_version;
+
+ system ("touch conf.gtktest");
+
+ /* HP/UX 9 (%@#!) writes to sscanf strings */
+ tmp_version = g_strdup("$min_gtk_version");
+ if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+ printf("%s, bad version string\n", "$min_gtk_version");
+ exit(1);
+ }
+
+ if ((gtk_major_version != $gtk_config_major_version) ||
+ (gtk_minor_version != $gtk_config_minor_version) ||
+ (gtk_micro_version != $gtk_config_micro_version))
+ {
+ printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
+ $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
+ gtk_major_version, gtk_minor_version, gtk_micro_version);
+ printf ("*** was found! If gtk-config was correct, then it is best\n");
+ printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
+ printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
+ printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
+ printf("*** required on your system.\n");
+ printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
+ printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
+ printf("*** before re-running configure\n");
+ }
+#if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
+ else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
+ (gtk_minor_version != GTK_MINOR_VERSION) ||
+ (gtk_micro_version != GTK_MICRO_VERSION))
+ {
+ printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
+ GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
+ printf("*** library (version %d.%d.%d)\n",
+ gtk_major_version, gtk_minor_version, gtk_micro_version);
+ }
+#endif /* defined (GTK_MAJOR_VERSION) ... */
+ else
+ {
+ if ((gtk_major_version > major) ||
+ ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
+ ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
+ {
+ return 0;
+ }
+ else
+ {
+ printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
+ gtk_major_version, gtk_minor_version, gtk_micro_version);
+ printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
+ major, minor, micro);
+ printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
+ printf("***\n");
+ printf("*** If you have already installed a sufficiently new version, this error\n");
+ printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
+ printf("*** being found. The easiest way to fix this is to remove the old version\n");
+ printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
+ printf("*** correct copy of gtk-config. (In this case, you will have to\n");
+ printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
+ printf("*** so that the correct libraries are found at run-time))\n");
+ }
+ }
+ return 1;
+}
+],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ if test "x$no_gtk" = x ; then
+ AC_MSG_RESULT(yes)
+ ifelse([$2], , :, [$2])
+ else
+ AC_MSG_RESULT(no)
+ if test "$GTK_CONFIG" = "no" ; then
+ echo "*** The gtk-config script installed by GTK could not be found"
+ echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
+ echo "*** your path, or set the GTK_CONFIG environment variable to the"
+ echo "*** full path to gtk-config."
+ else
+ if test -f conf.gtktest ; then
+ :
+ else
+ echo "*** Could not run GTK test program, checking why..."
+ CFLAGS="$CFLAGS $GTK_CFLAGS"
+ LIBS="$LIBS $GTK_LIBS"
+ AC_TRY_LINK([
+#include <gtk/gtk.h>
+#include <stdio.h>
+], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
+ [ echo "*** The test program compiled, but did not run. This usually means"
+ echo "*** that the run-time linker is not finding GTK or finding the wrong"
+ echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
+ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+ echo "*** to the installed location Also, make sure you have run ldconfig if that"
+ echo "*** is required on your system"
+ echo "***"
+ echo "*** If you have an old version installed, it is best to remove it, although"
+ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
+ echo "***"
+ echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
+ echo "*** came with the system with the command"
+ echo "***"
+ echo "*** rpm --erase --nodeps gtk gtk-devel" ],
+ [ echo "*** The test program failed to compile or link. See the file config.log for the"
+ echo "*** exact error that occured. This usually means GTK was incorrectly installed"
+ echo "*** or that you have moved GTK since it was installed. In the latter case, you"
+ echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ GTK_CFLAGS=""
+ GTK_LIBS=""
+ ifelse([$3], , :, [$3])
+ fi
+ AC_SUBST(GTK_CFLAGS)
+ AC_SUBST(GTK_LIBS)
+ rm -f conf.gtktest
+])
+
+dnl
+dnl And better, use gthreads instead...
+dnl
+
+AC_DEFUN([GNOME_PTHREAD_CHECK],[
+ PTHREAD_LIB=""
+ AC_CHECK_LIB(pthread, pthread_create, PTHREAD_LIB="-lpthread",
+ [AC_CHECK_LIB(pthreads, pthread_create, PTHREAD_LIB="-lpthreads",
+ [AC_CHECK_LIB(c_r, pthread_create, PTHREAD_LIB="-lc_r",
+ [AC_CHECK_FUNC(pthread_create)]
+ )]
+ )]
+ )
+ AC_SUBST(PTHREAD_LIB)
+ AC_PROVIDE([GNOME_PTHREAD_CHECK])
+])
+
+# Macro to add for using GNU gettext.
+# Ulrich Drepper <drepper@cygnus.com>, 1995.
+#
+# This file can be copied and used freely without restrictions. It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+# Please note that the actual code is *not* freely available.
+
+# serial 5
+
+AC_DEFUN(AM_WITH_NLS,
+ [AC_MSG_CHECKING([whether NLS is requested])
+ dnl Default is enabled NLS
+ AC_ARG_ENABLE(nls,
+ [ --disable-nls do not use Native Language Support],
+ USE_NLS=$enableval, USE_NLS=yes)
+ AC_MSG_RESULT($USE_NLS)
+ AC_SUBST(USE_NLS)
+
+ USE_INCLUDED_LIBINTL=no
+
+ dnl If we use NLS figure out what method
+ if test "$USE_NLS" = "yes"; then
+ AC_DEFINE(ENABLE_NLS)
+ AC_MSG_CHECKING([whether included gettext is requested])
+ AC_ARG_WITH(included-gettext,
+ [ --with-included-gettext use the GNU gettext library included here],
+ nls_cv_force_use_gnu_gettext=$withval,
+ nls_cv_force_use_gnu_gettext=no)
+ AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
+
+ nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+ if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
+ dnl User does not insist on using GNU NLS library. Figure out what
+ dnl to use. If gettext or catgets are available (in this order) we
+ dnl use this. Else we have to fall back to GNU NLS library.
+ dnl catgets is only used if permitted by option --with-catgets.
+ nls_cv_header_intl=
+ nls_cv_header_libgt=
+ CATOBJEXT=NONE
+
+ AC_CHECK_HEADER(libintl.h,
+ [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
+ [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
+ gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
+
+ if test "$gt_cv_func_gettext_libc" != "yes"; then
+ AC_CHECK_LIB(intl, bindtextdomain,
+ [AC_CACHE_CHECK([for gettext in libintl],
+ gt_cv_func_gettext_libintl,
+ [AC_CHECK_LIB(intl, gettext,
+ gt_cv_func_gettext_libintl=yes,
+ gt_cv_func_gettext_libintl=no)],
+ gt_cv_func_gettext_libintl=no)])
+ fi
+
+ if test "$gt_cv_func_gettext_libc" = "yes" \
+ || test "$gt_cv_func_gettext_libintl" = "yes"; then
+ AC_DEFINE(HAVE_GETTEXT)
+ AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
+ if test "$MSGFMT" != "no"; then
+ AC_CHECK_FUNCS(dcgettext)
+ AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+ AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
+ AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
+ return _nl_msg_cat_cntr],
+ [CATOBJEXT=.gmo
+ DATADIRNAME=share],
+ [CATOBJEXT=.mo
+ DATADIRNAME=lib])
+ INSTOBJEXT=.mo
+ fi
+ fi
+ ])
+
+ if test "$CATOBJEXT" = "NONE"; then
+ AC_MSG_CHECKING([whether catgets can be used])
+ AC_ARG_WITH(catgets,
+ [ --with-catgets use catgets functions if available],
+ nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
+ AC_MSG_RESULT($nls_cv_use_catgets)
+
+ if test "$nls_cv_use_catgets" = "yes"; then
+ dnl No gettext in C library. Try catgets next.
+ AC_CHECK_LIB(i, main)
+ AC_CHECK_FUNC(catgets,
+ [AC_DEFINE(HAVE_CATGETS)
+ INTLOBJS="\$(CATOBJS)"
+ AC_PATH_PROG(GENCAT, gencat, no)dnl
+ if test "$GENCAT" != "no"; then
+ AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
+ if test "$GMSGFMT" = "no"; then
+ AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
+ fi
+ AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
+ USE_INCLUDED_LIBINTL=yes
+ CATOBJEXT=.cat
+ INSTOBJEXT=.cat
+ DATADIRNAME=lib
+ INTLDEPS='$(top_builddir)/intl/libintl.a'
+ INTLLIBS=$INTLDEPS
+ LIBS=`echo $LIBS | sed -e 's/-lintl//'`
+ nls_cv_header_intl=intl/libintl.h
+ nls_cv_header_libgt=intl/libgettext.h
+ fi])
+ fi
+ fi
+
+ if test "$CATOBJEXT" = "NONE"; then
+ dnl Neither gettext nor catgets in included in the C library.
+ dnl Fall back on GNU gettext library.
+ nls_cv_use_gnu_gettext=yes
+ fi
+ fi
+
+ if test "$nls_cv_use_gnu_gettext" = "yes"; then
+ dnl Mark actions used to generate GNU NLS library.
+ INTLOBJS="\$(GETTOBJS)"
+ AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
+ AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+ AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
+ AC_SUBST(MSGFMT)
+ USE_INCLUDED_LIBINTL=yes
+ CATOBJEXT=.gmo
+ INSTOBJEXT=.mo
+ DATADIRNAME=share
+ INTLDEPS='$(top_builddir)/intl/libintl.a'
+ INTLLIBS=$INTLDEPS
+ LIBS=`echo $LIBS | sed -e 's/-lintl//'`
+ nls_cv_header_intl=intl/libintl.h
+ nls_cv_header_libgt=intl/libgettext.h
+ fi
+
+ dnl Test whether we really found GNU xgettext.
+ if test "$XGETTEXT" != ":"; then
+ dnl If it is no GNU xgettext we define it as : so that the
+ dnl Makefiles still can work.
+ if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
+ : ;
+ else
+ AC_MSG_RESULT(
+ [found xgettext program is not GNU xgettext; ignore it])
+ XGETTEXT=":"
+ fi
+ fi
+
+ # We need to process the po/ directory.
+ POSUB=po
+ else
+ DATADIRNAME=share
+ nls_cv_header_intl=intl/libintl.h
+ nls_cv_header_libgt=intl/libgettext.h
+ fi
+ AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
+ AC_OUTPUT_COMMANDS(
+ [case "$CONFIG_FILES" in *po/Makefile.in*)
+ sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
+ esac])
+
+
+ # If this is used in GNU gettext we have to set USE_NLS to `yes'
+ # because some of the sources are only built for this goal.
+ if test "$PACKAGE" = gettext; then
+ USE_NLS=yes
+ USE_INCLUDED_LIBINTL=yes
+ fi
+
+ dnl These rules are solely for the distribution goal. While doing this
+ dnl we only have to keep exactly one list of the available catalogs
+ dnl in configure.in.
+ for lang in $ALL_LINGUAS; do
+ GMOFILES="$GMOFILES $lang.gmo"
+ POFILES="$POFILES $lang.po"
+ done
+
+ dnl Make all variables we use known to autoconf.
+ AC_SUBST(USE_INCLUDED_LIBINTL)
+ AC_SUBST(CATALOGS)
+ AC_SUBST(CATOBJEXT)
+ AC_SUBST(DATADIRNAME)
+ AC_SUBST(GMOFILES)
+ AC_SUBST(INSTOBJEXT)
+ AC_SUBST(INTLDEPS)
+ AC_SUBST(INTLLIBS)
+ AC_SUBST(INTLOBJS)
+ AC_SUBST(POFILES)
+ AC_SUBST(POSUB)
+ ])
+
+AC_DEFUN(AM_GNU_GETTEXT,
+ [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+ AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AC_PROG_RANLIB])dnl
+ AC_REQUIRE([AC_ISC_POSIX])dnl
+ AC_REQUIRE([AC_HEADER_STDC])dnl
+ AC_REQUIRE([AC_C_CONST])dnl
+ AC_REQUIRE([AC_C_INLINE])dnl
+ AC_REQUIRE([AC_TYPE_OFF_T])dnl
+ AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+ AC_REQUIRE([AC_FUNC_ALLOCA])dnl
+ AC_REQUIRE([AC_FUNC_MMAP])dnl
+
+ AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
+unistd.h sys/param.h])
+ AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
+strdup __argz_count __argz_stringify __argz_next])
+
+ if test "${ac_cv_func_stpcpy+set}" != "set"; then
+ AC_CHECK_FUNCS(stpcpy)
+ fi
+ if test "${ac_cv_func_stpcpy}" = "yes"; then
+ AC_DEFINE(HAVE_STPCPY)
+ fi
+
+ AM_LC_MESSAGES
+ AM_WITH_NLS
+
+ if test "x$CATOBJEXT" != "x"; then
+ if test "x$ALL_LINGUAS" = "x"; then
+ LINGUAS=
+ else
+ AC_MSG_CHECKING(for catalogs to be installed)
+ NEW_LINGUAS=
+ for lang in ${LINGUAS=$ALL_LINGUAS}; do
+ case "$ALL_LINGUAS" in
+ *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
+ esac
+ done
+ LINGUAS=$NEW_LINGUAS
+ AC_MSG_RESULT($LINGUAS)
+ fi
+
+ dnl Construct list of names of catalog files to be constructed.
+ if test -n "$LINGUAS"; then
+ for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
+ fi
+ fi
+
+ dnl The reference to <locale.h> in the installed <libintl.h> file
+ dnl must be resolved because we cannot expect the users of this
+ dnl to define HAVE_LOCALE_H.
+ if test $ac_cv_header_locale_h = yes; then
+ INCLUDE_LOCALE_H="#include <locale.h>"
+ else
+ INCLUDE_LOCALE_H="\
+/* The system does not provide the header <locale.h>. Take care yourself. */"
+ fi
+ AC_SUBST(INCLUDE_LOCALE_H)
+
+ dnl Determine which catalog format we have (if any is needed)
+ dnl For now we know about two different formats:
+ dnl Linux libc-5 and the normal X/Open format
+ test -d intl || mkdir intl
+ if test "$CATOBJEXT" = ".cat"; then
+ AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
+
+ dnl Transform the SED scripts while copying because some dumb SEDs
+ dnl cannot handle comments.
+ sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
+ fi
+ dnl po2tbl.sed is always needed.
+ sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
+ $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
+
+ dnl In the intl/Makefile.in we have a special dependency which makes
+ dnl only sense for gettext. We comment this out for non-gettext
+ dnl packages.
+ if test "$PACKAGE" = "gettext"; then
+ GT_NO="#NO#"
+ GT_YES=
+ else
+ GT_NO=
+ GT_YES="#YES#"
+ fi
+ AC_SUBST(GT_NO)
+ AC_SUBST(GT_YES)
+
+ dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
+ dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
+ dnl Try to locate is.
+ MKINSTALLDIRS=
+ if test -n "$ac_aux_dir"; then
+ MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
+ fi
+ if test -z "$MKINSTALLDIRS"; then
+ MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+ fi
+ AC_SUBST(MKINSTALLDIRS)
+
+ dnl *** For now the libtool support in intl/Makefile is not for real.
+ l=
+ AC_SUBST(l)
+
+ dnl Generate list of files to be processed by xgettext which will
+ dnl be included in po/Makefile.
+ test -d po || mkdir po
+ if test "x$srcdir" != "x."; then
+ if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
+ posrcprefix="$srcdir/"
+ else
+ posrcprefix="../$srcdir/"
+ fi
+ else
+ posrcprefix="../"
+ fi
+ rm -f po/POTFILES
+ sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
+ < $srcdir/po/POTFILES.in > po/POTFILES
+ ])
+
+# Search path for a program which passes the given test.
+# Ulrich Drepper <drepper@cygnus.com>, 1996.
+#
+# This file can be copied and used freely without restrictions. It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+# Please note that the actual code is *not* freely available.
+
+# serial 1
+
+dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
+dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+AC_DEFUN(AM_PATH_PROG_WITH_TEST,
+[# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL(ac_cv_path_$1,
+[case "[$]$1" in
+ /*)
+ ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in ifelse([$5], , $PATH, [$5]); do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if [$3]; then
+ ac_cv_path_$1="$ac_dir/$ac_word"
+ break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+ ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test -n "[$]$1"; then
+ AC_MSG_RESULT([$]$1)
+else
+ AC_MSG_RESULT(no)
+fi
+AC_SUBST($1)dnl
+])
+
+# Check whether LC_MESSAGES is available in <locale.h>.
+# Ulrich Drepper <drepper@cygnus.com>, 1995.
+#
+# This file can be copied and used freely without restrictions. It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+# Please note that the actual code is *not* freely available.
+
+# serial 1
+
+AC_DEFUN(AM_LC_MESSAGES,
+ [if test $ac_cv_header_locale_h = yes; then
+ AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
+ [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
+ am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
+ if test $am_cv_val_LC_MESSAGES = yes; then
+ AC_DEFINE(HAVE_LC_MESSAGES)
+ fi
+ fi])
+
diff --git a/apps/X11/InstallMgr/autogen.sh b/apps/X11/InstallMgr/autogen.sh
new file mode 100755
index 0000000..8cda498
--- /dev/null
+++ b/apps/X11/InstallMgr/autogen.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+# Run this to generate all the initial makefiles, etc.
+
+srcdir=`dirname $0`
+test -z "$srcdir" && srcdir=.
+
+PKG_NAME="the package."
+
+(test -f $srcdir/configure.in) || {
+ echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
+ echo " top-level directory"
+ exit 1
+}
+
+. $srcdir/macros/autogen.sh
diff --git a/apps/X11/InstallMgr/config.h b/apps/X11/InstallMgr/config.h
new file mode 100644
index 0000000..0d16366
--- /dev/null
+++ b/apps/X11/InstallMgr/config.h
@@ -0,0 +1,134 @@
+/* config.h. Generated automatically by configure. */
+/* config.h.in. Generated automatically from configure.in by autoheader. */
+
+/* Define if using alloca.c. */
+/* #undef C_ALLOCA */
+
+/* Define to empty if the keyword does not work. */
+/* #undef const */
+
+/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
+ This function is required for alloca.c support on those systems. */
+/* #undef CRAY_STACKSEG_END */
+
+/* Define if you have alloca, as a function or macro. */
+#define HAVE_ALLOCA 1
+
+/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
+#define HAVE_ALLOCA_H 1
+
+/* Define if you have a working `mmap' system call. */
+#define HAVE_MMAP 1
+
+/* Define as __inline if that's what the C compiler calls it. */
+/* #undef inline */
+
+/* Define to `long' if <sys/types.h> doesn't define. */
+/* #undef off_t */
+
+/* Define if you need to in order for stat and other things to work. */
+/* #undef _POSIX_SOURCE */
+
+/* Define to `unsigned' if <sys/types.h> doesn't define. */
+/* #undef size_t */
+
+/* If using the C implementation of alloca, define if you know the
+ direction of stack growth for your system; otherwise it will be
+ automatically deduced at run-time.
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown
+ */
+/* #undef STACK_DIRECTION */
+
+/* Define if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+#define ENABLE_NLS 1
+/* #undef HAVE_CATGETS */
+#define HAVE_GETTEXT 1
+#define HAVE_LC_MESSAGES 1
+#define HAVE_STPCPY 1
+#define HAVE_LIBSM 1
+#define PACKAGE_LOCALE_DIR "/usr/local/share/locale"
+/* #undef PACKAGE_DATA_DIR */
+/* #undef PACKAGE_SOURCE_DIR */
+
+/* Define if you have the __argz_count function. */
+#define HAVE___ARGZ_COUNT 1
+
+/* Define if you have the __argz_next function. */
+#define HAVE___ARGZ_NEXT 1
+
+/* Define if you have the __argz_stringify function. */
+#define HAVE___ARGZ_STRINGIFY 1
+
+/* Define if you have the dcgettext function. */
+#define HAVE_DCGETTEXT 1
+
+/* Define if you have the getcwd function. */
+#define HAVE_GETCWD 1
+
+/* Define if you have the getpagesize function. */
+#define HAVE_GETPAGESIZE 1
+
+/* Define if you have the munmap function. */
+#define HAVE_MUNMAP 1
+
+/* Define if you have the putenv function. */
+#define HAVE_PUTENV 1
+
+/* Define if you have the setenv function. */
+#define HAVE_SETENV 1
+
+/* Define if you have the setlocale function. */
+#define HAVE_SETLOCALE 1
+
+/* Define if you have the stpcpy function. */
+#define HAVE_STPCPY 1
+
+/* Define if you have the strcasecmp function. */
+#define HAVE_STRCASECMP 1
+
+/* Define if you have the strchr function. */
+#define HAVE_STRCHR 1
+
+/* Define if you have the strdup function. */
+#define HAVE_STRDUP 1
+
+/* Define if you have the <X11/SM/SMlib.h> header file. */
+#define HAVE_X11_SM_SMLIB_H 1
+
+/* Define if you have the <argz.h> header file. */
+#define HAVE_ARGZ_H 1
+
+/* Define if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* Define if you have the <locale.h> header file. */
+#define HAVE_LOCALE_H 1
+
+/* Define if you have the <malloc.h> header file. */
+#define HAVE_MALLOC_H 1
+
+/* Define if you have the <nl_types.h> header file. */
+#define HAVE_NL_TYPES_H 1
+
+/* Define if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define if you have the <sys/param.h> header file. */
+#define HAVE_SYS_PARAM_H 1
+
+/* Define if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define if you have the i library (-li). */
+/* #undef HAVE_LIBI */
+
+/* Name of package */
+#define PACKAGE "installmgr"
+
+/* Version number of package */
+#define VERSION "0.1"
+
diff --git a/apps/X11/InstallMgr/config.h.in b/apps/X11/InstallMgr/config.h.in
new file mode 100644
index 0000000..9fb8895
--- /dev/null
+++ b/apps/X11/InstallMgr/config.h.in
@@ -0,0 +1,133 @@
+/* config.h.in. Generated automatically from configure.in by autoheader. */
+
+/* Define if using alloca.c. */
+#undef C_ALLOCA
+
+/* Define to empty if the keyword does not work. */
+#undef const
+
+/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
+ This function is required for alloca.c support on those systems. */
+#undef CRAY_STACKSEG_END
+
+/* Define if you have alloca, as a function or macro. */
+#undef HAVE_ALLOCA
+
+/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
+#undef HAVE_ALLOCA_H
+
+/* Define if you have a working `mmap' system call. */
+#undef HAVE_MMAP
+
+/* Define as __inline if that's what the C compiler calls it. */
+#undef inline
+
+/* Define to `long' if <sys/types.h> doesn't define. */
+#undef off_t
+
+/* Define if you need to in order for stat and other things to work. */
+#undef _POSIX_SOURCE
+
+/* Define to `unsigned' if <sys/types.h> doesn't define. */
+#undef size_t
+
+/* If using the C implementation of alloca, define if you know the
+ direction of stack growth for your system; otherwise it will be
+ automatically deduced at run-time.
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown
+ */
+#undef STACK_DIRECTION
+
+/* Define if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+#undef ENABLE_NLS
+#undef HAVE_CATGETS
+#undef HAVE_GETTEXT
+#undef HAVE_LC_MESSAGES
+#undef HAVE_STPCPY
+#undef HAVE_LIBSM
+#undef PACKAGE_LOCALE_DIR
+#undef PACKAGE_DATA_DIR
+#undef PACKAGE_SOURCE_DIR
+
+/* Define if you have the __argz_count function. */
+#undef HAVE___ARGZ_COUNT
+
+/* Define if you have the __argz_next function. */
+#undef HAVE___ARGZ_NEXT
+
+/* Define if you have the __argz_stringify function. */
+#undef HAVE___ARGZ_STRINGIFY
+
+/* Define if you have the dcgettext function. */
+#undef HAVE_DCGETTEXT
+
+/* Define if you have the getcwd function. */
+#undef HAVE_GETCWD
+
+/* Define if you have the getpagesize function. */
+#undef HAVE_GETPAGESIZE
+
+/* Define if you have the munmap function. */
+#undef HAVE_MUNMAP
+
+/* Define if you have the putenv function. */
+#undef HAVE_PUTENV
+
+/* Define if you have the setenv function. */
+#undef HAVE_SETENV
+
+/* Define if you have the setlocale function. */
+#undef HAVE_SETLOCALE
+
+/* Define if you have the stpcpy function. */
+#undef HAVE_STPCPY
+
+/* Define if you have the strcasecmp function. */
+#undef HAVE_STRCASECMP
+
+/* Define if you have the strchr function. */
+#undef HAVE_STRCHR
+
+/* Define if you have the strdup function. */
+#undef HAVE_STRDUP
+
+/* Define if you have the <X11/SM/SMlib.h> header file. */
+#undef HAVE_X11_SM_SMLIB_H
+
+/* Define if you have the <argz.h> header file. */
+#undef HAVE_ARGZ_H
+
+/* Define if you have the <limits.h> header file. */
+#undef HAVE_LIMITS_H
+
+/* Define if you have the <locale.h> header file. */
+#undef HAVE_LOCALE_H
+
+/* Define if you have the <malloc.h> header file. */
+#undef HAVE_MALLOC_H
+
+/* Define if you have the <nl_types.h> header file. */
+#undef HAVE_NL_TYPES_H
+
+/* Define if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define if you have the <sys/param.h> header file. */
+#undef HAVE_SYS_PARAM_H
+
+/* Define if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define if you have the i library (-li). */
+#undef HAVE_LIBI
+
+/* Name of package */
+#undef PACKAGE
+
+/* Version number of package */
+#undef VERSION
+
diff --git a/apps/X11/InstallMgr/configure b/apps/X11/InstallMgr/configure
new file mode 100755
index 0000000..8b2c404
--- /dev/null
+++ b/apps/X11/InstallMgr/configure
@@ -0,0 +1,4995 @@
+#! /bin/sh
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 2.13
+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+# Defaults:
+ac_help=
+ac_default_prefix=/usr/local
+# Any additions from configure.in:
+ac_help="$ac_help
+ --with-gnome-includes Specify location of GNOME headers"
+ac_help="$ac_help
+ --with-gnome-libs Specify location of GNOME libs"
+ac_help="$ac_help
+ --with-gnome Specify prefix for GNOME files"
+ac_help="$ac_help
+ --enable-compile-warnings=[no/minimum/yes] Turn on compiler warnings."
+ac_help="$ac_help
+ --enable-iso-c Try to warn if code is not ISO C "
+ac_help="$ac_help
+ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)"
+ac_help="$ac_help
+ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)"
+ac_help="$ac_help
+ --disable-gtktest Do not try to compile and run a test GTK program"
+ac_help="$ac_help
+ --disable-nls do not use Native Language Support"
+ac_help="$ac_help
+ --with-included-gettext use the GNU gettext library included here"
+ac_help="$ac_help
+ --with-catgets use catgets functions if available"
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+# Initialize some other variables.
+subdirs=
+MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+# Maximum number of lines to put in a shell here document.
+ac_max_here_lines=12
+
+ac_prev=
+for ac_option
+do
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ case "$ac_option" in
+ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) ac_optarg= ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case "$ac_option" in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir="$ac_optarg" ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build="$ac_optarg" ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file="$ac_optarg" ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir="$ac_optarg" ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ eval "enable_${ac_feature}=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix="$ac_optarg" ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he)
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat << EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+ --cache-file=FILE cache test results in FILE
+ --help print this message
+ --no-create do not create output files
+ --quiet, --silent do not print \`checking...' messages
+ --version print the version of autoconf that created configure
+Directory and file names:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [same as prefix]
+ --bindir=DIR user executables in DIR [EPREFIX/bin]
+ --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
+ --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
+ --datadir=DIR read-only architecture-independent data in DIR
+ [PREFIX/share]
+ --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data in DIR
+ [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
+ --libdir=DIR object code libraries in DIR [EPREFIX/lib]
+ --includedir=DIR C header files in DIR [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
+ --infodir=DIR info documentation in DIR [PREFIX/info]
+ --mandir=DIR man documentation in DIR [PREFIX/man]
+ --srcdir=DIR find the sources in DIR [configure dir or ..]
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM
+ run sed PROGRAM on installed program names
+EOF
+ cat << EOF
+Host type:
+ --build=BUILD configure for building on BUILD [BUILD=HOST]
+ --host=HOST configure for HOST [guessed]
+ --target=TARGET configure for TARGET [TARGET=HOST]
+Features and packages:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --x-includes=DIR X include files are in DIR
+ --x-libraries=DIR X library files are in DIR
+EOF
+ if test -n "$ac_help"; then
+ echo "--enable and --with options recognized:$ac_help"
+ fi
+ exit 0 ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host="$ac_optarg" ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir="$ac_optarg" ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir="$ac_optarg" ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir="$ac_optarg" ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir="$ac_optarg" ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir="$ac_optarg" ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir="$ac_optarg" ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir="$ac_optarg" ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix="$ac_optarg" ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix="$ac_optarg" ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix="$ac_optarg" ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name="$ac_optarg" ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir="$ac_optarg" ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir="$ac_optarg" ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site="$ac_optarg" ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir="$ac_optarg" ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir="$ac_optarg" ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target="$ac_optarg" ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers)
+ echo "configure generated by autoconf version 2.13"
+ exit 0 ;;
+
+ -with-* | --with-*)
+ ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_${ac_package}='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ eval "with_${ac_package}=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes="$ac_optarg" ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries="$ac_optarg" ;;
+
+ -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+ ;;
+
+ *)
+ if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+ echo "configure: warning: $ac_option: invalid host type" 1>&2
+ fi
+ if test "x$nonopt" != xNONE; then
+ { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+ fi
+ nonopt="$ac_option"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 6 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+ exec 6>/dev/null
+else
+ exec 6>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+ case "$ac_arg" in
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c) ;;
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+ ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+ esac
+done
+
+# NLS nuisances.
+# Only set these to C if already set. These must not be set unconditionally
+# because not all systems understand e.g. LANG=C (notably SCO).
+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+# Non-C LC_CTYPE values break the ctype check.
+if test "${LANG+set}" = set; then LANG=C; export LANG; fi
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo > confdefs.h
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=configure.in
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+ ac_prog=$0
+ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+ else
+ { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+ fi
+fi
+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ echo "loading site script $ac_site_file"
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ echo "loading cache $cache_file"
+ . $cache_file
+else
+ echo "creating cache $cache_file"
+ > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+ac_exeext=
+ac_objext=o
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+else
+ ac_n= ac_c='\c' ac_t=
+fi
+
+
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+fi
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+echo "configure:578: checking for a BSD compatible install" >&5
+if test -z "$INSTALL"; then
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
+ for ac_dir in $PATH; do
+ # Account for people who put trailing slashes in PATH elements.
+ case "$ac_dir/" in
+ /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ if test -f $ac_dir/$ac_prog; then
+ if test $ac_prog = install &&
+ grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ else
+ ac_cv_path_install="$ac_dir/$ac_prog -c"
+ break 2
+ fi
+ fi
+ done
+ ;;
+ esac
+ done
+ IFS="$ac_save_IFS"
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL="$ac_cv_path_install"
+ else
+ # As a last resort, use the slow shell script. We don't cache a
+ # path for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the path is relative.
+ INSTALL="$ac_install_sh"
+ fi
+fi
+echo "$ac_t""$INSTALL" 1>&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
+echo "configure:631: checking whether build environment is sane" >&5
+# Just in case
+sleep 1
+echo timestamp > conftestfile
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t $srcdir/configure conftestfile`
+ fi
+ if test "$*" != "X $srcdir/configure conftestfile" \
+ && test "$*" != "X conftestfile $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ { echo "configure: error: ls -t appears to fail. Make sure there is not a broken
+alias in your environment" 1>&2; exit 1; }
+ fi
+
+ test "$2" = conftestfile
+ )
+then
+ # Ok.
+ :
+else
+ { echo "configure: error: newly created file is older than distributed files!
+Check your system clock" 1>&2; exit 1; }
+fi
+rm -f conftest*
+echo "$ac_t""yes" 1>&6
+if test "$program_transform_name" = s,x,x,; then
+ program_transform_name=
+else
+ # Double any \ or $. echo might interpret backslashes.
+ cat <<\EOF_SED > conftestsed
+s,\\,\\\\,g; s,\$,$$,g
+EOF_SED
+ program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
+ rm -f conftestsed
+fi
+test "$program_prefix" != NONE &&
+ program_transform_name="s,^,${program_prefix},; $program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
+
+# sed with no file args requires a program.
+test "$program_transform_name" = "" && program_transform_name="s,x,x,"
+
+echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
+echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftestmake <<\EOF
+all:
+ @echo 'ac_maketemp="${MAKE}"'
+EOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+ eval ac_cv_prog_make_${ac_make}_set=yes
+else
+ eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftestmake
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ SET_MAKE=
+else
+ echo "$ac_t""no" 1>&6
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+
+PACKAGE=installmgr
+
+VERSION=0.1
+
+if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
+ { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
+fi
+cat >> confdefs.h <<EOF
+#define PACKAGE "$PACKAGE"
+EOF
+
+cat >> confdefs.h <<EOF
+#define VERSION "$VERSION"
+EOF
+
+
+
+missing_dir=`cd $ac_aux_dir && pwd`
+echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
+echo "configure:734: checking for working aclocal" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if (aclocal --version) < /dev/null > /dev/null 2>&1; then
+ ACLOCAL=aclocal
+ echo "$ac_t""found" 1>&6
+else
+ ACLOCAL="$missing_dir/missing aclocal"
+ echo "$ac_t""missing" 1>&6
+fi
+
+echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
+echo "configure:747: checking for working autoconf" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if (autoconf --version) < /dev/null > /dev/null 2>&1; then
+ AUTOCONF=autoconf
+ echo "$ac_t""found" 1>&6
+else
+ AUTOCONF="$missing_dir/missing autoconf"
+ echo "$ac_t""missing" 1>&6
+fi
+
+echo $ac_n "checking for working automake""... $ac_c" 1>&6
+echo "configure:760: checking for working automake" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if (automake --version) < /dev/null > /dev/null 2>&1; then
+ AUTOMAKE=automake
+ echo "$ac_t""found" 1>&6
+else
+ AUTOMAKE="$missing_dir/missing automake"
+ echo "$ac_t""missing" 1>&6
+fi
+
+echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
+echo "configure:773: checking for working autoheader" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if (autoheader --version) < /dev/null > /dev/null 2>&1; then
+ AUTOHEADER=autoheader
+ echo "$ac_t""found" 1>&6
+else
+ AUTOHEADER="$missing_dir/missing autoheader"
+ echo "$ac_t""missing" 1>&6
+fi
+
+echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
+echo "configure:786: checking for working makeinfo" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
+ MAKEINFO=makeinfo
+ echo "$ac_t""found" 1>&6
+else
+ MAKEINFO="$missing_dir/missing makeinfo"
+ echo "$ac_t""missing" 1>&6
+fi
+
+
+
+
+
+
+
+
+
+if test x = y; then
+ INSIDE_GNOME_COMMON_TRUE=
+ INSIDE_GNOME_COMMON_FALSE='#'
+else
+ INSIDE_GNOME_COMMON_TRUE='#'
+ INSIDE_GNOME_COMMON_FALSE=
+fi
+
+ test -n "$ACLOCAL_FLAGS" && ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
+
+ for k in macros ; do ACLOCAL="$ACLOCAL -I $k" ; done
+
+
+
+
+
+
+
+
+
+
+
+
+ # Check whether --with-gnome-includes or --without-gnome-includes was given.
+if test "${with_gnome_includes+set}" = set; then
+ withval="$with_gnome_includes"
+
+ CFLAGS="$CFLAGS -I$withval"
+
+fi
+
+
+ # Check whether --with-gnome-libs or --without-gnome-libs was given.
+if test "${with_gnome_libs+set}" = set; then
+ withval="$with_gnome_libs"
+
+ LDFLAGS="$LDFLAGS -L$withval"
+ gnome_prefix=$withval
+
+fi
+
+
+ # Check whether --with-gnome or --without-gnome was given.
+if test "${with_gnome+set}" = set; then
+ withval="$with_gnome"
+ if test x$withval = xyes; then
+ want_gnome=yes
+ :
+ else
+ if test "x$withval" = xno; then
+ want_gnome=no
+ else
+ want_gnome=yes
+ LDFLAGS="$LDFLAGS -L$withval/lib"
+ CFLAGS="$CFLAGS -I$withval/include"
+ gnome_prefix=$withval/lib
+ fi
+ fi
+else
+ want_gnome=yes
+fi
+
+
+ if test "x$want_gnome" = xyes; then
+
+ # Extract the first word of "gnome-config", so it can be a program name with args.
+set dummy gnome-config; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:874: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_GNOME_CONFIG'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$GNOME_CONFIG" in
+ /*)
+ ac_cv_path_GNOME_CONFIG="$GNOME_CONFIG" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_GNOME_CONFIG="$GNOME_CONFIG" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_GNOME_CONFIG="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_GNOME_CONFIG" && ac_cv_path_GNOME_CONFIG="no"
+ ;;
+esac
+fi
+GNOME_CONFIG="$ac_cv_path_GNOME_CONFIG"
+if test -n "$GNOME_CONFIG"; then
+ echo "$ac_t""$GNOME_CONFIG" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ if test "$GNOME_CONFIG" = "no"; then
+ no_gnome_config="yes"
+ else
+ echo $ac_n "checking if $GNOME_CONFIG works""... $ac_c" 1>&6
+echo "configure:911: checking if $GNOME_CONFIG works" >&5
+ if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then
+ echo "$ac_t""yes" 1>&6
+
+
+ # Extract the first word of "orbit-config", so it can be a program name with args.
+set dummy orbit-config; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:919: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_ORBIT_CONFIG'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$ORBIT_CONFIG" in
+ /*)
+ ac_cv_path_ORBIT_CONFIG="$ORBIT_CONFIG" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_ORBIT_CONFIG="$ORBIT_CONFIG" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_ORBIT_CONFIG="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_ORBIT_CONFIG" && ac_cv_path_ORBIT_CONFIG="no"
+ ;;
+esac
+fi
+ORBIT_CONFIG="$ac_cv_path_ORBIT_CONFIG"
+if test -n "$ORBIT_CONFIG"; then
+ echo "$ac_t""$ORBIT_CONFIG" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ # Extract the first word of "orbit-idl", so it can be a program name with args.
+set dummy orbit-idl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:955: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_ORBIT_IDL'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$ORBIT_IDL" in
+ /*)
+ ac_cv_path_ORBIT_IDL="$ORBIT_IDL" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_ORBIT_IDL="$ORBIT_IDL" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_ORBIT_IDL="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_ORBIT_IDL" && ac_cv_path_ORBIT_IDL="no"
+ ;;
+esac
+fi
+ORBIT_IDL="$ac_cv_path_ORBIT_IDL"
+if test -n "$ORBIT_IDL"; then
+ echo "$ac_t""$ORBIT_IDL" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ echo $ac_n "checking for working ORBit environment""... $ac_c" 1>&6
+echo "configure:989: checking for working ORBit environment" >&5
+if eval "test \"`echo '$''{'gnome_cv_orbit_found'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ if test x$ORBIT_CONFIG = xno -o x$ORBIT_IDL = xno; then
+ gnome_cv_orbit_found=no
+ else
+ gnome_cv_orbit_found=yes
+ fi
+
+fi
+
+echo "$ac_t""$gnome_cv_orbit_found" 1>&6
+
+
+if test x$gnome_cv_orbit_found = xyes; then
+ HAVE_ORBIT_TRUE=
+ HAVE_ORBIT_FALSE='#'
+else
+ HAVE_ORBIT_TRUE='#'
+ HAVE_ORBIT_FALSE=
+fi
+ if test x$gnome_cv_orbit_found = xyes; then
+
+ ORBIT_CFLAGS=`orbit-config --cflags client server`
+ ORBIT_LIBS=`orbit-config --use-service=name --libs client server`
+
+
+ else
+ if test xfail = xfailure; then
+ { echo "configure: error: ORBit not installed or installation problem" 1>&2; exit 1; }
+ fi
+ fi
+
+ echo $ac_n "checking for gnorba libraries""... $ac_c" 1>&6
+echo "configure:1025: checking for gnorba libraries" >&5
+if eval "test \"`echo '$''{'gnome_cv_gnorba_found'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ gnome_cv_gnorba_found=no
+ if test x$gnome_cv_orbit_found = xyes; then
+ GNORBA_CFLAGS="`gnome-config --cflags gnorba gnomeui`"
+ GNORBA_LIBS="`gnome-config --libs gnorba gnomeui`"
+ if test -n "$GNORBA_LIBS"; then
+ gnome_cv_gnorba_found=yes
+ fi
+ fi
+
+fi
+
+echo "$ac_t""$gnome_cv_gnorba_found" 1>&6
+
+
+if test x$gnome_cv_gnorba_found = xyes; then
+ HAVE_GNORBA_TRUE=
+ HAVE_GNORBA_FALSE='#'
+else
+ HAVE_GNORBA_TRUE='#'
+ HAVE_GNORBA_FALSE=
+fi
+ if test x$gnome_cv_orbit_found = xyes; then
+
+ GNORBA_CFLAGS="`gnome-config --cflags gnorba gnomeui`"
+ GNORBA_LIBS="`gnome-config --libs gnorba gnomeui`"
+
+
+ else
+ if test xfail = xfailure; then
+ { echo "configure: error: gnorba library not installed or installation problem" 1>&2; exit 1; }
+ fi
+ fi
+
+ GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome`"
+ GNOMEUI_LIBS="`$GNOME_CONFIG --libs-only-l gnomeui`"
+ GNOMEGNORBA_LIBS="`$GNOME_CONFIG --libs-only-l gnorba gnomeui`"
+ GTKXMHTML_LIBS="`$GNOME_CONFIG --libs-only-l gtkxmhtml`"
+ ZVT_LIBS="`$GNOME_CONFIG --libs-only-l zvt`"
+ GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`"
+ GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`"
+
+ else
+ echo "$ac_t""no" 1>&6
+ no_gnome_config="yes"
+ fi
+ fi
+
+ if test x$exec_prefix = xNONE; then
+ if test x$prefix = xNONE; then
+ gnome_prefix=$ac_default_prefix/lib
+ else
+ gnome_prefix=$prefix/lib
+ fi
+ else
+ gnome_prefix=`eval echo \`echo $libdir\``
+ fi
+
+ if test "$no_gnome_config" = "yes"; then
+ echo $ac_n "checking for gnomeConf.sh file in $gnome_prefix""... $ac_c" 1>&6
+echo "configure:1089: checking for gnomeConf.sh file in $gnome_prefix" >&5
+ if test -f $gnome_prefix/gnomeConf.sh; then
+ echo "$ac_t""found" 1>&6
+ echo "loading gnome configuration from" \
+ "$gnome_prefix/gnomeConf.sh"
+ . $gnome_prefix/gnomeConf.sh
+
+ else
+ echo "$ac_t""not found" 1>&6
+ if test xfail = xfail; then
+ { echo "configure: error: Could not find the gnomeConf.sh file that is generated by gnome-libs install" 1>&2; exit 1; }
+ fi
+ fi
+ fi
+ fi
+
+ if test -n ""; then
+ n=""
+ for i in $n; do
+ echo $ac_n "checking extra library \"$i\"""... $ac_c" 1>&6
+echo "configure:1109: checking extra library \"$i\"" >&5
+ case $i in
+ applets)
+
+ GNOME_APPLETS_LIBS=`$GNOME_CONFIG --libs-only-l applets`
+ echo "$ac_t""$GNOME_APPLETS_LIBS" 1>&6;;
+ capplet)
+
+ GNOME_CAPPLET_LIBS=`$GNOME_CONFIG --libs-only-l capplet`
+ echo "$ac_t""$GNOME_CAPPLET_LIBS" 1>&6;;
+ *)
+ echo "$ac_t""unknown library" 1>&6
+ esac
+ done
+ fi
+
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1129: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_CC="gcc"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1159: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_prog_rejected=no
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# -gt 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ set dummy "$ac_dir/$ac_word" "$@"
+ shift
+ ac_cv_prog_CC="$@"
+ fi
+fi
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ if test -z "$CC"; then
+ case "`uname -s`" in
+ *win32* | *WIN32*)
+ # Extract the first word of "cl", so it can be a program name with args.
+set dummy cl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1210: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_CC="cl"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+ ;;
+ esac
+ fi
+ test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:1242: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+cat > conftest.$ac_ext << EOF
+
+#line 1253 "configure"
+#include "confdefs.h"
+
+main(){return(0);}
+EOF
+if { (eval echo configure:1258: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ ac_cv_prog_cc_works=yes
+ # If we can't run a trivial program, we are probably using a cross compiler.
+ if (./conftest; exit) 2>/dev/null; then
+ ac_cv_prog_cc_cross=no
+ else
+ ac_cv_prog_cc_cross=yes
+ fi
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ ac_cv_prog_cc_works=no
+fi
+rm -fr conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
+if test $ac_cv_prog_cc_works = no; then
+ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+fi
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:1284: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+echo "configure:1289: checking whether we are using GNU C" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.c <<EOF
+#ifdef __GNUC__
+ yes;
+#endif
+EOF
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1298: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+ ac_cv_prog_gcc=yes
+else
+ ac_cv_prog_gcc=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+
+if test $ac_cv_prog_gcc = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+
+ac_test_CFLAGS="${CFLAGS+set}"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS=
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:1317: checking whether ${CC-cc} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+ ac_cv_prog_cc_g=yes
+else
+ ac_cv_prog_cc_g=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS="$ac_save_CFLAGS"
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+
+echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
+echo "configure:1349: checking for POSIXized ISC" >&5
+if test -d /etc/conf/kconfig.d &&
+ grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
+then
+ echo "$ac_t""yes" 1>&6
+ ISC=yes # If later tests want to check for ISC.
+ cat >> confdefs.h <<\EOF
+#define _POSIX_SOURCE 1
+EOF
+
+ if test "$GCC" = yes; then
+ CC="$CC -posix"
+ else
+ CC="$CC -Xp"
+ fi
+else
+ echo "$ac_t""no" 1>&6
+ ISC=
+fi
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1372: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_CC="gcc"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1402: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_prog_rejected=no
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# -gt 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ set dummy "$ac_dir/$ac_word" "$@"
+ shift
+ ac_cv_prog_CC="$@"
+ fi
+fi
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ if test -z "$CC"; then
+ case "`uname -s`" in
+ *win32* | *WIN32*)
+ # Extract the first word of "cl", so it can be a program name with args.
+set dummy cl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1453: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_CC="cl"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+ ;;
+ esac
+ fi
+ test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:1485: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+cat > conftest.$ac_ext << EOF
+
+#line 1496 "configure"
+#include "confdefs.h"
+
+main(){return(0);}
+EOF
+if { (eval echo configure:1501: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ ac_cv_prog_cc_works=yes
+ # If we can't run a trivial program, we are probably using a cross compiler.
+ if (./conftest; exit) 2>/dev/null; then
+ ac_cv_prog_cc_cross=no
+ else
+ ac_cv_prog_cc_cross=yes
+ fi
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ ac_cv_prog_cc_works=no
+fi
+rm -fr conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
+if test $ac_cv_prog_cc_works = no; then
+ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+fi
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:1527: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+echo "configure:1532: checking whether we are using GNU C" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.c <<EOF
+#ifdef __GNUC__
+ yes;
+#endif
+EOF
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1541: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+ ac_cv_prog_gcc=yes
+else
+ ac_cv_prog_gcc=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+
+if test $ac_cv_prog_gcc = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+
+ac_test_CFLAGS="${CFLAGS+set}"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS=
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:1560: checking whether ${CC-cc} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+ ac_cv_prog_cc_g=yes
+else
+ ac_cv_prog_cc_g=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS="$ac_save_CFLAGS"
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+
+for ac_prog in $CCC c++ g++ gcc CC cxx cc++ cl
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1596: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CXX"; then
+ ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_CXX="$ac_prog"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+CXX="$ac_cv_prog_CXX"
+if test -n "$CXX"; then
+ echo "$ac_t""$CXX" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+test -n "$CXX" && break
+done
+test -n "$CXX" || CXX="gcc"
+
+
+echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:1628: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
+
+ac_ext=C
+# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cxx_cross
+
+cat > conftest.$ac_ext << EOF
+
+#line 1639 "configure"
+#include "confdefs.h"
+
+int main(){return(0);}
+EOF
+if { (eval echo configure:1644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ ac_cv_prog_cxx_works=yes
+ # If we can't run a trivial program, we are probably using a cross compiler.
+ if (./conftest; exit) 2>/dev/null; then
+ ac_cv_prog_cxx_cross=no
+ else
+ ac_cv_prog_cxx_cross=yes
+ fi
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ ac_cv_prog_cxx_works=no
+fi
+rm -fr conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo "$ac_t""$ac_cv_prog_cxx_works" 1>&6
+if test $ac_cv_prog_cxx_works = no; then
+ { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; }
+fi
+echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:1670: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6
+cross_compiling=$ac_cv_prog_cxx_cross
+
+echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
+echo "configure:1675: checking whether we are using GNU C++" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.C <<EOF
+#ifdef __GNUC__
+ yes;
+#endif
+EOF
+if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1684: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+ ac_cv_prog_gxx=yes
+else
+ ac_cv_prog_gxx=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gxx" 1>&6
+
+if test $ac_cv_prog_gxx = yes; then
+ GXX=yes
+else
+ GXX=
+fi
+
+ac_test_CXXFLAGS="${CXXFLAGS+set}"
+ac_save_CXXFLAGS="$CXXFLAGS"
+CXXFLAGS=
+echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
+echo "configure:1703: checking whether ${CXX-g++} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ echo 'void f(){}' > conftest.cc
+if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then
+ ac_cv_prog_cxx_g=yes
+else
+ ac_cv_prog_cxx_g=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6
+if test "$ac_test_CXXFLAGS" = set; then
+ CXXFLAGS="$ac_save_CXXFLAGS"
+elif test $ac_cv_prog_cxx_g = yes; then
+ if test "$GXX" = yes; then
+ CXXFLAGS="-g -O2"
+ else
+ CXXFLAGS="-g"
+ fi
+else
+ if test "$GXX" = yes; then
+ CXXFLAGS="-O2"
+ else
+ CXXFLAGS=
+ fi
+fi
+
+
+
+
+echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6
+echo "configure:1738: checking for ${CC-cc} option to accept ANSI C" >&5
+if eval "test \"`echo '$''{'am_cv_prog_cc_stdc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ am_cv_prog_cc_stdc=no
+ac_save_CC="$CC"
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX -qlanglvl=ansi
+# Ultrix and OSF/1 -std1
+# HP-UX -Aa -D_HPUX_SOURCE
+# SVR4 -Xc -D__EXTENSIONS__
+for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ cat > conftest.$ac_ext <<EOF
+#line 1754 "configure"
+#include "confdefs.h"
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+
+int main() {
+
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+
+; return 0; }
+EOF
+if { (eval echo configure:1791: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ am_cv_prog_cc_stdc="$ac_arg"; break
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+CC="$ac_save_CC"
+
+fi
+
+if test -z "$am_cv_prog_cc_stdc"; then
+ echo "$ac_t""none needed" 1>&6
+else
+ echo "$ac_t""$am_cv_prog_cc_stdc" 1>&6
+fi
+case "x$am_cv_prog_cc_stdc" in
+ x|xno) ;;
+ *) CC="$CC $am_cv_prog_cc_stdc" ;;
+esac
+
+echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+echo "configure:1815: checking how to run the C preprocessor" >&5
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ # This must be in double quotes, not single quotes, because CPP may get
+ # substituted into the Makefile and "${CC-cc}" will confuse make.
+ CPP="${CC-cc} -E"
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp.
+ cat > conftest.$ac_ext <<EOF
+#line 1830 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1836: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ :
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ CPP="${CC-cc} -E -traditional-cpp"
+ cat > conftest.$ac_ext <<EOF
+#line 1847 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1853: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ :
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ CPP="${CC-cc} -nologo -E"
+ cat > conftest.$ac_ext <<EOF
+#line 1864 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1870: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ :
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ CPP=/lib/cpp
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+ ac_cv_prog_CPP="$CPP"
+fi
+ CPP="$ac_cv_prog_CPP"
+else
+ ac_cv_prog_CPP="$CPP"
+fi
+echo "$ac_t""$CPP" 1>&6
+
+echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+echo "configure:1895: checking for ANSI C header files" >&5
+if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1900 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1908: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ ac_cv_header_stdc=yes
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 1925 "configure"
+#include "confdefs.h"
+#include <string.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "memchr" >/dev/null 2>&1; then
+ :
+else
+ rm -rf conftest*
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 1943 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "free" >/dev/null 2>&1; then
+ :
+else
+ rm -rf conftest*
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+if test "$cross_compiling" = yes; then
+ :
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1964 "configure"
+#include "confdefs.h"
+#include <ctype.h>
+#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int main () { int i; for (i = 0; i < 256; i++)
+if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
+exit (0); }
+
+EOF
+if { (eval echo configure:1975: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ :
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ ac_cv_header_stdc=no
+fi
+rm -fr conftest*
+fi
+
+fi
+fi
+
+echo "$ac_t""$ac_cv_header_stdc" 1>&6
+if test $ac_cv_header_stdc = yes; then
+ cat >> confdefs.h <<\EOF
+#define STDC_HEADERS 1
+EOF
+
+fi
+
+
+
+ # Check whether --enable-compile-warnings or --disable-compile-warnings was given.
+if test "${enable_compile_warnings+set}" = set; then
+ enableval="$enable_compile_warnings"
+ :
+else
+ enable_compile_warnings=minimum
+fi
+
+
+ echo $ac_n "checking what warning flags to pass to the C compiler""... $ac_c" 1>&6
+echo "configure:2010: checking what warning flags to pass to the C compiler" >&5
+ warnCFLAGS=
+ if test "x$GCC" != xyes; then
+ enable_compile_warnings=no
+ fi
+
+ if test "x$enable_compile_warnings" != "xno"; then
+ if test "x$GCC" = "xyes"; then
+ case " $CFLAGS " in
+ *\ \ -Wall\ \ *) ;;
+ *) warnCFLAGS="-Wall -Wunused" ;;
+ esac
+
+ ## -W is not all that useful. And it cannot be controlled
+ ## with individual -Wno-xxx flags, unlike -Wall
+ if test "x$enable_compile_warnings" = "xyes"; then
+ warnCFLAGS="$warnCFLAGS -Wmissing-prototypes -Wmissing-declarations"
+ fi
+ fi
+ fi
+ echo "$ac_t""$warnCFLAGS" 1>&6
+
+ # Check whether --enable-iso-c or --disable-iso-c was given.
+if test "${enable_iso_c+set}" = set; then
+ enableval="$enable_iso_c"
+ :
+else
+ enable_iso_c=no
+fi
+
+
+ echo $ac_n "checking what language compliance flags to pass to the C compiler""... $ac_c" 1>&6
+echo "configure:2042: checking what language compliance flags to pass to the C compiler" >&5
+ complCFLAGS=
+ if test "x$enable_iso_c" != "xno"; then
+ if test "x$GCC" = "xyes"; then
+ case " $CFLAGS " in
+ *\ \ -ansi\ \ *) ;;
+ *) complCFLAGS="$complCFLAGS -ansi" ;;
+ esac
+
+ case " $CFLAGS " in
+ *\ \ -pedantic\ \ *) ;;
+ *) complCFLAGS="$complCFLAGS -pedantic" ;;
+ esac
+ fi
+ fi
+ echo "$ac_t""$complCFLAGS" 1>&6
+ if test "x$cflags_set" != "xyes"; then
+ CFLAGS="$CFLAGS $warnCFLAGS $complCFLAGS"
+ cflags_set=yes
+
+ fi
+
+
+ PTHREAD_LIB=""
+ echo $ac_n "checking for pthread_create in -lpthread""... $ac_c" 1>&6
+echo "configure:2067: checking for pthread_create in -lpthread" >&5
+ac_lib_var=`echo pthread'_'pthread_create | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lpthread $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2075 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char pthread_create();
+
+int main() {
+pthread_create()
+; return 0; }
+EOF
+if { (eval echo configure:2086: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ PTHREAD_LIB="-lpthread"
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for pthread_create in -lpthreads""... $ac_c" 1>&6
+echo "configure:2105: checking for pthread_create in -lpthreads" >&5
+ac_lib_var=`echo pthreads'_'pthread_create | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lpthreads $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2113 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char pthread_create();
+
+int main() {
+pthread_create()
+; return 0; }
+EOF
+if { (eval echo configure:2124: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ PTHREAD_LIB="-lpthreads"
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for pthread_create in -lc_r""... $ac_c" 1>&6
+echo "configure:2143: checking for pthread_create in -lc_r" >&5
+ac_lib_var=`echo c_r'_'pthread_create | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lc_r $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2151 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char pthread_create();
+
+int main() {
+pthread_create()
+; return 0; }
+EOF
+if { (eval echo configure:2162: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ PTHREAD_LIB="-lc_r"
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for pthread_create""... $ac_c" 1>&6
+echo "configure:2181: checking for pthread_create" >&5
+if eval "test \"`echo '$''{'ac_cv_func_pthread_create'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2186 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char pthread_create(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char pthread_create();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_pthread_create) || defined (__stub___pthread_create)
+choke me
+#else
+pthread_create();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_pthread_create=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_pthread_create=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'pthread_create`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ :
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+
+
+
+ # Check whether --with-gtk-prefix or --without-gtk-prefix was given.
+if test "${with_gtk_prefix+set}" = set; then
+ withval="$with_gtk_prefix"
+ gtk_config_prefix="$withval"
+else
+ gtk_config_prefix=""
+fi
+
+# Check whether --with-gtk-exec-prefix or --without-gtk-exec-prefix was given.
+if test "${with_gtk_exec_prefix+set}" = set; then
+ withval="$with_gtk_exec_prefix"
+ gtk_config_exec_prefix="$withval"
+else
+ gtk_config_exec_prefix=""
+fi
+
+# Check whether --enable-gtktest or --disable-gtktest was given.
+if test "${enable_gtktest+set}" = set; then
+ enableval="$enable_gtktest"
+ :
+else
+ enable_gtktest=yes
+fi
+
+
+ for module in .
+ do
+ case "$module" in
+ gthread)
+ gtk_config_args="$gtk_config_args gthread"
+ ;;
+ esac
+ done
+
+ if test x$gtk_config_exec_prefix != x ; then
+ gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
+ if test x${GTK_CONFIG+set} != xset ; then
+ GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
+ fi
+ fi
+ if test x$gtk_config_prefix != x ; then
+ gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
+ if test x${GTK_CONFIG+set} != xset ; then
+ GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
+ fi
+ fi
+
+ # Extract the first word of "gtk-config", so it can be a program name with args.
+set dummy gtk-config; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2291: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_GTK_CONFIG'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$GTK_CONFIG" in
+ /*)
+ ac_cv_path_GTK_CONFIG="$GTK_CONFIG" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_GTK_CONFIG="$GTK_CONFIG" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_GTK_CONFIG="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_GTK_CONFIG" && ac_cv_path_GTK_CONFIG="no"
+ ;;
+esac
+fi
+GTK_CONFIG="$ac_cv_path_GTK_CONFIG"
+if test -n "$GTK_CONFIG"; then
+ echo "$ac_t""$GTK_CONFIG" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ min_gtk_version=1.2.0
+ echo $ac_n "checking for GTK - version >= $min_gtk_version""... $ac_c" 1>&6
+echo "configure:2326: checking for GTK - version >= $min_gtk_version" >&5
+ no_gtk=""
+ if test "$GTK_CONFIG" = "no" ; then
+ no_gtk=yes
+ else
+ GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
+ GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
+ gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
+ gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
+ gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
+ if test "x$enable_gtktest" = "xyes" ; then
+ ac_save_CFLAGS="$CFLAGS"
+ ac_save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $GTK_CFLAGS"
+ LIBS="$GTK_LIBS $LIBS"
+ rm -f conf.gtktest
+ if test "$cross_compiling" = yes; then
+ echo $ac_n "cross compiling; assumed OK... $ac_c"
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2349 "configure"
+#include "confdefs.h"
+
+#include <gtk/gtk.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+int
+main ()
+{
+ int major, minor, micro;
+ char *tmp_version;
+
+ system ("touch conf.gtktest");
+
+ /* HP/UX 9 (%@#!) writes to sscanf strings */
+ tmp_version = g_strdup("$min_gtk_version");
+ if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+ printf("%s, bad version string\n", "$min_gtk_version");
+ exit(1);
+ }
+
+ if ((gtk_major_version != $gtk_config_major_version) ||
+ (gtk_minor_version != $gtk_config_minor_version) ||
+ (gtk_micro_version != $gtk_config_micro_version))
+ {
+ printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
+ $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
+ gtk_major_version, gtk_minor_version, gtk_micro_version);
+ printf ("*** was found! If gtk-config was correct, then it is best\n");
+ printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
+ printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
+ printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
+ printf("*** required on your system.\n");
+ printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
+ printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
+ printf("*** before re-running configure\n");
+ }
+#if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
+ else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
+ (gtk_minor_version != GTK_MINOR_VERSION) ||
+ (gtk_micro_version != GTK_MICRO_VERSION))
+ {
+ printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
+ GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
+ printf("*** library (version %d.%d.%d)\n",
+ gtk_major_version, gtk_minor_version, gtk_micro_version);
+ }
+#endif /* defined (GTK_MAJOR_VERSION) ... */
+ else
+ {
+ if ((gtk_major_version > major) ||
+ ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
+ ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
+ {
+ return 0;
+ }
+ else
+ {
+ printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
+ gtk_major_version, gtk_minor_version, gtk_micro_version);
+ printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
+ major, minor, micro);
+ printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
+ printf("***\n");
+ printf("*** If you have already installed a sufficiently new version, this error\n");
+ printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
+ printf("*** being found. The easiest way to fix this is to remove the old version\n");
+ printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
+ printf("*** correct copy of gtk-config. (In this case, you will have to\n");
+ printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
+ printf("*** so that the correct libraries are found at run-time))\n");
+ }
+ }
+ return 1;
+}
+
+EOF
+if { (eval echo configure:2427: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ :
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ no_gtk=yes
+fi
+rm -fr conftest*
+fi
+
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ if test "x$no_gtk" = x ; then
+ echo "$ac_t""yes" 1>&6
+ :
+ else
+ echo "$ac_t""no" 1>&6
+ if test "$GTK_CONFIG" = "no" ; then
+ echo "*** The gtk-config script installed by GTK could not be found"
+ echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
+ echo "*** your path, or set the GTK_CONFIG environment variable to the"
+ echo "*** full path to gtk-config."
+ else
+ if test -f conf.gtktest ; then
+ :
+ else
+ echo "*** Could not run GTK test program, checking why..."
+ CFLAGS="$CFLAGS $GTK_CFLAGS"
+ LIBS="$LIBS $GTK_LIBS"
+ cat > conftest.$ac_ext <<EOF
+#line 2461 "configure"
+#include "confdefs.h"
+
+#include <gtk/gtk.h>
+#include <stdio.h>
+
+int main() {
+ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version));
+; return 0; }
+EOF
+if { (eval echo configure:2471: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ echo "*** The test program compiled, but did not run. This usually means"
+ echo "*** that the run-time linker is not finding GTK or finding the wrong"
+ echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
+ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+ echo "*** to the installed location Also, make sure you have run ldconfig if that"
+ echo "*** is required on your system"
+ echo "***"
+ echo "*** If you have an old version installed, it is best to remove it, although"
+ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
+ echo "***"
+ echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
+ echo "*** came with the system with the command"
+ echo "***"
+ echo "*** rpm --erase --nodeps gtk gtk-devel"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ echo "*** The test program failed to compile or link. See the file config.log for the"
+ echo "*** exact error that occured. This usually means GTK was incorrectly installed"
+ echo "*** or that you have moved GTK since it was installed. In the latter case, you"
+ echo "*** may want to edit the gtk-config script: $GTK_CONFIG"
+fi
+rm -f conftest*
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ GTK_CFLAGS=""
+ GTK_LIBS=""
+ { echo "configure: error: GTK not installed" 1>&2; exit 1; }
+ fi
+
+
+ rm -f conf.gtktest
+
+ CPPFLAGS="$CPPFLAGS $GTK_CFLAGS"
+
+ saved_ldflags="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $GTK_LIBS"
+
+ gnome_cv_passdown_x_libs="$GTK_LIBS"
+ gnome_cv_passdown_X_LIBS="$GTK_LIBS"
+ gnome_cv_passdown_X_CFLAGS="$GTK_CFLAGS"
+ gnome_cv_passdown_GTK_LIBS="$GTK_LIBS"
+
+ LDFLAGS="$saved_ldflags $GTK_LIBS"
+
+ USE_DEVGTK=true
+
+
+ GNOME_HAVE_SM=true
+ case "$GTK_LIBS" in
+ *-lSM*)
+ ;;
+ *)
+ echo $ac_n "checking for SmcSaveYourselfDone in -lSM""... $ac_c" 1>&6
+echo "configure:2530: checking for SmcSaveYourselfDone in -lSM" >&5
+ac_lib_var=`echo SM'_'SmcSaveYourselfDone | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lSM $x_libs -lICE $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2538 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char SmcSaveYourselfDone();
+
+int main() {
+SmcSaveYourselfDone()
+; return 0; }
+EOF
+if { (eval echo configure:2549: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ GTK_LIBS="-lSM -lICE $GTK_LIBS"
+else
+ echo "$ac_t""no" 1>&6
+GNOME_HAVE_SM=false
+fi
+
+ ;;
+ esac
+
+ if test "$GNOME_HAVE_SM" = true; then
+ for ac_hdr in X11/SM/SMlib.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:2578: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2583 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2588: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+GNOME_HAVE_SM=false
+fi
+done
+
+ fi
+
+ if test "$GNOME_HAVE_SM" = true; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_LIBSM 1
+EOF
+
+ fi
+
+ XPM_LIBS=""
+ echo $ac_n "checking for XpmFreeXpmImage in -lXpm""... $ac_c" 1>&6
+echo "configure:2626: checking for XpmFreeXpmImage in -lXpm" >&5
+ac_lib_var=`echo Xpm'_'XpmFreeXpmImage | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lXpm $x_libs $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2634 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char XpmFreeXpmImage();
+
+int main() {
+XpmFreeXpmImage()
+; return 0; }
+EOF
+if { (eval echo configure:2645: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ XPM_LIBS="-lXpm"
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+
+
+ LDFLAGS="$saved_ldflags"
+
+
+
+
+ALL_LINGUAS=""
+# Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2677: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_RANLIB="ranlib"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
+fi
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+ echo "$ac_t""$RANLIB" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+echo $ac_n "checking for working const""... $ac_c" 1>&6
+echo "configure:2705: checking for working const" >&5
+if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2710 "configure"
+#include "confdefs.h"
+
+int main() {
+
+/* Ultrix mips cc rejects this. */
+typedef int charset[2]; const charset x;
+/* SunOS 4.1.1 cc rejects this. */
+char const *const *ccp;
+char **p;
+/* NEC SVR4.0.2 mips cc rejects this. */
+struct point {int x, y;};
+static struct point const zero = {0,0};
+/* AIX XL C 1.02.0.0 rejects this.
+ It does not let you subtract one const X* pointer from another in an arm
+ of an if-expression whose if-part is not a constant expression */
+const char *g = "string";
+ccp = &g + (g ? g-g : 0);
+/* HPUX 7.0 cc rejects these. */
+++ccp;
+p = (char**) ccp;
+ccp = (char const *const *) p;
+{ /* SCO 3.2v4 cc rejects this. */
+ char *t;
+ char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+ *t++ = 0;
+}
+{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
+ int x[] = {25, 17};
+ const int *foo = &x[0];
+ ++foo;
+}
+{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+ typedef const int *iptr;
+ iptr p = 0;
+ ++p;
+}
+{ /* AIX XL C 1.02.0.0 rejects this saying
+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+ struct s { int j; const int *ap[3]; };
+ struct s *b; b->j = 5;
+}
+{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+ const int foo = 10;
+}
+
+; return 0; }
+EOF
+if { (eval echo configure:2759: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_c_const=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_c_const=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_c_const" 1>&6
+if test $ac_cv_c_const = no; then
+ cat >> confdefs.h <<\EOF
+#define const
+EOF
+
+fi
+
+echo $ac_n "checking for inline""... $ac_c" 1>&6
+echo "configure:2780: checking for inline" >&5
+if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+ cat > conftest.$ac_ext <<EOF
+#line 2787 "configure"
+#include "confdefs.h"
+
+int main() {
+} $ac_kw foo() {
+; return 0; }
+EOF
+if { (eval echo configure:2794: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_c_inline=$ac_kw; break
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+
+fi
+
+echo "$ac_t""$ac_cv_c_inline" 1>&6
+case "$ac_cv_c_inline" in
+ inline | yes) ;;
+ no) cat >> confdefs.h <<\EOF
+#define inline
+EOF
+ ;;
+ *) cat >> confdefs.h <<EOF
+#define inline $ac_cv_c_inline
+EOF
+ ;;
+esac
+
+echo $ac_n "checking for off_t""... $ac_c" 1>&6
+echo "configure:2820: checking for off_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2825 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "(^|[^a-zA-Z_0-9])off_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+ rm -rf conftest*
+ ac_cv_type_off_t=yes
+else
+ rm -rf conftest*
+ ac_cv_type_off_t=no
+fi
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_off_t" 1>&6
+if test $ac_cv_type_off_t = no; then
+ cat >> confdefs.h <<\EOF
+#define off_t long
+EOF
+
+fi
+
+echo $ac_n "checking for size_t""... $ac_c" 1>&6
+echo "configure:2853: checking for size_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2858 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "(^|[^a-zA-Z_0-9])size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+ rm -rf conftest*
+ ac_cv_type_size_t=yes
+else
+ rm -rf conftest*
+ ac_cv_type_size_t=no
+fi
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_size_t" 1>&6
+if test $ac_cv_type_size_t = no; then
+ cat >> confdefs.h <<\EOF
+#define size_t unsigned
+EOF
+
+fi
+
+# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
+# for constant arguments. Useless!
+echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
+echo "configure:2888: checking for working alloca.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2893 "configure"
+#include "confdefs.h"
+#include <alloca.h>
+int main() {
+char *p = alloca(2 * sizeof(int));
+; return 0; }
+EOF
+if { (eval echo configure:2900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_header_alloca_h=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_header_alloca_h=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_header_alloca_h" 1>&6
+if test $ac_cv_header_alloca_h = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_ALLOCA_H 1
+EOF
+
+fi
+
+echo $ac_n "checking for alloca""... $ac_c" 1>&6
+echo "configure:2921: checking for alloca" >&5
+if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2926 "configure"
+#include "confdefs.h"
+
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+#else
+# ifdef _MSC_VER
+# include <malloc.h>
+# define alloca _alloca
+# else
+# if HAVE_ALLOCA_H
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca /* predefined by HP cc +Olibcalls */
+char *alloca ();
+# endif
+# endif
+# endif
+# endif
+#endif
+
+int main() {
+char *p = (char *) alloca(1);
+; return 0; }
+EOF
+if { (eval echo configure:2954: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_func_alloca_works=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_func_alloca_works=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_func_alloca_works" 1>&6
+if test $ac_cv_func_alloca_works = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_ALLOCA 1
+EOF
+
+fi
+
+if test $ac_cv_func_alloca_works = no; then
+ # The SVR3 libPW and SVR4 libucb both contain incompatible functions
+ # that cause trouble. Some versions do not even contain alloca or
+ # contain a buggy version. If you still want to use their alloca,
+ # use ar to extract alloca.o from them instead of compiling alloca.c.
+ ALLOCA=alloca.${ac_objext}
+ cat >> confdefs.h <<\EOF
+#define C_ALLOCA 1
+EOF
+
+
+echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
+echo "configure:2986: checking whether alloca needs Cray hooks" >&5
+if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2991 "configure"
+#include "confdefs.h"
+#if defined(CRAY) && ! defined(CRAY2)
+webecray
+#else
+wenotbecray
+#endif
+
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "webecray" >/dev/null 2>&1; then
+ rm -rf conftest*
+ ac_cv_os_cray=yes
+else
+ rm -rf conftest*
+ ac_cv_os_cray=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_os_cray" 1>&6
+if test $ac_cv_os_cray = yes; then
+for ac_func in _getb67 GETB67 getb67; do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:3016: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3021 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:3044: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ cat >> confdefs.h <<EOF
+#define CRAY_STACKSEG_END $ac_func
+EOF
+
+ break
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+done
+fi
+
+echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
+echo "configure:3071: checking stack direction for C alloca" >&5
+if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$cross_compiling" = yes; then
+ ac_cv_c_stack_direction=0
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3079 "configure"
+#include "confdefs.h"
+find_stack_direction ()
+{
+ static char *addr = 0;
+ auto char dummy;
+ if (addr == 0)
+ {
+ addr = &dummy;
+ return find_stack_direction ();
+ }
+ else
+ return (&dummy > addr) ? 1 : -1;
+}
+main ()
+{
+ exit (find_stack_direction() < 0);
+}
+EOF
+if { (eval echo configure:3098: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ ac_cv_c_stack_direction=1
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ ac_cv_c_stack_direction=-1
+fi
+rm -fr conftest*
+fi
+
+fi
+
+echo "$ac_t""$ac_cv_c_stack_direction" 1>&6
+cat >> confdefs.h <<EOF
+#define STACK_DIRECTION $ac_cv_c_stack_direction
+EOF
+
+fi
+
+for ac_hdr in unistd.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:3123: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3128 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:3133: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+for ac_func in getpagesize
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:3162: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3167 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:3190: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+echo $ac_n "checking for working mmap""... $ac_c" 1>&6
+echo "configure:3215: checking for working mmap" >&5
+if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$cross_compiling" = yes; then
+ ac_cv_func_mmap_fixed_mapped=no
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3223 "configure"
+#include "confdefs.h"
+
+/* Thanks to Mike Haertel and Jim Avera for this test.
+ Here is a matrix of mmap possibilities:
+ mmap private not fixed
+ mmap private fixed at somewhere currently unmapped
+ mmap private fixed at somewhere already mapped
+ mmap shared not fixed
+ mmap shared fixed at somewhere currently unmapped
+ mmap shared fixed at somewhere already mapped
+ For private mappings, we should verify that changes cannot be read()
+ back from the file, nor mmap's back from the file at a different
+ address. (There have been systems where private was not correctly
+ implemented like the infamous i386 svr4.0, and systems where the
+ VM page cache was not coherent with the filesystem buffer cache
+ like early versions of FreeBSD and possibly contemporary NetBSD.)
+ For shared mappings, we should conversely verify that changes get
+ propogated back to all the places they're supposed to be.
+
+ Grep wants private fixed already mapped.
+ The main things grep needs to know about mmap are:
+ * does it exist and is it safe to write into the mmap'd area
+ * how to use it (BSD variants) */
+#include <sys/types.h>
+#include <fcntl.h>
+#include <sys/mman.h>
+
+/* This mess was copied from the GNU getpagesize.h. */
+#ifndef HAVE_GETPAGESIZE
+# ifdef HAVE_UNISTD_H
+# include <unistd.h>
+# endif
+
+/* Assume that all systems that can run configure have sys/param.h. */
+# ifndef HAVE_SYS_PARAM_H
+# define HAVE_SYS_PARAM_H 1
+# endif
+
+# ifdef _SC_PAGESIZE
+# define getpagesize() sysconf(_SC_PAGESIZE)
+# else /* no _SC_PAGESIZE */
+# ifdef HAVE_SYS_PARAM_H
+# include <sys/param.h>
+# ifdef EXEC_PAGESIZE
+# define getpagesize() EXEC_PAGESIZE
+# else /* no EXEC_PAGESIZE */
+# ifdef NBPG
+# define getpagesize() NBPG * CLSIZE
+# ifndef CLSIZE
+# define CLSIZE 1
+# endif /* no CLSIZE */
+# else /* no NBPG */
+# ifdef NBPC
+# define getpagesize() NBPC
+# else /* no NBPC */
+# ifdef PAGESIZE
+# define getpagesize() PAGESIZE
+# endif /* PAGESIZE */
+# endif /* no NBPC */
+# endif /* no NBPG */
+# endif /* no EXEC_PAGESIZE */
+# else /* no HAVE_SYS_PARAM_H */
+# define getpagesize() 8192 /* punt totally */
+# endif /* no HAVE_SYS_PARAM_H */
+# endif /* no _SC_PAGESIZE */
+
+#endif /* no HAVE_GETPAGESIZE */
+
+#ifdef __cplusplus
+extern "C" { void *malloc(unsigned); }
+#else
+char *malloc();
+#endif
+
+int
+main()
+{
+ char *data, *data2, *data3;
+ int i, pagesize;
+ int fd;
+
+ pagesize = getpagesize();
+
+ /*
+ * First, make a file with some known garbage in it.
+ */
+ data = malloc(pagesize);
+ if (!data)
+ exit(1);
+ for (i = 0; i < pagesize; ++i)
+ *(data + i) = rand();
+ umask(0);
+ fd = creat("conftestmmap", 0600);
+ if (fd < 0)
+ exit(1);
+ if (write(fd, data, pagesize) != pagesize)
+ exit(1);
+ close(fd);
+
+ /*
+ * Next, try to mmap the file at a fixed address which
+ * already has something else allocated at it. If we can,
+ * also make sure that we see the same garbage.
+ */
+ fd = open("conftestmmap", O_RDWR);
+ if (fd < 0)
+ exit(1);
+ data2 = malloc(2 * pagesize);
+ if (!data2)
+ exit(1);
+ data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1);
+ if (data2 != mmap(data2, pagesize, PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_FIXED, fd, 0L))
+ exit(1);
+ for (i = 0; i < pagesize; ++i)
+ if (*(data + i) != *(data2 + i))
+ exit(1);
+
+ /*
+ * Finally, make sure that changes to the mapped area
+ * do not percolate back to the file as seen by read().
+ * (This is a bug on some variants of i386 svr4.0.)
+ */
+ for (i = 0; i < pagesize; ++i)
+ *(data2 + i) = *(data2 + i) + 1;
+ data3 = malloc(pagesize);
+ if (!data3)
+ exit(1);
+ if (read(fd, data3, pagesize) != pagesize)
+ exit(1);
+ for (i = 0; i < pagesize; ++i)
+ if (*(data + i) != *(data3 + i))
+ exit(1);
+ close(fd);
+ unlink("conftestmmap");
+ exit(0);
+}
+
+EOF
+if { (eval echo configure:3363: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ ac_cv_func_mmap_fixed_mapped=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ ac_cv_func_mmap_fixed_mapped=no
+fi
+rm -fr conftest*
+fi
+
+fi
+
+echo "$ac_t""$ac_cv_func_mmap_fixed_mapped" 1>&6
+if test $ac_cv_func_mmap_fixed_mapped = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_MMAP 1
+EOF
+
+fi
+
+
+ for ac_hdr in argz.h limits.h locale.h nl_types.h malloc.h string.h \
+unistd.h sys/param.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:3391: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3396 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:3401: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+ for ac_func in getcwd munmap putenv setenv setlocale strchr strcasecmp \
+strdup __argz_count __argz_stringify __argz_next
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:3431: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3436 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:3459: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+
+ if test "${ac_cv_func_stpcpy+set}" != "set"; then
+ for ac_func in stpcpy
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:3488: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3493 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:3516: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+ fi
+ if test "${ac_cv_func_stpcpy}" = "yes"; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_STPCPY 1
+EOF
+
+ fi
+
+ if test $ac_cv_header_locale_h = yes; then
+ echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
+echo "configure:3550: checking for LC_MESSAGES" >&5
+if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3555 "configure"
+#include "confdefs.h"
+#include <locale.h>
+int main() {
+return LC_MESSAGES
+; return 0; }
+EOF
+if { (eval echo configure:3562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ am_cv_val_LC_MESSAGES=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ am_cv_val_LC_MESSAGES=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$am_cv_val_LC_MESSAGES" 1>&6
+ if test $am_cv_val_LC_MESSAGES = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_LC_MESSAGES 1
+EOF
+
+ fi
+ fi
+ echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
+echo "configure:3583: checking whether NLS is requested" >&5
+ # Check whether --enable-nls or --disable-nls was given.
+if test "${enable_nls+set}" = set; then
+ enableval="$enable_nls"
+ USE_NLS=$enableval
+else
+ USE_NLS=yes
+fi
+
+ echo "$ac_t""$USE_NLS" 1>&6
+
+
+ USE_INCLUDED_LIBINTL=no
+
+ if test "$USE_NLS" = "yes"; then
+ cat >> confdefs.h <<\EOF
+#define ENABLE_NLS 1
+EOF
+
+ echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
+echo "configure:3603: checking whether included gettext is requested" >&5
+ # Check whether --with-included-gettext or --without-included-gettext was given.
+if test "${with_included_gettext+set}" = set; then
+ withval="$with_included_gettext"
+ nls_cv_force_use_gnu_gettext=$withval
+else
+ nls_cv_force_use_gnu_gettext=no
+fi
+
+ echo "$ac_t""$nls_cv_force_use_gnu_gettext" 1>&6
+
+ nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+ if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
+ nls_cv_header_intl=
+ nls_cv_header_libgt=
+ CATOBJEXT=NONE
+
+ ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
+echo "configure:3622: checking for libintl.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3627 "configure"
+#include "confdefs.h"
+#include <libintl.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:3632: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6
+echo "configure:3649: checking for gettext in libc" >&5
+if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3654 "configure"
+#include "confdefs.h"
+#include <libintl.h>
+int main() {
+return (int) gettext ("")
+; return 0; }
+EOF
+if { (eval echo configure:3661: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ gt_cv_func_gettext_libc=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ gt_cv_func_gettext_libc=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$gt_cv_func_gettext_libc" 1>&6
+
+ if test "$gt_cv_func_gettext_libc" != "yes"; then
+ echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6
+echo "configure:3677: checking for bindtextdomain in -lintl" >&5
+ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lintl $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 3685 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char bindtextdomain();
+
+int main() {
+bindtextdomain()
+; return 0; }
+EOF
+if { (eval echo configure:3696: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6
+echo "configure:3712: checking for gettext in libintl" >&5
+if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6
+echo "configure:3717: checking for gettext in -lintl" >&5
+ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lintl $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 3725 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char gettext();
+
+int main() {
+gettext()
+; return 0; }
+EOF
+if { (eval echo configure:3736: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ gt_cv_func_gettext_libintl=yes
+else
+ echo "$ac_t""no" 1>&6
+gt_cv_func_gettext_libintl=no
+fi
+
+fi
+
+echo "$ac_t""$gt_cv_func_gettext_libintl" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ fi
+
+ if test "$gt_cv_func_gettext_libc" = "yes" \
+ || test "$gt_cv_func_gettext_libintl" = "yes"; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_GETTEXT 1
+EOF
+
+ # Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:3775: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$MSGFMT" in
+ /*)
+ ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then
+ ac_cv_path_MSGFMT="$ac_dir/$ac_word"
+ break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no"
+ ;;
+esac
+fi
+MSGFMT="$ac_cv_path_MSGFMT"
+if test -n "$MSGFMT"; then
+ echo "$ac_t""$MSGFMT" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+ if test "$MSGFMT" != "no"; then
+ for ac_func in dcgettext
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:3809: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3814 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:3837: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+ # Extract the first word of "gmsgfmt", so it can be a program name with args.
+set dummy gmsgfmt; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:3864: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$GMSGFMT" in
+ /*)
+ ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+ ;;
+esac
+fi
+GMSGFMT="$ac_cv_path_GMSGFMT"
+if test -n "$GMSGFMT"; then
+ echo "$ac_t""$GMSGFMT" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ # Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:3900: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$XGETTEXT" in
+ /*)
+ ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then
+ ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
+ break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+ ;;
+esac
+fi
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test -n "$XGETTEXT"; then
+ echo "$ac_t""$XGETTEXT" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ cat > conftest.$ac_ext <<EOF
+#line 3932 "configure"
+#include "confdefs.h"
+
+int main() {
+extern int _nl_msg_cat_cntr;
+ return _nl_msg_cat_cntr
+; return 0; }
+EOF
+if { (eval echo configure:3940: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ CATOBJEXT=.gmo
+ DATADIRNAME=share
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ CATOBJEXT=.mo
+ DATADIRNAME=lib
+fi
+rm -f conftest*
+ INSTOBJEXT=.mo
+ fi
+ fi
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+ if test "$CATOBJEXT" = "NONE"; then
+ echo $ac_n "checking whether catgets can be used""... $ac_c" 1>&6
+echo "configure:3963: checking whether catgets can be used" >&5
+ # Check whether --with-catgets or --without-catgets was given.
+if test "${with_catgets+set}" = set; then
+ withval="$with_catgets"
+ nls_cv_use_catgets=$withval
+else
+ nls_cv_use_catgets=no
+fi
+
+ echo "$ac_t""$nls_cv_use_catgets" 1>&6
+
+ if test "$nls_cv_use_catgets" = "yes"; then
+ echo $ac_n "checking for main in -li""... $ac_c" 1>&6
+echo "configure:3976: checking for main in -li" >&5
+ac_lib_var=`echo i'_'main | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-li $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 3984 "configure"
+#include "confdefs.h"
+
+int main() {
+main()
+; return 0; }
+EOF
+if { (eval echo configure:3991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_lib=HAVE_LIB`echo i | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+ LIBS="-li $LIBS"
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ echo $ac_n "checking for catgets""... $ac_c" 1>&6
+echo "configure:4019: checking for catgets" >&5
+if eval "test \"`echo '$''{'ac_cv_func_catgets'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4024 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char catgets(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char catgets();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_catgets) || defined (__stub___catgets)
+choke me
+#else
+catgets();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:4047: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_catgets=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_catgets=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'catgets`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ cat >> confdefs.h <<\EOF
+#define HAVE_CATGETS 1
+EOF
+
+ INTLOBJS="\$(CATOBJS)"
+ # Extract the first word of "gencat", so it can be a program name with args.
+set dummy gencat; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:4069: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_GENCAT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$GENCAT" in
+ /*)
+ ac_cv_path_GENCAT="$GENCAT" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_GENCAT="$GENCAT" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_GENCAT="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_GENCAT" && ac_cv_path_GENCAT="no"
+ ;;
+esac
+fi
+GENCAT="$ac_cv_path_GENCAT"
+if test -n "$GENCAT"; then
+ echo "$ac_t""$GENCAT" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+ if test "$GENCAT" != "no"; then
+ # Extract the first word of "gmsgfmt", so it can be a program name with args.
+set dummy gmsgfmt; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:4105: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$GMSGFMT" in
+ /*)
+ ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="no"
+ ;;
+esac
+fi
+GMSGFMT="$ac_cv_path_GMSGFMT"
+if test -n "$GMSGFMT"; then
+ echo "$ac_t""$GMSGFMT" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ if test "$GMSGFMT" = "no"; then
+ # Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:4142: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$GMSGFMT" in
+ /*)
+ ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then
+ ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
+ break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="no"
+ ;;
+esac
+fi
+GMSGFMT="$ac_cv_path_GMSGFMT"
+if test -n "$GMSGFMT"; then
+ echo "$ac_t""$GMSGFMT" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ fi
+ # Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:4177: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$XGETTEXT" in
+ /*)
+ ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then
+ ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
+ break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+ ;;
+esac
+fi
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test -n "$XGETTEXT"; then
+ echo "$ac_t""$XGETTEXT" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ USE_INCLUDED_LIBINTL=yes
+ CATOBJEXT=.cat
+ INSTOBJEXT=.cat
+ DATADIRNAME=lib
+ INTLDEPS='$(top_builddir)/intl/libintl.a'
+ INTLLIBS=$INTLDEPS
+ LIBS=`echo $LIBS | sed -e 's/-lintl//'`
+ nls_cv_header_intl=intl/libintl.h
+ nls_cv_header_libgt=intl/libgettext.h
+ fi
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ fi
+ fi
+
+ if test "$CATOBJEXT" = "NONE"; then
+ nls_cv_use_gnu_gettext=yes
+ fi
+ fi
+
+ if test "$nls_cv_use_gnu_gettext" = "yes"; then
+ INTLOBJS="\$(GETTOBJS)"
+ # Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:4235: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$MSGFMT" in
+ /*)
+ ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then
+ ac_cv_path_MSGFMT="$ac_dir/$ac_word"
+ break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="msgfmt"
+ ;;
+esac
+fi
+MSGFMT="$ac_cv_path_MSGFMT"
+if test -n "$MSGFMT"; then
+ echo "$ac_t""$MSGFMT" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ # Extract the first word of "gmsgfmt", so it can be a program name with args.
+set dummy gmsgfmt; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:4269: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$GMSGFMT" in
+ /*)
+ ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+ ;;
+esac
+fi
+GMSGFMT="$ac_cv_path_GMSGFMT"
+if test -n "$GMSGFMT"; then
+ echo "$ac_t""$GMSGFMT" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ # Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:4305: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$XGETTEXT" in
+ /*)
+ ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then
+ ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
+ break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+ ;;
+esac
+fi
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test -n "$XGETTEXT"; then
+ echo "$ac_t""$XGETTEXT" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+ USE_INCLUDED_LIBINTL=yes
+ CATOBJEXT=.gmo
+ INSTOBJEXT=.mo
+ DATADIRNAME=share
+ INTLDEPS='$(top_builddir)/intl/libintl.a'
+ INTLLIBS=$INTLDEPS
+ LIBS=`echo $LIBS | sed -e 's/-lintl//'`
+ nls_cv_header_intl=intl/libintl.h
+ nls_cv_header_libgt=intl/libgettext.h
+ fi
+
+ if test "$XGETTEXT" != ":"; then
+ if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
+ : ;
+ else
+ echo "$ac_t""found xgettext program is not GNU xgettext; ignore it" 1>&6
+ XGETTEXT=":"
+ fi
+ fi
+
+ # We need to process the po/ directory.
+ POSUB=po
+ else
+ DATADIRNAME=share
+ nls_cv_header_intl=intl/libintl.h
+ nls_cv_header_libgt=intl/libgettext.h
+ fi
+
+
+
+
+ # If this is used in GNU gettext we have to set USE_NLS to `yes'
+ # because some of the sources are only built for this goal.
+ if test "$PACKAGE" = gettext; then
+ USE_NLS=yes
+ USE_INCLUDED_LIBINTL=yes
+ fi
+
+ for lang in $ALL_LINGUAS; do
+ GMOFILES="$GMOFILES $lang.gmo"
+ POFILES="$POFILES $lang.po"
+ done
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test "x$CATOBJEXT" != "x"; then
+ if test "x$ALL_LINGUAS" = "x"; then
+ LINGUAS=
+ else
+ echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
+echo "configure:4398: checking for catalogs to be installed" >&5
+ NEW_LINGUAS=
+ for lang in ${LINGUAS=$ALL_LINGUAS}; do
+ case "$ALL_LINGUAS" in
+ *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
+ esac
+ done
+ LINGUAS=$NEW_LINGUAS
+ echo "$ac_t""$LINGUAS" 1>&6
+ fi
+
+ if test -n "$LINGUAS"; then
+ for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
+ fi
+ fi
+
+ if test $ac_cv_header_locale_h = yes; then
+ INCLUDE_LOCALE_H="#include <locale.h>"
+ else
+ INCLUDE_LOCALE_H="\
+/* The system does not provide the header <locale.h>. Take care yourself. */"
+ fi
+
+
+ test -d intl || mkdir intl
+ if test "$CATOBJEXT" = ".cat"; then
+ ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6
+echo "configure:4426: checking for linux/version.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4431 "configure"
+#include "confdefs.h"
+#include <linux/version.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:4436: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ msgformat=linux
+else
+ echo "$ac_t""no" 1>&6
+msgformat=xopen
+fi
+
+
+ sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
+ fi
+ sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
+ $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
+
+ if test "$PACKAGE" = "gettext"; then
+ GT_NO="#NO#"
+ GT_YES=
+ else
+ GT_NO=
+ GT_YES="#YES#"
+ fi
+
+
+
+ MKINSTALLDIRS=
+ if test -n "$ac_aux_dir"; then
+ MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
+ fi
+ if test -z "$MKINSTALLDIRS"; then
+ MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+ fi
+
+
+ l=
+
+
+ test -d po || mkdir po
+ if test "x$srcdir" != "x."; then
+ if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
+ posrcprefix="$srcdir/"
+ else
+ posrcprefix="../$srcdir/"
+ fi
+ else
+ posrcprefix="../"
+ fi
+ rm -f po/POTFILES
+ sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
+ < $srcdir/po/POTFILES.in > po/POTFILES
+
+
+if test "x${prefix}" = "xNONE"; then
+ cat >> confdefs.h <<EOF
+#define PACKAGE_LOCALE_DIR "${ac_default_prefix}/${DATADIRNAME}/locale"
+EOF
+
+else
+ cat >> confdefs.h <<EOF
+#define PACKAGE_LOCALE_DIR "${prefix}/${DATADIRNAME}/locale"
+EOF
+
+fi
+
+PACKAGE_PIXMAPS_DIR="`gnome-config --datadir`/pixmaps/${PACKAGE}"
+
+
+trap '' 1 2 15
+cat > confcache <<\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs. It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already. You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2>&1 |
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote substitution
+ # turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ -e "s/'/'\\\\''/g" \
+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+ ;;
+ esac >> confcache
+if cmp -s $cache_file confcache; then
+ :
+else
+ if test -w $cache_file; then
+ echo "updating cache $cache_file"
+ cat confcache > $cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+fi
+rm -f confcache
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+DEFS=-DHAVE_CONFIG_H
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#! /bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+ case "\$ac_option" in
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+ echo "$CONFIG_STATUS generated by autoconf version 2.13"
+ exit 0 ;;
+ -help | --help | --hel | --he | --h)
+ echo "\$ac_cs_usage"; exit 0 ;;
+ *) echo "\$ac_cs_usage"; exit 1 ;;
+ esac
+done
+
+ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
+
+trap 'rm -fr `echo "
+Makefile
+macros/Makefile
+src/Makefile
+intl/Makefile
+po/Makefile.in
+ config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+$ac_vpsub
+$extrasub
+s%@SHELL@%$SHELL%g
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@bindir@%$bindir%g
+s%@sbindir@%$sbindir%g
+s%@libexecdir@%$libexecdir%g
+s%@datadir@%$datadir%g
+s%@sysconfdir@%$sysconfdir%g
+s%@sharedstatedir@%$sharedstatedir%g
+s%@localstatedir@%$localstatedir%g
+s%@libdir@%$libdir%g
+s%@includedir@%$includedir%g
+s%@oldincludedir@%$oldincludedir%g
+s%@infodir@%$infodir%g
+s%@mandir@%$mandir%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@PACKAGE@%$PACKAGE%g
+s%@VERSION@%$VERSION%g
+s%@ACLOCAL@%$ACLOCAL%g
+s%@AUTOCONF@%$AUTOCONF%g
+s%@AUTOMAKE@%$AUTOMAKE%g
+s%@AUTOHEADER@%$AUTOHEADER%g
+s%@MAKEINFO@%$MAKEINFO%g
+s%@SET_MAKE@%$SET_MAKE%g
+s%@INSIDE_GNOME_COMMON_TRUE@%$INSIDE_GNOME_COMMON_TRUE%g
+s%@INSIDE_GNOME_COMMON_FALSE@%$INSIDE_GNOME_COMMON_FALSE%g
+s%@GNOME_LIBS@%$GNOME_LIBS%g
+s%@GNOMEUI_LIBS@%$GNOMEUI_LIBS%g
+s%@GNOMEGNORBA_LIBS@%$GNOMEGNORBA_LIBS%g
+s%@GTKXMHTML_LIBS@%$GTKXMHTML_LIBS%g
+s%@ZVT_LIBS@%$ZVT_LIBS%g
+s%@GNOME_LIBDIR@%$GNOME_LIBDIR%g
+s%@GNOME_INCLUDEDIR@%$GNOME_INCLUDEDIR%g
+s%@GNOME_CONFIG@%$GNOME_CONFIG%g
+s%@ORBIT_CONFIG@%$ORBIT_CONFIG%g
+s%@ORBIT_IDL@%$ORBIT_IDL%g
+s%@HAVE_ORBIT_TRUE@%$HAVE_ORBIT_TRUE%g
+s%@HAVE_ORBIT_FALSE@%$HAVE_ORBIT_FALSE%g
+s%@ORBIT_CFLAGS@%$ORBIT_CFLAGS%g
+s%@ORBIT_LIBS@%$ORBIT_LIBS%g
+s%@HAVE_GNORBA_TRUE@%$HAVE_GNORBA_TRUE%g
+s%@HAVE_GNORBA_FALSE@%$HAVE_GNORBA_FALSE%g
+s%@GNORBA_CFLAGS@%$GNORBA_CFLAGS%g
+s%@GNORBA_LIBS@%$GNORBA_LIBS%g
+s%@GNOME_APPLETS_LIBS@%$GNOME_APPLETS_LIBS%g
+s%@GNOME_CAPPLET_LIBS@%$GNOME_CAPPLET_LIBS%g
+s%@CC@%$CC%g
+s%@CXX@%$CXX%g
+s%@CPP@%$CPP%g
+s%@cflags_set@%$cflags_set%g
+s%@GTK_CONFIG@%$GTK_CONFIG%g
+s%@GTK_CFLAGS@%$GTK_CFLAGS%g
+s%@GTK_LIBS@%$GTK_LIBS%g
+s%@XPM_LIBS@%$XPM_LIBS%g
+s%@PTHREAD_LIB@%$PTHREAD_LIB%g
+s%@RANLIB@%$RANLIB%g
+s%@ALLOCA@%$ALLOCA%g
+s%@USE_NLS@%$USE_NLS%g
+s%@MSGFMT@%$MSGFMT%g
+s%@GMSGFMT@%$GMSGFMT%g
+s%@XGETTEXT@%$XGETTEXT%g
+s%@GENCAT@%$GENCAT%g
+s%@USE_INCLUDED_LIBINTL@%$USE_INCLUDED_LIBINTL%g
+s%@CATALOGS@%$CATALOGS%g
+s%@CATOBJEXT@%$CATOBJEXT%g
+s%@DATADIRNAME@%$DATADIRNAME%g
+s%@GMOFILES@%$GMOFILES%g
+s%@INSTOBJEXT@%$INSTOBJEXT%g
+s%@INTLDEPS@%$INTLDEPS%g
+s%@INTLLIBS@%$INTLLIBS%g
+s%@INTLOBJS@%$INTLOBJS%g
+s%@POFILES@%$POFILES%g
+s%@POSUB@%$POSUB%g
+s%@INCLUDE_LOCALE_H@%$INCLUDE_LOCALE_H%g
+s%@GT_NO@%$GT_NO%g
+s%@GT_YES@%$GT_YES%g
+s%@MKINSTALLDIRS@%$MKINSTALLDIRS%g
+s%@l@%$l%g
+s%@PACKAGE_PIXMAPS_DIR@%$PACKAGE_PIXMAPS_DIR%g
+
+CEOF
+EOF
+
+cat >> $CONFIG_STATUS <<\EOF
+
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+ else
+ sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+ fi
+ if test ! -s conftest.s$ac_file; then
+ ac_more_lines=false
+ rm -f conftest.s$ac_file
+ else
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f conftest.s$ac_file"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+ fi
+ ac_file=`expr $ac_file + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_cmds`
+ fi
+done
+if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+fi
+EOF
+
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"Makefile
+macros/Makefile
+src/Makefile
+intl/Makefile
+po/Makefile.in
+"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+ else
+ ac_dir_suffix= ac_dots=
+ fi
+
+ case "$ac_given_srcdir" in
+ .) srcdir=.
+ if test -z "$ac_dots"; then top_srcdir=.
+ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+ /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+ *) # Relative path.
+ srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+ top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+ case "$ac_given_INSTALL" in
+ [/$]*) INSTALL="$ac_given_INSTALL" ;;
+ *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+ esac
+
+ echo creating "$ac_file"
+ rm -f "$ac_file"
+ configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+ case "$ac_file" in
+ *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+ *) ac_comsub= ;;
+ esac
+
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+fi; done
+rm -f conftest.s*
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
+ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
+ac_dC='\3'
+ac_dD='%g'
+# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
+ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
+ac_uB='\([ ]\)%\1#\2define\3'
+ac_uC=' '
+ac_uD='\4%g'
+# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
+ac_eB='$%\1#\2define\3'
+ac_eC=' '
+ac_eD='%g'
+
+if test "${CONFIG_HEADERS+set}" != set; then
+EOF
+cat >> $CONFIG_STATUS <<EOF
+ CONFIG_HEADERS="config.h"
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+fi
+for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ echo creating $ac_file
+
+ rm -f conftest.frag conftest.in conftest.out
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ cat $ac_file_inputs > conftest.in
+
+EOF
+
+# Transform confdefs.h into a sed script conftest.vals that substitutes
+# the proper values into config.h.in to produce config.h. And first:
+# Protect against being on the right side of a sed subst in config.status.
+# Protect against being in an unquoted here document in config.status.
+rm -f conftest.vals
+cat > conftest.hdr <<\EOF
+s/[\\&%]/\\&/g
+s%[\\$`]%\\&%g
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
+s%ac_d%ac_u%gp
+s%ac_u%ac_e%gp
+EOF
+sed -n -f conftest.hdr confdefs.h > conftest.vals
+rm -f conftest.hdr
+
+# This sed command replaces #undef with comments. This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >> conftest.vals <<\EOF
+s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
+EOF
+
+# Break up conftest.vals because some shells have a limit on
+# the size of here documents, and old seds have small limits too.
+
+rm -f conftest.tail
+while :
+do
+ ac_lines=`grep -c . conftest.vals`
+ # grep -c gives empty output for an empty file on some AIX systems.
+ if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
+ # Write a limited-size here document to conftest.frag.
+ echo ' cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
+ sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
+ echo 'CEOF
+ sed -f conftest.frag conftest.in > conftest.out
+ rm -f conftest.in
+ mv conftest.out conftest.in
+' >> $CONFIG_STATUS
+ sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
+ rm -f conftest.vals
+ mv conftest.tail conftest.vals
+done
+rm -f conftest.vals
+
+cat >> $CONFIG_STATUS <<\EOF
+ rm -f conftest.frag conftest.h
+ echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
+ cat conftest.in >> conftest.h
+ rm -f conftest.in
+ if cmp -s $ac_file conftest.h 2>/dev/null; then
+ echo "$ac_file is unchanged"
+ rm -f conftest.h
+ else
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ fi
+ rm -f $ac_file
+ mv conftest.h $ac_file
+ fi
+fi; done
+
+EOF
+
+cat >> $CONFIG_STATUS <<EOF
+ac_sources="$nls_cv_header_libgt"
+ac_dests="$nls_cv_header_intl"
+EOF
+
+cat >> $CONFIG_STATUS <<\EOF
+srcdir=$ac_given_srcdir
+while test -n "$ac_sources"; do
+ set $ac_dests; ac_dest=$1; shift; ac_dests=$*
+ set $ac_sources; ac_source=$1; shift; ac_sources=$*
+
+ echo "linking $srcdir/$ac_source to $ac_dest"
+
+ if test ! -r $srcdir/$ac_source; then
+ { echo "configure: error: $srcdir/$ac_source: File not found" 1>&2; exit 1; }
+ fi
+ rm -f $ac_dest
+
+ # Make relative symlinks.
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dest_dir=`echo $ac_dest|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dest_dir" != "$ac_dest" && test "$ac_dest_dir" != .; then
+ # The dest file is in a subdirectory.
+ test ! -d "$ac_dest_dir" && mkdir "$ac_dest_dir"
+ ac_dest_dir_suffix="/`echo $ac_dest_dir|sed 's%^\./%%'`"
+ # A "../" for each directory in $ac_dest_dir_suffix.
+ ac_dots=`echo $ac_dest_dir_suffix|sed 's%/[^/]*%../%g'`
+ else
+ ac_dest_dir_suffix= ac_dots=
+ fi
+
+ case "$srcdir" in
+ [/$]*) ac_rel_source="$srcdir/$ac_source" ;;
+ *) ac_rel_source="$ac_dots$srcdir/$ac_source" ;;
+ esac
+
+ # Make a symlink if possible; otherwise try a hard link.
+ if ln -s $ac_rel_source $ac_dest 2>/dev/null ||
+ ln $srcdir/$ac_source $ac_dest; then :
+ else
+ { echo "configure: error: can not link $ac_dest to $srcdir/$ac_source" 1>&2; exit 1; }
+ fi
+done
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+
+
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
+case "$CONFIG_FILES" in *po/Makefile.in*)
+ sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
+ esac
+
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
+
diff --git a/apps/X11/InstallMgr/configure.in b/apps/X11/InstallMgr/configure.in
new file mode 100644
index 0000000..2977d42
--- /dev/null
+++ b/apps/X11/InstallMgr/configure.in
@@ -0,0 +1,42 @@
+dnl Process this file with autoconf to produce a configure script.
+
+AC_INIT(configure.in)
+AM_INIT_AUTOMAKE(installmgr, 0.1)
+AM_CONFIG_HEADER(config.h)
+
+dnl Pick up the Gnome macros.
+AM_ACLOCAL_INCLUDE(macros)
+
+GNOME_INIT
+AC_ISC_POSIX
+AC_PROG_CC
+AC_PROG_CXX
+AM_PROG_CC_STDC
+AC_HEADER_STDC
+
+GNOME_COMPILE_WARNINGS
+GNOME_X_CHECKS
+
+dnl Add the languages which your application supports here.
+ALL_LINGUAS=""
+AM_GNU_GETTEXT
+
+dnl Set PACKAGE_LOCALE_DIR in config.h.
+if test "x${prefix}" = "xNONE"; then
+ AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "${ac_default_prefix}/${DATADIRNAME}/locale")
+else
+ AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "${prefix}/${DATADIRNAME}/locale")
+fi
+
+dnl Subst PACKAGE_PIXMAPS_DIR.
+PACKAGE_PIXMAPS_DIR="`gnome-config --datadir`/pixmaps/${PACKAGE}"
+AC_SUBST(PACKAGE_PIXMAPS_DIR)
+
+AC_OUTPUT([
+Makefile
+macros/Makefile
+src/Makefile
+intl/Makefile
+po/Makefile.in
+])
+
diff --git a/apps/X11/InstallMgr/install-sh b/apps/X11/InstallMgr/install-sh
new file mode 100755
index 0000000..e9de238
--- /dev/null
+++ b/apps/X11/InstallMgr/install-sh
@@ -0,0 +1,251 @@
+#!/bin/sh
+#
+# install - install a program, script, or datafile
+# This comes from X11R5 (mit/util/scripts/install.sh).
+#
+# Copyright 1991 by the Massachusetts Institute of Technology
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of M.I.T. not be used in advertising or
+# publicity pertaining to distribution of the software without specific,
+# written prior permission. M.I.T. makes no representations about the
+# suitability of this software for any purpose. It is provided "as is"
+# without express or implied warranty.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch. It can only install one file at a time, a restriction
+# shared with many OS's install programs.
+
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+transformbasename=""
+transform_arg=""
+instcmd="$mvprog"
+chmodcmd="$chmodprog 0755"
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+dst=""
+dir_arg=""
+
+while [ x"$1" != x ]; do
+ case $1 in
+ -c) instcmd="$cpprog"
+ shift
+ continue;;
+
+ -d) dir_arg=true
+ shift
+ continue;;
+
+ -m) chmodcmd="$chmodprog $2"
+ shift
+ shift
+ continue;;
+
+ -o) chowncmd="$chownprog $2"
+ shift
+ shift
+ continue;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+ shift
+ shift
+ continue;;
+
+ -s) stripcmd="$stripprog"
+ shift
+ continue;;
+
+ -t=*) transformarg=`echo $1 | sed 's/-t=//'`
+ shift
+ continue;;
+
+ -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
+ shift
+ continue;;
+
+ *) if [ x"$src" = x ]
+ then
+ src=$1
+ else
+ # this colon is to work around a 386BSD /bin/sh bug
+ :
+ dst=$1
+ fi
+ shift
+ continue;;
+ esac
+done
+
+if [ x"$src" = x ]
+then
+ echo "install: no input file specified"
+ exit 1
+else
+ true
+fi
+
+if [ x"$dir_arg" != x ]; then
+ dst=$src
+ src=""
+
+ if [ -d $dst ]; then
+ instcmd=:
+ chmodcmd=""
+ else
+ instcmd=mkdir
+ fi
+else
+
+# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
+# might cause directories to be created, which would be especially bad
+# if $src (and thus $dsttmp) contains '*'.
+
+ if [ -f $src -o -d $src ]
+ then
+ true
+ else
+ echo "install: $src does not exist"
+ exit 1
+ fi
+
+ if [ x"$dst" = x ]
+ then
+ echo "install: no destination specified"
+ exit 1
+ else
+ true
+ fi
+
+# If destination is a directory, append the input filename; if your system
+# does not like double slashes in filenames, you may need to add some logic
+
+ if [ -d $dst ]
+ then
+ dst="$dst"/`basename $src`
+ else
+ true
+ fi
+fi
+
+## this sed command emulates the dirname command
+dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
+
+# Make sure that the destination directory exists.
+# this part is taken from Noah Friedman's mkinstalldirs script
+
+# Skip lots of stat calls in the usual case.
+if [ ! -d "$dstdir" ]; then
+defaultIFS='
+'
+IFS="${IFS-${defaultIFS}}"
+
+oIFS="${IFS}"
+# Some sh's can't handle IFS=/ for some reason.
+IFS='%'
+set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
+IFS="${oIFS}"
+
+pathcomp=''
+
+while [ $# -ne 0 ] ; do
+ pathcomp="${pathcomp}${1}"
+ shift
+
+ if [ ! -d "${pathcomp}" ] ;
+ then
+ $mkdirprog "${pathcomp}"
+ else
+ true
+ fi
+
+ pathcomp="${pathcomp}/"
+done
+fi
+
+if [ x"$dir_arg" != x ]
+then
+ $doit $instcmd $dst &&
+
+ if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
+ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
+ if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
+ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
+else
+
+# If we're going to rename the final executable, determine the name now.
+
+ if [ x"$transformarg" = x ]
+ then
+ dstfile=`basename $dst`
+ else
+ dstfile=`basename $dst $transformbasename |
+ sed $transformarg`$transformbasename
+ fi
+
+# don't allow the sed command to completely eliminate the filename
+
+ if [ x"$dstfile" = x ]
+ then
+ dstfile=`basename $dst`
+ else
+ true
+ fi
+
+# Make a temp file name in the proper directory.
+
+ dsttmp=$dstdir/#inst.$$#
+
+# Move or copy the file name to the temp name
+
+ $doit $instcmd $src $dsttmp &&
+
+ trap "rm -f ${dsttmp}" 0 &&
+
+# and set any options; do chmod last to preserve setuid bits
+
+# If any of these fail, we abort the whole thing. If we want to
+# ignore errors from any of these, just make sure not to ignore
+# errors from the above "$doit $instcmd $src $dsttmp" command.
+
+ if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
+ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
+ if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
+ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
+
+# Now rename the file to the real destination.
+
+ $doit $rmcmd -f $dstdir/$dstfile &&
+ $doit $mvcmd $dsttmp $dstdir/$dstfile
+
+fi &&
+
+
+exit 0
diff --git a/apps/X11/InstallMgr/installmgr.glade b/apps/X11/InstallMgr/installmgr.glade
new file mode 100644
index 0000000..99e0f5b
--- /dev/null
+++ b/apps/X11/InstallMgr/installmgr.glade
@@ -0,0 +1,1220 @@
+<?xml version="1.0"?>
+<GTK-Interface>
+
+<project>
+ <name>InstallMgr</name>
+ <program_name>installmgr</program_name>
+ <directory></directory>
+ <source_directory>src</source_directory>
+ <pixmaps_directory>pixmaps</pixmaps_directory>
+ <language>C</language>
+ <gnome_support>True</gnome_support>
+ <gettext_support>True</gettext_support>
+ <use_widget_names>False</use_widget_names>
+ <output_main_file>True</output_main_file>
+ <output_support_files>True</output_support_files>
+ <output_build_files>True</output_build_files>
+ <backup_source_files>True</backup_source_files>
+ <main_source_file>interface.c</main_source_file>
+ <main_header_file>interface.h</main_header_file>
+ <handler_source_file>callbacks.cpp</handler_source_file>
+ <handler_header_file>callbacks.h</handler_header_file>
+ <support_source_file>support.c</support_source_file>
+ <support_header_file>support.h</support_header_file>
+ <translatable_strings_file></translatable_strings_file>
+</project>
+
+<widget>
+ <class>GnomeApp</class>
+ <name>InstallMgrApp</name>
+ <title>InstallMgr</title>
+ <type>GTK_WINDOW_TOPLEVEL</type>
+ <position>GTK_WIN_POS_NONE</position>
+ <modal>False</modal>
+ <default_width>600</default_width>
+ <default_height>450</default_height>
+ <allow_shrink>False</allow_shrink>
+ <allow_grow>True</allow_grow>
+ <auto_shrink>False</auto_shrink>
+ <enable_layout_config>True</enable_layout_config>
+
+ <widget>
+ <class>GnomeDock</class>
+ <child_name>GnomeApp:dock</child_name>
+ <name>dock1</name>
+ <allow_floating>True</allow_floating>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GnomeDockItem</class>
+ <name>dockitem1</name>
+ <border_width>2</border_width>
+ <placement>GNOME_DOCK_TOP</placement>
+ <band>0</band>
+ <position>0</position>
+ <offset>0</offset>
+ <locked>False</locked>
+ <exclusive>True</exclusive>
+ <never_floating>False</never_floating>
+ <never_vertical>True</never_vertical>
+ <never_horizontal>False</never_horizontal>
+ <shadow_type>GTK_SHADOW_OUT</shadow_type>
+
+ <widget>
+ <class>GtkMenuBar</class>
+ <name>menubar1</name>
+ <shadow_type>GTK_SHADOW_NONE</shadow_type>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>file2</name>
+ <stock_item>GNOMEUIINFO_MENU_FILE_TREE</stock_item>
+
+ <widget>
+ <class>GtkMenu</class>
+ <name>file2_menu</name>
+
+ <widget>
+ <class>GtkPixmapMenuItem</class>
+ <name>exit1</name>
+ <signal>
+ <name>activate</name>
+ <handler>on_exit1_activate</handler>
+ <last_modification_time>Sun, 19 Dec 1999 05:17:05 GMT</last_modification_time>
+ </signal>
+ <stock_item>GNOMEUIINFO_MENU_EXIT_ITEM</stock_item>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>options1</name>
+ <label>_Options</label>
+ <right_justify>False</right_justify>
+
+ <widget>
+ <class>GtkMenu</class>
+ <name>options1_menu</name>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>local_path1</name>
+ <signal>
+ <name>activate</name>
+ <handler>on_local_path1_activate</handler>
+ <last_modification_time>Sun, 19 Dec 1999 05:18:44 GMT</last_modification_time>
+ </signal>
+ <label>_Local Path...</label>
+ <right_justify>False</right_justify>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>manage_remote_sources1</name>
+ <signal>
+ <name>activate</name>
+ <handler>on_manage_remote_sources1_activate</handler>
+ <last_modification_time>Sun, 19 Dec 1999 05:18:45 GMT</last_modification_time>
+ </signal>
+ <label>_Manage Remote Sources...</label>
+ <right_justify>False</right_justify>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkVBox</class>
+ <child_name>GnomeDock:contents</child_name>
+ <name>vbox1</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+
+ <widget>
+ <class>GtkPixmap</class>
+ <name>pixmap1</name>
+ <signal>
+ <name>button_press_event</name>
+ <handler>on_pixmap1_button_press_event</handler>
+ <last_modification_time>Tue, 21 Dec 1999 07:14:26 GMT</last_modification_time>
+ </signal>
+ <filename>sword.xpm</filename>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <build_insensitive>True</build_insensitive>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkHPaned</class>
+ <name>hpaned1</name>
+ <handle_size>10</handle_size>
+ <gutter_size>6</gutter_size>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkVBox</class>
+ <name>vbox2</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+ <child>
+ <shrink>True</shrink>
+ <resize>False</resize>
+ </child>
+
+ <widget>
+ <class>GtkToolbar</class>
+ <name>toolbar2</name>
+ <orientation>GTK_ORIENTATION_HORIZONTAL</orientation>
+ <type>GTK_TOOLBAR_ICONS</type>
+ <space_size>5</space_size>
+ <space_style>GTK_TOOLBAR_SPACE_EMPTY</space_style>
+ <relief>GTK_RELIEF_NORMAL</relief>
+ <tooltips>True</tooltips>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>label3</name>
+ <label>Available </label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>GlobeBtn</name>
+ <signal>
+ <name>clicked</name>
+ <handler>on_GlobeBtn_clicked</handler>
+ <last_modification_time>Tue, 21 Dec 1999 07:20:12 GMT</last_modification_time>
+ </signal>
+ <label>Mng Rmt Srcs</label>
+ <icon>globe.xpm</icon>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>label5</name>
+ <label> </label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GtkPixmap</class>
+ <name>pixmap2</name>
+ <filename>arrow2r.xpm</filename>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <build_insensitive>True</build_insensitive>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>label4</name>
+ <label>Selected for Install</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkNotebook</class>
+ <name>notebook1</name>
+ <can_focus>True</can_focus>
+ <show_tabs>True</show_tabs>
+ <show_border>True</show_border>
+ <tab_pos>GTK_POS_TOP</tab_pos>
+ <scrollable>False</scrollable>
+ <tab_hborder>2</tab_hborder>
+ <tab_vborder>2</tab_vborder>
+ <popup_enable>False</popup_enable>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkTree</class>
+ <name>LocalTree</name>
+ <selection_mode>GTK_SELECTION_SINGLE</selection_mode>
+ <view_mode>GTK_TREE_VIEW_LINE</view_mode>
+ <view_line>True</view_line>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>label1</name>
+ <label>Local</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkToolbar</class>
+ <name>toolbar3</name>
+ <orientation>GTK_ORIENTATION_HORIZONTAL</orientation>
+ <type>GTK_TOOLBAR_BOTH</type>
+ <space_size>5</space_size>
+ <space_style>GTK_TOOLBAR_SPACE_EMPTY</space_style>
+ <relief>GTK_RELIEF_NORMAL</relief>
+ <tooltips>True</tooltips>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>InfoBtn</name>
+ <signal>
+ <name>clicked</name>
+ <handler>on_InfoBtn_clicked</handler>
+ <last_modification_time>Tue, 21 Dec 1999 07:15:28 GMT</last_modification_time>
+ </signal>
+ <label>Info</label>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>SelectBtn</name>
+ <signal>
+ <name>clicked</name>
+ <handler>on_SelectBtn_clicked</handler>
+ <last_modification_time>Tue, 21 Dec 1999 07:15:19 GMT</last_modification_time>
+ </signal>
+ <label>Select</label>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>SelectAllBtn</name>
+ <signal>
+ <name>clicked</name>
+ <handler>on_SelectAllBtn_clicked</handler>
+ <last_modification_time>Tue, 21 Dec 1999 07:15:12 GMT</last_modification_time>
+ </signal>
+ <label>Select All</label>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>InstallBtn</name>
+ <signal>
+ <name>clicked</name>
+ <handler>on_InstallBtn_clicked</handler>
+ <last_modification_time>Tue, 21 Dec 1999 07:15:39 GMT</last_modification_time>
+ </signal>
+ <label>Install</label>
+ <stock_pixmap>GNOME_STOCK_PIXMAP_ADD</stock_pixmap>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkVBox</class>
+ <name>vbox3</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+ <child>
+ <shrink>True</shrink>
+ <resize>True</resize>
+ </child>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>label2</name>
+ <label>Installed</label>
+ <justify>GTK_JUSTIFY_LEFT</justify>
+ <wrap>False</wrap>
+ <xalign>0.01</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkTree</class>
+ <name>InstalledTree</name>
+ <selection_mode>GTK_SELECTION_SINGLE</selection_mode>
+ <view_mode>GTK_TREE_VIEW_LINE</view_mode>
+ <view_line>True</view_line>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkToolbar</class>
+ <name>toolbar4</name>
+ <orientation>GTK_ORIENTATION_HORIZONTAL</orientation>
+ <type>GTK_TOOLBAR_BOTH</type>
+ <space_size>5</space_size>
+ <space_style>GTK_TOOLBAR_SPACE_EMPTY</space_style>
+ <relief>GTK_RELIEF_NORMAL</relief>
+ <tooltips>True</tooltips>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>RemoveBtn</name>
+ <signal>
+ <name>clicked</name>
+ <handler>on_RemoveBtn_clicked</handler>
+ <last_modification_time>Tue, 21 Dec 1999 07:15:48 GMT</last_modification_time>
+ </signal>
+ <label>Remove</label>
+ <stock_pixmap>GNOME_STOCK_PIXMAP_REMOVE</stock_pixmap>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GnomeAppBar</class>
+ <child_name>GnomeApp:appbar</child_name>
+ <name>appbar1</name>
+ <has_progress>True</has_progress>
+ <has_status>True</has_status>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+ </widget>
+</widget>
+
+<widget>
+ <class>GnomeDialog</class>
+ <name>InfoFrm</name>
+ <title>About Module</title>
+ <type>GTK_WINDOW_TOPLEVEL</type>
+ <position>GTK_WIN_POS_NONE</position>
+ <modal>True</modal>
+ <allow_shrink>False</allow_shrink>
+ <allow_grow>False</allow_grow>
+ <auto_shrink>False</auto_shrink>
+ <auto_close>False</auto_close>
+ <hide_on_close>False</hide_on_close>
+
+ <widget>
+ <class>GtkVBox</class>
+ <child_name>GnomeDialog:vbox</child_name>
+ <name>dialog-vbox1</name>
+ <homogeneous>False</homogeneous>
+ <spacing>8</spacing>
+ <child>
+ <padding>4</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkScrolledWindow</class>
+ <name>scrolledwindow1</name>
+ <hscrollbar_policy>GTK_POLICY_NEVER</hscrollbar_policy>
+ <vscrollbar_policy>GTK_POLICY_ALWAYS</vscrollbar_policy>
+ <hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy>
+ <vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkText</class>
+ <name>InfoText</name>
+ <can_focus>True</can_focus>
+ <editable>False</editable>
+ <text></text>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkHButtonBox</class>
+ <child_name>GnomeDialog:action_area</child_name>
+ <name>dialog-action_area1</name>
+ <layout_style>GTK_BUTTONBOX_SPREAD</layout_style>
+ <spacing>8</spacing>
+ <child_min_width>85</child_min_width>
+ <child_min_height>27</child_min_height>
+ <child_ipad_x>7</child_ipad_x>
+ <child_ipad_y>0</child_ipad_y>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ <pack>GTK_PACK_END</pack>
+ </child>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>OKBtn</name>
+ <can_default>True</can_default>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>clicked</name>
+ <handler>on_OKBtn_clicked</handler>
+ <last_modification_time>Tue, 21 Dec 1999 07:21:03 GMT</last_modification_time>
+ </signal>
+ <stock_button>GNOME_STOCK_BUTTON_OK</stock_button>
+ </widget>
+ </widget>
+ </widget>
+</widget>
+
+<widget>
+ <class>GtkFileSelection</class>
+ <name>fileselection1</name>
+ <border_width>10</border_width>
+ <title>Select File</title>
+ <type>GTK_WINDOW_TOPLEVEL</type>
+ <position>GTK_WIN_POS_NONE</position>
+ <modal>False</modal>
+ <allow_shrink>False</allow_shrink>
+ <allow_grow>True</allow_grow>
+ <auto_shrink>False</auto_shrink>
+ <show_file_op_buttons>True</show_file_op_buttons>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>FileSel:ok_button</child_name>
+ <name>ok_button1</name>
+ <can_default>True</can_default>
+ <can_focus>True</can_focus>
+ <label>OK</label>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>FileSel:cancel_button</child_name>
+ <name>cancel_button1</name>
+ <can_default>True</can_default>
+ <can_focus>True</can_focus>
+ <label>Cancel</label>
+ </widget>
+</widget>
+
+<widget>
+ <class>GnomeDialog</class>
+ <name>RemoteMntFrm</name>
+ <title>Manage Remote Sites</title>
+ <type>GTK_WINDOW_TOPLEVEL</type>
+ <position>GTK_WIN_POS_NONE</position>
+ <modal>True</modal>
+ <allow_shrink>False</allow_shrink>
+ <allow_grow>False</allow_grow>
+ <auto_shrink>False</auto_shrink>
+ <auto_close>False</auto_close>
+ <hide_on_close>False</hide_on_close>
+
+ <widget>
+ <class>GtkVBox</class>
+ <child_name>GnomeDialog:vbox</child_name>
+ <name>dialog-vbox2</name>
+ <homogeneous>False</homogeneous>
+ <spacing>8</spacing>
+ <child>
+ <padding>4</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkHBox</class>
+ <name>hbox2</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkVBox</class>
+ <name>vbox4</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkList</class>
+ <name>SiteList</name>
+ <height>140</height>
+ <selection_mode>GTK_SELECTION_SINGLE</selection_mode>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkHBox</class>
+ <name>hbox3</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkHBox</class>
+ <name>hbox4</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+
+ <widget>
+ <class>GtkPixmap</class>
+ <name>pixmap4</name>
+ <filename>filenew.xpm</filename>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <build_insensitive>True</build_insensitive>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>AddBtn</name>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>clicked</name>
+ <handler>on_AddBtn_clicked</handler>
+ <last_modification_time>Tue, 21 Dec 1999 07:25:03 GMT</last_modification_time>
+ </signal>
+ <label>Add</label>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkHBox</class>
+ <name>hbox5</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkPixmap</class>
+ <name>pixmap5</name>
+ <filename>trash.xpm</filename>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <build_insensitive>True</build_insensitive>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>RemoveBtn</name>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>clicked</name>
+ <handler>on_RemoveBtn_clicked</handler>
+ <last_modification_time>Tue, 21 Dec 1999 07:24:54 GMT</last_modification_time>
+ </signal>
+ <label>Remove</label>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkVBox</class>
+ <name>vbox5</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkVBox</class>
+ <name>vbox6</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>label6</name>
+ <label>Site Name</label>
+ <justify>GTK_JUSTIFY_LEFT</justify>
+ <wrap>False</wrap>
+ <xalign>1.22935e-07</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkEntry</class>
+ <name>NameText</name>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>changed</name>
+ <handler>on_NameText_changed</handler>
+ <last_modification_time>Tue, 21 Dec 1999 07:25:55 GMT</last_modification_time>
+ </signal>
+ <editable>True</editable>
+ <text_visible>True</text_visible>
+ <text_max_length>0</text_max_length>
+ <text></text>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkVBox</class>
+ <name>vbox7</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>label7</name>
+ <label>Site Machine Name</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>7.45058e-09</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkEntry</class>
+ <name>MachineText</name>
+ <can_focus>True</can_focus>
+ <editable>True</editable>
+ <text_visible>True</text_visible>
+ <text_max_length>0</text_max_length>
+ <text></text>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkVBox</class>
+ <name>vbox8</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>label8</name>
+ <label>Repository Directory</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>7.45058e-09</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkEntry</class>
+ <name>RepositoryText</name>
+ <can_focus>True</can_focus>
+ <editable>True</editable>
+ <text_visible>True</text_visible>
+ <text_max_length>0</text_max_length>
+ <text></text>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkHButtonBox</class>
+ <child_name>GnomeDialog:action_area</child_name>
+ <name>dialog-action_area2</name>
+ <layout_style>GTK_BUTTONBOX_SPREAD</layout_style>
+ <spacing>8</spacing>
+ <child_min_width>85</child_min_width>
+ <child_min_height>27</child_min_height>
+ <child_ipad_x>7</child_ipad_x>
+ <child_ipad_y>0</child_ipad_y>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ <pack>GTK_PACK_END</pack>
+ </child>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>SaveBtn</name>
+ <can_default>True</can_default>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>clicked</name>
+ <handler>on_SaveBtn_clicked</handler>
+ <last_modification_time>Tue, 21 Dec 1999 07:25:12 GMT</last_modification_time>
+ </signal>
+ <label>Save</label>
+ <stock_pixmap>GNOME_STOCK_PIXMAP_SAVE</stock_pixmap>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>CancelBtn</name>
+ <can_default>True</can_default>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>clicked</name>
+ <handler>on_CancelBtn_clicked</handler>
+ <last_modification_time>Tue, 21 Dec 1999 07:25:19 GMT</last_modification_time>
+ </signal>
+ <stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button>
+ </widget>
+ </widget>
+ </widget>
+</widget>
+
+<widget>
+ <class>GnomeDialog</class>
+ <name>CipherFrm</name>
+ <title>Ciphered Module</title>
+ <type>GTK_WINDOW_TOPLEVEL</type>
+ <position>GTK_WIN_POS_NONE</position>
+ <modal>True</modal>
+ <allow_shrink>False</allow_shrink>
+ <allow_grow>False</allow_grow>
+ <auto_shrink>False</auto_shrink>
+ <auto_close>False</auto_close>
+ <hide_on_close>False</hide_on_close>
+
+ <widget>
+ <class>GtkVBox</class>
+ <child_name>GnomeDialog:vbox</child_name>
+ <name>dialog-vbox3</name>
+ <homogeneous>False</homogeneous>
+ <spacing>8</spacing>
+ <child>
+ <padding>4</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkVBox</class>
+ <name>vbox9</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkVBox</class>
+ <name>vbox10</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>label9</name>
+ <label>The module that you have requested for install seems to be ciphered.</label>
+ <justify>GTK_JUSTIFY_LEFT</justify>
+ <wrap>False</wrap>
+ <xalign>7.45058e-09</xalign>
+ <yalign>0</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkHBox</class>
+ <name>hbox6</name>
+ <border_width>5</border_width>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkHBox</class>
+ <name>hbox7</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>label10</name>
+ <label>Cipher Key:</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkEntry</class>
+ <name>KeyText</name>
+ <can_focus>True</can_focus>
+ <editable>True</editable>
+ <text_visible>True</text_visible>
+ <text_max_length>0</text_max_length>
+ <text></text>
+ <child>
+ <padding>5</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>TryBtn</name>
+ <width>99</width>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>clicked</name>
+ <handler>on_TryBtn_clicked</handler>
+ <last_modification_time>Tue, 21 Dec 1999 07:27:36 GMT</last_modification_time>
+ </signal>
+ <label>Try</label>
+ <child>
+ <padding>10</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkScrolledWindow</class>
+ <name>scrolledwindow2</name>
+ <hscrollbar_policy>GTK_POLICY_NEVER</hscrollbar_policy>
+ <vscrollbar_policy>GTK_POLICY_ALWAYS</vscrollbar_policy>
+ <hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy>
+ <vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkText</class>
+ <name>ModuleText</name>
+ <width>166</width>
+ <height>146</height>
+ <can_focus>True</can_focus>
+ <editable>False</editable>
+ <text></text>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkHButtonBox</class>
+ <child_name>GnomeDialog:action_area</child_name>
+ <name>dialog-action_area3</name>
+ <layout_style>GTK_BUTTONBOX_SPREAD</layout_style>
+ <spacing>8</spacing>
+ <child_min_width>85</child_min_width>
+ <child_min_height>27</child_min_height>
+ <child_ipad_x>7</child_ipad_x>
+ <child_ipad_y>0</child_ipad_y>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ <pack>GTK_PACK_END</pack>
+ </child>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>OKBtn</name>
+ <can_default>True</can_default>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>clicked</name>
+ <handler>on_OKBtn_clicked</handler>
+ <last_modification_time>Tue, 21 Dec 1999 07:27:28 GMT</last_modification_time>
+ </signal>
+ <stock_button>GNOME_STOCK_BUTTON_OK</stock_button>
+ </widget>
+ </widget>
+ </widget>
+</widget>
+
+<widget>
+ <class>GnomeDialog</class>
+ <name>StatusFrm</name>
+ <title>Status</title>
+ <type>GTK_WINDOW_TOPLEVEL</type>
+ <position>GTK_WIN_POS_NONE</position>
+ <modal>True</modal>
+ <allow_shrink>False</allow_shrink>
+ <allow_grow>False</allow_grow>
+ <auto_shrink>False</auto_shrink>
+ <auto_close>False</auto_close>
+ <hide_on_close>False</hide_on_close>
+
+ <widget>
+ <class>GtkVBox</class>
+ <child_name>GnomeDialog:vbox</child_name>
+ <name>dialog-vbox4</name>
+ <homogeneous>False</homogeneous>
+ <spacing>8</spacing>
+ <child>
+ <padding>4</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkVBox</class>
+ <name>vbox11</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>label11</name>
+ <label></label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>7.45058e-09</xalign>
+ <yalign>7.45058e-09</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkProgressBar</class>
+ <name>progressbar1</name>
+ <value>0</value>
+ <lower>0</lower>
+ <upper>100</upper>
+ <bar_style>GTK_PROGRESS_CONTINUOUS</bar_style>
+ <orientation>GTK_PROGRESS_LEFT_TO_RIGHT</orientation>
+ <activity_mode>False</activity_mode>
+ <show_text>False</show_text>
+ <format>%P %%</format>
+ <text_xalign>0.5</text_xalign>
+ <text_yalign>0.5</text_yalign>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkHButtonBox</class>
+ <child_name>GnomeDialog:action_area</child_name>
+ <name>dialog-action_area4</name>
+ <layout_style>GTK_BUTTONBOX_SPREAD</layout_style>
+ <spacing>8</spacing>
+ <child_min_width>85</child_min_width>
+ <child_min_height>27</child_min_height>
+ <child_ipad_x>7</child_ipad_x>
+ <child_ipad_y>0</child_ipad_y>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ <pack>GTK_PACK_END</pack>
+ </child>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>CancelBtn</name>
+ <can_default>True</can_default>
+ <can_focus>True</can_focus>
+ <stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button>
+ </widget>
+ </widget>
+ </widget>
+</widget>
+
+</GTK-Interface>
diff --git a/apps/X11/InstallMgr/intl/ChangeLog b/apps/X11/InstallMgr/intl/ChangeLog
new file mode 100644
index 0000000..1989501
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/ChangeLog
@@ -0,0 +1,1086 @@
+1998-04-29 Ulrich Drepper <drepper@cygnus.com>
+
+ * intl/localealias.c (read_alias_file): Use unsigned char for
+ local variables. Remove unused variable tp.
+ * intl/l10nflist.c (_nl_normalize_codeset): Use unsigned char *
+ for type of codeset. For loosing Solaris systems.
+ * intl/loadinfo.h: Adapt prototype of _nl_normalize_codeset.
+ * intl/bindtextdom.c (BINDTEXTDOMAIN): Don't define local variable
+ len if not needed.
+ Patches by Jim Meyering.
+
+1998-04-28 Ulrich Drepper <drepper@cygnus.com>
+
+ * loadmsgcat.c (_nl_load_domain): Don't assign the element use_mmap if
+ mmap is not supported.
+
+ * hash-string.h: Don't include <values.h>.
+
+1998-04-27 Ulrich Drepper <drepper@cygnus.com>
+
+ * textdomain.c: Use strdup is available.
+
+ * localealias.c: Define HAVE_MEMPCPY so that we can use this
+ function. Define and use semapahores to protect modfication of
+ global objects when compiling for glibc. Add code to allow
+ freeing alias table.
+
+ * l10nflist.c: Don't assume stpcpy not being a macro.
+
+ * gettextP.h: Define internal_function macri if not already done.
+ Use glibc byte-swap macros instead of defining SWAP when compiled
+ for glibc.
+ (struct loaded_domain): Add elements to allow unloading.
+
+ * Makefile.in (distclean): Don't remove libintl.h here.
+
+ * bindtextdomain.c: Carry over changes from glibc. Use strdup if
+ available.
+
+ * dcgettext.c: Don't assume stpcpy not being a macro. Mark internal
+ functions. Add memory freeing code for glibc.
+
+ * dgettext.c: Update copyright.
+
+ * explodename.c: Include stdlib.h and string.h only if they exist.
+ Use strings.h eventually.
+
+ * finddomain.c: Mark internal functions. Use strdup if available.
+ Add memory freeing code for glibc.
+
+1997-10-10 20:00 Ulrich Drepper <drepper@cygnus.com>
+
+ * libgettext.h: Fix dummy textdomain and bindtextdomain macros.
+ They should return reasonable values.
+ Reported by Tom Tromey <tromey@cygnus.com>.
+
+1997-09-16 03:33 Ulrich Drepper <drepper@cygnus.com>
+
+ * libgettext.h: Define PARAMS also to `args' if __cplusplus is defined.
+ * intlh.inst.in: Likewise.
+ Reported by Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>.
+
+ * libintl.glibc: Update from current glibc version.
+
+1997-09-06 02:10 Ulrich Drepper <drepper@cygnus.com>
+
+ * intlh.inst.in: Reformat copyright.
+
+1997-08-19 15:22 Ulrich Drepper <drepper@cygnus.com>
+
+ * dcgettext.c (DCGETTEXT): Remove wrong comment.
+
+1997-08-16 00:13 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.in (install-data): Don't change directory to install.
+
+1997-08-01 14:30 Ulrich Drepper <drepper@cygnus.com>
+
+ * cat-compat.c: Fix copyright.
+
+ * localealias.c: Don't define strchr unless !HAVE_STRCHR.
+
+ * loadmsgcat.c: Update copyright. Fix typos.
+
+ * l10nflist.c: Don't define strchr unless !HAVE_STRCHR.
+ (_nl_make_l10nflist): Handle sponsor and revision correctly.
+
+ * gettext.c: Update copyright.
+ * gettext.h: Likewise.
+ * hash-string.h: Likewise.
+
+ * finddomain.c: Remoave dead code. Define strchr only if
+ !HAVE_STRCHR.
+
+ * explodename.c: Include <sys/types.h>.
+
+ * explodename.c: Reformat copyright text.
+ (_nl_explode_name): Fix typo.
+
+ * dcgettext.c: Define and use __set_errno.
+ (guess_category_value): Don't use setlocale if HAVE_LC_MESSAGES is
+ not defined.
+
+ * bindtextdom.c: Pretty printing.
+
+1997-05-01 02:25 Ulrich Drepper <drepper@cygnus.com>
+
+ * dcgettext.c (guess_category_value): Don't depend on
+ HAVE_LC_MESSAGES. We don't need the macro here.
+ Patch by Bruno Haible <haible@ilog.fr>.
+
+ * cat-compat.c (textdomain): DoN't refer to HAVE_SETLOCALE_NULL
+ macro. Instead use HAVE_LOCALE_NULL and define it when using
+ glibc, as in dcgettext.c.
+ Patch by Bruno Haible <haible@ilog.fr>.
+
+ * Makefile.in (CPPFLAGS): New variable. Reported by Franc,ois
+ Pinard.
+
+Mon Mar 10 06:51:17 1997 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.in: Implement handling of libtool.
+
+ * gettextP.h: Change data structures for use of generic lowlevel
+ i18n file handling.
+
+Wed Dec 4 20:21:18 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * textdomain.c: Put parentheses around arguments of memcpy macro
+ definition.
+ * localealias.c: Likewise.
+ * l10nflist.c: Likewise.
+ * finddomain.c: Likewise.
+ * bindtextdom.c: Likewise.
+ Reported by Thomas Esken.
+
+Mon Nov 25 22:57:51 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * textdomain.c: Move definition of `memcpy` macro to right
+ position.
+
+Fri Nov 22 04:01:58 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * finddomain.c [!HAVE_STRING_H && !_LIBC]: Define memcpy using
+ bcopy if not already defined. Reported by Thomas Esken.
+ * bindtextdom.c: Likewise.
+ * l10nflist.c: Likewise.
+ * localealias.c: Likewise.
+ * textdomain.c: Likewise.
+
+Tue Oct 29 11:10:27 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.in (libdir): Change to use exec_prefix instead of
+ prefix. Reported by Knut-HåvardAksnes <etokna@eto.ericsson.se>.
+
+Sat Aug 31 03:07:09 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * l10nflist.c (_nl_normalize_codeset): We convert to lower case,
+ so don't prepend uppercase `ISO' for only numeric arg.
+
+Fri Jul 19 00:15:46 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * l10nflist.c: Move inclusion of argz.h, ctype.h, stdlib.h after
+ definition of _GNU_SOURCE. Patch by Roland McGrath.
+
+ * Makefile.in (uninstall): Fix another bug with `for' loop and
+ empty arguments. Patch by Jim Meyering. Correct name os
+ uninstalled files: no intl- prefix anymore.
+
+ * Makefile.in (install-data): Again work around shells which
+ cannot handle mpty for list. Reported by Jim Meyering.
+
+Sat Jul 13 18:11:35 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.in (install): Split goal. Now depend on install-exec
+ and install-data.
+ (install-exec, install-data): New goals. Created from former
+ install goal.
+ Reported by Karl Berry.
+
+Sat Jun 22 04:58:14 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.in (MKINSTALLDIRS): New variable. Path to
+ mkinstalldirs script.
+ (install): use MKINSTALLDIRS variable or if the script is not present
+ try to find it in the $top_scrdir).
+
+Wed Jun 19 02:56:56 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * l10nflist.c: Linux libc *partly* includes the argz_* functions.
+ Grr. Work around by renaming the static version and use macros
+ for renaming.
+
+Tue Jun 18 20:11:17 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * l10nflist.c: Correct presence test macros of __argz_* functions.
+
+ * l10nflist.c: Include <argz.h> based on test of it instead when
+ __argz_* functions are available.
+ Reported by Andreas Schwab.
+
+Thu Jun 13 15:17:44 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * explodename.c, l10nflist.c: Define NULL for dumb systems.
+
+Tue Jun 11 17:05:13 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * intlh.inst.in, libgettext.h (dcgettext): Rename local variable
+ result to __result to prevent name clash.
+
+ * l10nflist.c, localealias.c, dcgettext.c: Define _GNU_SOURCE to
+ get prototype for stpcpy and strcasecmp.
+
+ * intlh.inst.in, libgettext.h: Move declaration of
+ `_nl_msg_cat_cntr' outside __extension__ block to prevent warning
+ from gcc's -Wnested-extern option.
+
+Fri Jun 7 01:58:00 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.in (install): Remove comment.
+
+Thu Jun 6 17:28:17 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.in (install): Work around for another Buglix stupidity.
+ Always use an `else' close for `if's. Reported by Nelson Beebe.
+
+ * Makefile.in (intlh.inst): Correct typo in phony rule.
+ Reported by Nelson Beebe.
+
+Thu Jun 6 01:49:52 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * dcgettext.c (read_alias_file): Rename variable alloca_list to
+ block_list as the macro calls assume.
+ Patch by Eric Backus.
+
+ * localealias.c [!HAVE_ALLOCA]: Define alloca as macro using
+ malloc.
+ (read_alias_file): Rename varriabe alloca_list to block_list as the
+ macro calls assume.
+ Patch by Eric Backus.
+
+ * l10nflist.c: Correct conditional for <argz.h> inclusion.
+ Reported by Roland McGrath.
+
+ * Makefile.in (all): Depend on all-@USE_INCLUDED_LIBINTL@, not
+ all-@USE_NLS@.
+
+ * Makefile.in (install): intlh.inst comes from local dir, not
+ $(srcdir).
+
+ * Makefile.in (intlh.inst): Special handling of this goal. If
+ used in gettext, this is really a rul to construct this file. If
+ used in any other package it is defined as a .PHONY rule with
+ empty body.
+
+ * finddomain.c: Extract locale file information handling into
+ l10nfile.c. Rename local stpcpy__ function to stpcpy.
+
+ * dcgettext.c (stpcpy): Add local definition.
+
+ * l10nflist.c: Solve some portability problems. Patches partly by
+ Thomas Esken. Add local definition of stpcpy.
+
+Tue Jun 4 02:47:49 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * intlh.inst.in: Don't depend including <locale.h> on
+ HAVE_LOCALE_H. Instead configure must rewrite this fiile
+ depending on the result of the configure run.
+
+ * Makefile.in (install): libintl.inst is now called intlh.inst.
+ Add rules for updating intlh.inst from intlh.inst.in.
+
+ * libintl.inst: Renamed to intlh.inst.in.
+
+ * localealias.c, dcgettext.c [__GNUC__]: Define HAVE_ALLOCA to 1
+ because gcc has __buitlin_alloca.
+ Reported by Roland McGrath.
+
+Mon Jun 3 00:32:16 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile.in (installcheck): New goal to fulfill needs of
+ automake's distcheck.
+
+ * Makefile.in (install): Reorder commands so that VERSION is
+ found.
+
+ * Makefile.in (gettextsrcdir): Now use subdirectory intl/ in
+ @datadir@/gettext.
+ (COMSRCS): Add l10nfile.c.
+ (OBJECTS): Add l10nfile.o.
+ (DISTFILES): Rename to DISTFILE.normal. Remove $(DISTFILES.common).
+ (DISTFILE.gettext): Remove $(DISTFILES.common).
+ (all-gettext): Remove goal.
+ (install): If $(PACKAGE) = gettext install, otherwose do nothing. No
+ package but gettext itself should install libintl.h + headers.
+ (dist): Extend goal to work for gettext, too.
+ (dist-gettext): Remove goal.
+
+ * dcgettext.c [!HAVE_ALLOCA]: Define macro alloca by using malloc.
+
+Sun Jun 2 17:33:06 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * loadmsgcat.c (_nl_load_domain): Parameter is now comes from
+ find_l10nfile.
+
+Sat Jun 1 02:23:03 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * l10nflist.c (__argz_next): Add definition.
+
+ * dcgettext.c [!HAVE_ALLOCA]: Add code for handling missing alloca
+ code. Use new l10nfile handling.
+
+ * localealias.c [!HAVE_ALLOCA]: Add code for handling missing
+ alloca code.
+
+ * l10nflist.c: Initial revision.
+
+Tue Apr 2 18:51:18 1996 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (all-gettext): New goal. Same as all-yes.
+
+Thu Mar 28 23:01:22 1996 Karl Eichwalder <ke@ke.central.de>
+
+ * Makefile.in (gettextsrcdir): Define using @datadir@.
+
+Tue Mar 26 12:39:14 1996 Ulrich Drepper <drepper@myware>
+
+ * finddomain.c: Include <ctype.h>. Reported by Roland McGrath.
+
+Sat Mar 23 02:00:35 1996 Ulrich Drepper <drepper@myware>
+
+ * finddomain.c (stpcpy): Rename to stpcpy__ to prevent clashing
+ with external declaration.
+
+Sat Mar 2 00:47:09 1996 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (all-no): Rename from all_no.
+
+Sat Feb 17 00:25:59 1996 Ulrich Drepper <drepper@myware>
+
+ * gettextP.h [loaded_domain]: Array `successor' must now contain up
+ to 63 elements (because of codeset name normalization).
+
+ * finddomain.c: Implement codeset name normalization.
+
+Thu Feb 15 04:39:09 1996 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (all): Define to `all-@USE_NLS@'.
+ (all-yes, all_no): New goals. `all-no' is noop, `all-yes'
+ is former all.
+
+Mon Jan 15 21:46:01 1996 Howard Gayle <howard@hal.com>
+
+ * localealias.c (alias_compare): Increment string pointers in loop
+ of strcasecmp replacement.
+
+Fri Dec 29 21:16:34 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (install-src): Who commented this goal out ? :-)
+
+Fri Dec 29 15:08:16 1995 Ulrich Drepper <drepper@myware>
+
+ * dcgettext.c (DCGETTEXT): Save `errno'. Failing system calls
+ should not effect it because a missing catalog is no error.
+ Reported by Harald K<o:>nig <koenig@tat.physik.uni-tuebingen.de>.
+
+Tue Dec 19 22:09:13 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (Makefile): Explicitly use $(SHELL) for running
+ shell scripts.
+
+Fri Dec 15 17:34:59 1995 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * Makefile.in (install-src): Only install library and header when
+ we use the own implementation. Don't do it when using the
+ system's gettext or catgets functions.
+
+ * dcgettext.c (find_msg): Must not swap domain->hash_size here.
+
+Sat Dec 9 16:24:37 1995 Ulrich Drepper <drepper@myware>
+
+ * localealias.c, libintl.inst, libgettext.h, hash-string.h,
+ gettextP.h, finddomain.c, dcgettext.c, cat-compat.c:
+ Use PARAMS instead of __P. Suggested by Roland McGrath.
+
+Tue Dec 5 11:39:14 1995 Larry Schwimmer <rosebud@cyclone.stanford.edu>
+
+ * libgettext.h: Use `#if !defined (_LIBINTL_H)' instead of `#if
+ !_LIBINTL_H' because Solaris defines _LIBINTL_H as empty.
+
+Mon Dec 4 15:42:07 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (install-src):
+ Install libintl.inst instead of libintl.h.install.
+
+Sat Dec 2 22:51:38 1995 Marcus Daniels <marcus@sysc.pdx.edu>
+
+ * cat-compat.c (textdomain):
+ Reverse order in which files are tried you load. First
+ try local file, when this failed absolute path.
+
+Wed Nov 29 02:03:53 1995 Nelson H. F. Beebe <beebe@math.utah.edu>
+
+ * cat-compat.c (bindtextdomain): Add missing { }.
+
+Sun Nov 26 18:21:41 1995 Ulrich Drepper <drepper@myware>
+
+ * libintl.inst: Add missing __P definition. Reported by Nelson Beebe.
+
+ * Makefile.in:
+ Add dummy `all' and `dvi' goals. Reported by Tom Tromey.
+
+Sat Nov 25 16:12:01 1995 Franc,ois Pinard <pinard@iro.umontreal.ca>
+
+ * hash-string.h: Capitalize arguments of macros.
+
+Sat Nov 25 12:01:36 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (DISTFILES): Prevent files names longer than 13
+ characters. libintl.h.glibc->libintl.glibc,
+ libintl.h.install->libintl.inst. Reported by Joshua R. Poulson.
+
+Sat Nov 25 11:31:12 1995 Eric Backus <ericb@lsid.hp.com>
+
+ * dcgettext.c: Fix bug in preprocessor conditionals.
+
+Sat Nov 25 02:35:27 1995 Nelson H. F. Beebe <beebe@math.utah.edu>
+
+ * libgettext.h: Solaris cc does not understand
+ #if !SYMBOL1 && !SYMBOL2. Sad but true.
+
+Thu Nov 23 16:22:14 1995 Ulrich Drepper <drepper@myware>
+
+ * hash-string.h (hash_string):
+ Fix for machine with >32 bit `unsigned long's.
+
+ * dcgettext.c (DCGETTEXT):
+ Fix horrible bug in loop for alternative translation.
+
+Thu Nov 23 01:45:29 1995 Ulrich Drepper <drepper@myware>
+
+ * po2tbl.sed.in, linux-msg.sed, xopen-msg.sed:
+ Some further simplifications in message number generation.
+
+Mon Nov 20 21:08:43 1995 Ulrich Drepper <drepper@myware>
+
+ * libintl.h.glibc: Use __const instead of const in prototypes.
+
+ * Makefile.in (install-src):
+ Install libintl.h.install instead of libintl.h. This
+ is a stripped-down version. Suggested by Peter Miller.
+
+ * libintl.h.install, libintl.h.glibc: Initial revision.
+
+ * localealias.c (_nl_expand_alias, read_alias_file):
+ Protect prototypes in type casts by __P.
+
+Tue Nov 14 16:43:58 1995 Ulrich Drepper <drepper@myware>
+
+ * hash-string.h: Correct prototype for hash_string.
+
+Sun Nov 12 12:42:30 1995 Ulrich Drepper <drepper@myware>
+
+ * hash-string.h (hash_string): Add prototype.
+
+ * gettextP.h: Fix copyright.
+ (SWAP): Add prototype.
+
+Wed Nov 8 22:56:33 1995 Ulrich Drepper <drepper@myware>
+
+ * localealias.c (read_alias_file): Forgot sizeof.
+ Avoid calling *printf function. This introduces a big overhead.
+ Patch by Roland McGrath.
+
+Tue Nov 7 14:21:08 1995 Ulrich Drepper <drepper@myware>
+
+ * finddomain.c, cat-compat.c: Wrong indentation in #if for stpcpy.
+
+ * finddomain.c (stpcpy):
+ Define substitution function local. The macro was to flaky.
+
+ * cat-compat.c: Fix typo.
+
+ * xopen-msg.sed, linux-msg.sed:
+ While bringing message number to right place only accept digits.
+
+ * linux-msg.sed, xopen-msg.sed: Now that the counter does not have
+ leading 0s we don't need to remove them. Reported by Marcus
+ Daniels.
+
+ * Makefile.in (../po/cat-id-tbl.o): Use $(top_srdir) in
+ dependency. Reported by Marcus Daniels.
+
+ * cat-compat.c: (stpcpy) [!_LIBC && !HAVE_STPCPY]: Define replacement.
+ Generally cleanup using #if instead of #ifndef.
+
+ * Makefile.in: Correct typos in comment. By Franc,ois Pinard.
+
+Mon Nov 6 00:27:02 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (install-src): Don't install libintl.h and libintl.a
+ if we use an available gettext implementation.
+
+Sun Nov 5 22:02:08 1995 Ulrich Drepper <drepper@myware>
+
+ * libgettext.h: Fix typo: HAVE_CATGETTS -> HAVE_CATGETS. Reported
+ by Franc,ois Pinard.
+
+ * libgettext.h: Use #if instead of #ifdef/#ifndef.
+
+ * finddomain.c:
+ Comments describing what has to be done should start with FIXME.
+
+Sun Nov 5 19:38:01 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (DISTFILES): Split. Use DISTFILES with normal meaning.
+ DISTFILES.common names the files common to both dist goals.
+ DISTFILES.gettext are the files only distributed in GNU gettext.
+
+Sun Nov 5 17:32:54 1995 Ulrich Drepper <drepper@myware>
+
+ * dcgettext.c (DCGETTEXT): Correct searching in derived locales.
+ This was necessary since a change in _nl_find_msg several weeks
+ ago. I really don't know this is still not fixed.
+
+Sun Nov 5 12:43:12 1995 Ulrich Drepper <drepper@myware>
+
+ * loadmsgcat.c (_nl_load_domain): Test for FILENAME == NULL. This
+ might mark a special condition.
+
+ * finddomain.c (make_entry_rec): Don't make illegal entry as decided.
+
+ * Makefile.in (dist): Suppress error message when ln failed.
+ Get files from $(srcdir) explicitly.
+
+ * libgettext.h (gettext_const): Rename to gettext_noop.
+
+Fri Nov 3 07:36:50 1995 Ulrich Drepper <drepper@myware>
+
+ * finddomain.c (make_entry_rec):
+ Protect against wrong locale names by testing mask.
+
+ * libgettext.h (gettext_const): Add macro definition.
+ Capitalize macro arguments.
+
+Thu Nov 2 23:15:51 1995 Ulrich Drepper <drepper@myware>
+
+ * finddomain.c (_nl_find_domain):
+ Test for pointer != NULL before accessing value.
+ Reported by Tom Tromey.
+
+ * gettext.c (NULL):
+ Define as (void*)0 instad of 0. Reported by Franc,ois Pinard.
+
+Mon Oct 30 21:28:52 1995 Ulrich Drepper <drepper@myware>
+
+ * po2tbl.sed.in: Serious typo bug fixed by Jim Meyering.
+
+Sat Oct 28 23:20:47 1995 Ulrich Drepper <drepper@myware>
+
+ * libgettext.h: Disable dcgettext optimization for Solaris 2.3.
+
+ * localealias.c (alias_compare):
+ Peter Miller reported that tolower in some systems is
+ even dumber than I thought. Protect call by `isupper'.
+
+Fri Oct 27 22:22:51 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (libdir, includedir): New variables.
+ (install-src): Install libintl.a and libintl.h in correct dirs.
+
+Fri Oct 27 22:07:29 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (SOURCES): Fix typo: intrl.compat.c -> intl-compat.c.
+
+ * po2tbl.sed.in: Patch for buggy SEDs by Christian von Roques.
+
+ * localealias.c:
+ Fix typo and superflous test. Reported by Christian von Roques.
+
+Fri Oct 6 11:52:05 1995 Ulrich Drepper <drepper@myware>
+
+ * finddomain.c (_nl_find_domain):
+ Correct some remainder from the pre-CEN syntax. Now
+ we don't have a constant number of successors anymore.
+
+Wed Sep 27 21:41:13 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (DISTFILES): Add libintl.h.glibc.
+
+ * Makefile.in (dist-libc): Add goal for packing sources for glibc.
+ (COMSRCS, COMHDRS): Splitted to separate sources shared with glibc.
+
+ * loadmsgcat.c: Forget to continue #if line.
+
+ * localealias.c:
+ [_LIBC]: Rename strcasecmp to __strcasecmp to keep ANSI C name
+ space clean.
+
+ * dcgettext.c, finddomain.c: Better comment to last change.
+
+ * loadmsgcat.c:
+ [_LIBC]: Rename fstat, open, close, read, mmap, and munmap to
+ __fstat, __open, __close, __read, __mmap, and __munmap resp
+ to keep ANSI C name space clean.
+
+ * finddomain.c:
+ [_LIBC]: Rename stpcpy to __stpcpy to keep ANSI C name space clean.
+
+ * dcgettext.c:
+ [_LIBC]: Rename getced and stpcpy to __getcwd and __stpcpy resp to
+ keep ANSI C name space clean.
+
+ * libgettext.h:
+ Include sys/types.h for those old SysV systems out there.
+ Reported by Francesco Potorti`.
+
+ * loadmsgcat.c (use_mmap): Define if compiled for glibc.
+
+ * bindtextdom.c: Include all those standard headers
+ unconditionally if _LIBC is defined.
+
+ * finddomain.c: Fix 2 times defiend -> defined.
+
+ * textdomain.c: Include libintl.h instead of libgettext.h when
+ compiling for glibc. Include all those standard headers
+ unconditionally if _LIBC is defined.
+
+ * localealias.c, loadmsgcat.c: Prepare to be compiled in glibc.
+
+ * gettext.c:
+ Include libintl.h instead of libgettext.h when compiling for glibc.
+ Get NULL from stddef.h if we compile for glibc.
+
+ * finddomain.c: Include libintl.h instead of libgettext.h when
+ compiling for glibc. Include all those standard headers
+ unconditionally if _LIBC is defined.
+
+ * dcgettext.c: Include all those standard headers unconditionally
+ if _LIBC is defined.
+
+ * dgettext.c: If compiled in glibc include libintl.h instead of
+ libgettext.h.
+ (locale.h): Don't rely on HAVE_LOCALE_H when compiling for glibc.
+
+ * dcgettext.c: If compiled in glibc include libintl.h instead of
+ libgettext.h.
+ (getcwd): Don't rely on HAVE_GETCWD when compiling for glibc.
+
+ * bindtextdom.c:
+ If compiled in glibc include libintl.h instead of libgettext.h.
+
+Mon Sep 25 22:23:06 1995 Ulrich Drepper <drepper@myware>
+
+ * localealias.c (_nl_expand_alias): Don't call bsearch if NMAP <= 0.
+ Reported by Marcus Daniels.
+
+ * cat-compat.c (bindtextdomain):
+ String used in putenv must not be recycled.
+ Reported by Marcus Daniels.
+
+ * libgettext.h (__USE_GNU_GETTEXT):
+ Additional symbol to signal that we use GNU gettext
+ library.
+
+ * cat-compat.c (bindtextdomain):
+ Fix bug with the strange stpcpy replacement.
+ Reported by Nelson Beebe.
+
+Sat Sep 23 08:23:51 1995 Ulrich Drepper <drepper@myware>
+
+ * cat-compat.c: Include <string.h> for stpcpy prototype.
+
+ * localealias.c (read_alias_file):
+ While expand strdup code temporary variable `cp' hided
+ higher level variable with same name. Rename to `tp'.
+
+ * textdomain.c (textdomain):
+ Avoid warning by using temporary variable in strdup code.
+
+ * finddomain.c (_nl_find_domain): Remove unused variable `application'.
+
+Thu Sep 21 15:51:44 1995 Ulrich Drepper <drepper@myware>
+
+ * localealias.c (alias_compare):
+ Use strcasecmp() only if available. Else use
+ implementation in place.
+
+ * intl-compat.c:
+ Wrapper functions now call *__ functions instead of __*.
+
+ * libgettext.h: Declare prototypes for *__ functions instead for __*.
+
+ * cat-compat.c, loadmsgcat.c:
+ Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
+ of the standard libc and so prevent libintl.a from being used
+ standalone.
+
+ * bindtextdom.c:
+ Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
+ of the standard libc and so prevent libintl.a from being used
+ standalone.
+ Rename to bindtextdomain__ if not used in GNU C Library.
+
+ * dgettext.c:
+ Rename function to dgettext__ if not used in GNU C Library.
+
+ * gettext.c:
+ Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
+ of the standard libc and so prevent libintl.a from being used
+ standalone.
+ Functions now called gettext__ if not used in GNU C Library.
+
+ * dcgettext.c, localealias.c, textdomain.c, finddomain.c:
+ Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
+ of the standard libc and so prevent libintl.a from being used
+ standalone.
+
+Sun Sep 17 23:14:49 1995 Ulrich Drepper <drepper@myware>
+
+ * finddomain.c: Correct some bugs in handling of CEN standard
+ locale definitions.
+
+Thu Sep 7 01:49:28 1995 Ulrich Drepper <drepper@myware>
+
+ * finddomain.c: Implement CEN syntax.
+
+ * gettextP.h (loaded_domain): Extend number of successors to 31.
+
+Sat Aug 19 19:25:29 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (aliaspath): Remove path to X11 locale dir.
+
+ * Makefile.in: Make install-src depend on install. This helps
+ gettext to install the sources and other packages can use the
+ install goal.
+
+Sat Aug 19 15:19:33 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (uninstall): Remove stuff installed by install-src.
+
+Tue Aug 15 13:13:53 1995 Ulrich Drepper <drepper@myware>
+
+ * VERSION.in: Initial revision.
+
+ * Makefile.in (DISTFILES):
+ Add VERSION file. This is not necessary for gettext, but
+ for other packages using this library.
+
+Tue Aug 15 06:16:44 1995 Ulrich Drepper <drepper@myware>
+
+ * gettextP.h (_nl_find_domain):
+ New prototype after changing search strategy.
+
+ * finddomain.c (_nl_find_domain):
+ We now try only to find a specified catalog. Fall back to other
+ catalogs listed in the locale list is now done in __dcgettext.
+
+ * dcgettext.c (__dcgettext):
+ Now we provide message fall back even to different languages.
+ I.e. if a message is not available in one language all the other
+ in the locale list a tried. Formerly fall back was only possible
+ within one language. Implemented by moving one loop from
+ _nl_find_domain to here.
+
+Mon Aug 14 23:45:50 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (gettextsrcdir):
+ Directory where source of GNU gettext library are made
+ available.
+ (INSTALL, INSTALL_DATA): Programs used for installing sources.
+ (gettext-src): New. Rule to install GNU gettext sources for use in
+ gettextize shell script.
+
+Sun Aug 13 14:40:48 1995 Ulrich Drepper <drepper@myware>
+
+ * loadmsgcat.c (_nl_load_domain):
+ Use mmap for loading only when munmap function is
+ also available.
+
+ * Makefile.in (install): Depend on `all' goal.
+
+Wed Aug 9 11:04:33 1995 Ulrich Drepper <drepper@myware>
+
+ * localealias.c (read_alias_file):
+ Do not overwrite '\n' when terminating alias value string.
+
+ * localealias.c (read_alias_file):
+ Handle long lines. Ignore the rest not fitting in
+ the buffer after the initial `fgets' call.
+
+Wed Aug 9 00:54:29 1995 Ulrich Drepper <drepper@myware>
+
+ * gettextP.h (_nl_load_domain):
+ Add prototype, replacing prototype for _nl_load_msg_cat.
+
+ * finddomain.c (_nl_find_domain):
+ Remove unneeded variable filename and filename_len.
+ (expand_alias): Remove prototype because functions does not
+ exist anymore.
+
+ * localealias.c (read_alias_file):
+ Change type of fname_len parameter to int.
+ (xmalloc): Add prototype.
+
+ * loadmsgcat.c: Better prototypes for xmalloc.
+
+Tue Aug 8 22:30:39 1995 Ulrich Drepper <drepper@myware>
+
+ * finddomain.c (_nl_find_domain):
+ Allow alias name to be constructed from the four components.
+
+ * Makefile.in (aliaspath): New variable. Set to preliminary value.
+ (SOURCES): Add localealias.c.
+ (OBJECTS): Add localealias.o.
+
+ * gettextP.h: Add prototype for _nl_expand_alias.
+
+ * finddomain.c: Aliasing handled in intl/localealias.c.
+
+ * localealias.c: Aliasing for locale names.
+
+ * bindtextdom.c: Better prototypes for xmalloc and xstrdup.
+
+Mon Aug 7 23:47:42 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (DISTFILES): gettext.perl is now found in misc/.
+
+ * cat-compat.c (bindtextdomain):
+ Correct implementation. dirname parameter was not used.
+ Reported by Marcus Daniels.
+
+ * gettextP.h (loaded_domain):
+ New fields `successor' and `decided' for oo, lazy
+ message handling implementation.
+
+ * dcgettext.c:
+ Adopt for oo, lazy message handliing.
+ Now we can inherit translations from less specific locales.
+ (find_msg): New function.
+
+ * loadmsgcat.c, finddomain.c:
+ Complete rewrite. Implement oo, lazy message handling :-).
+ We now have an additional environment variable `LANGUAGE' with
+ a higher priority than LC_ALL for the LC_MESSAGE locale.
+ Here we can set a colon separated list of specifications each
+ of the form `language[_territory[.codeset]][@modifier]'.
+
+Sat Aug 5 09:55:42 1995 Ulrich Drepper <drepper@myware>
+
+ * finddomain.c (unistd.h):
+ Include to get _PC_PATH_MAX defined on system having it.
+
+Fri Aug 4 22:42:00 1995 Ulrich Drepper <drepper@myware>
+
+ * finddomain.c (stpcpy): Include prototype.
+
+ * Makefile.in (dist): Remove `copying instead' message.
+
+Wed Aug 2 18:52:03 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (ID, TAGS): Do not use $^.
+
+Tue Aug 1 20:07:11 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (TAGS, ID): Use $^ as command argument.
+ (TAGS): Give etags -o option t write to current directory,
+ not $(srcdir).
+ (ID): Use $(srcdir) instead os $(top_srcdir)/src.
+ (distclean): Remove ID.
+
+Sun Jul 30 11:51:46 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (gnulocaledir):
+ New variable, always using share/ for data directory.
+ (DEFS): Add GNULOCALEDIR, used in finddomain.c.
+
+ * finddomain.c (_nl_default_dirname):
+ Set to GNULOCALEDIR, because it always has to point
+ to the directory where GNU gettext Library writes it to.
+
+ * intl-compat.c (textdomain, bindtextdomain):
+ Undefine macros before function definition.
+
+Sat Jul 22 01:10:02 1995 Ulrich Drepper <drepper@myware>
+
+ * libgettext.h (_LIBINTL_H):
+ Protect definition in case where this file is included as
+ libgettext.h on Solaris machines. Add comment about this.
+
+Wed Jul 19 02:36:42 1995 Ulrich Drepper <drepper@myware>
+
+ * intl-compat.c (textdomain): Correct typo.
+
+Wed Jul 19 01:51:35 1995 Ulrich Drepper <drepper@myware>
+
+ * dcgettext.c (dcgettext): Function now called __dcgettext.
+
+ * dgettext.c (dgettext): Now called __dgettext and calls
+ __dcgettext.
+
+ * gettext.c (gettext):
+ Function now called __gettext and calls __dgettext.
+
+ * textdomain.c (textdomain): Function now called __textdomain.
+
+ * bindtextdom.c (bindtextdomain): Function now called
+ __bindtextdomain.
+
+ * intl-compat.c: Initial revision.
+
+ * Makefile.in (SOURCES): Add intl-compat.c.
+ (OBJECTS): We always compile the GNU gettext library functions.
+ OBJECTS contains all objects but cat-compat.o, ../po/cat-if-tbl.o,
+ and intl-compat.o.
+ (GETTOBJS): Contains now only intl-compat.o.
+
+ * libgettext.h:
+ Re-include protection matches dualistic character of libgettext.h.
+ For all functions in GNU gettext library define __ counter part.
+
+ * finddomain.c (strchr): Define as index if not found in C library.
+ (_nl_find_domain): For relative paths paste / in between.
+
+Tue Jul 18 16:37:45 1995 Ulrich Drepper <drepper@myware>
+
+ * loadmsgcat.c, finddomain.c: Add inclusion of sys/types.h.
+
+ * xopen-msg.sed: Fix bug with `msgstr ""' lines.
+ A little bit better comments.
+
+Tue Jul 18 01:18:27 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in:
+ po-mode.el, makelinks, combine-sh are now found in ../misc.
+
+ * po-mode.el, makelinks, combine-sh, elisp-comp:
+ Moved to ../misc/.
+
+ * libgettext.h, gettextP.h, gettext.h: Uniform test for __STDC__.
+
+Sun Jul 16 22:33:02 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (INSTALL, INSTALL_DATA): New variables.
+ (install-data, uninstall): Install/uninstall .elc file.
+
+ * po-mode.el (Installation comment):
+ Add .pox as possible extension of .po files.
+
+Sun Jul 16 13:23:27 1995 Ulrich Drepper <drepper@myware>
+
+ * elisp-comp: Complete new version by Franc,ois: This does not
+ fail when not compiling in the source directory.
+
+Sun Jul 16 00:12:17 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (../po/cat-id-tbl.o):
+ Use $(MAKE) instead of make for recursive make.
+
+ * Makefile.in (.el.elc): Use $(SHELL) instead of /bin/sh.
+ (install-exec): Add missing dummy goal.
+ (install-data, uninstall): @ in multi-line shell command at
+ beginning, not in front of echo. Reported by Eric Backus.
+
+Sat Jul 15 00:21:28 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (DISTFILES):
+ Rename libgettext.perl to gettext.perl to fit in 14 chars
+ file systems.
+
+ * gettext.perl:
+ Rename to gettext.perl to fit in 14 chars file systems.
+
+Thu Jul 13 23:17:20 1995 Ulrich Drepper <drepper@myware>
+
+ * cat-compat.c: If !STDC_HEADERS try to include malloc.h.
+
+Thu Jul 13 20:55:02 1995 Ulrich Drepper <drepper@myware>
+
+ * po2tbl.sed.in: Pretty printing.
+
+ * linux-msg.sed, xopen-msg.sed:
+ Correct bugs with handling substitute flags in branches.
+
+ * hash-string.h (hash_string):
+ Old K&R compilers don't under stand `unsigned char'.
+
+ * gettext.h (nls_uint32):
+ Some old K&R compilers (eg HP) don't understand `unsigned int'.
+
+ * cat-compat.c (msg_to_cat_id): De-ANSI-fy prototypes.
+
+Thu Jul 13 01:34:33 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (ELCFILES): New variable.
+ (DISTFILES): Add elisp-comp.
+ Add implicit rule for .el -> .elc compilation.
+ (install-data): install $ELCFILES
+ (clean): renamed po-to-tbl and po-to-msg to po2tbl and po2msg resp.
+
+ * elisp-comp: Initial revision
+
+Wed Jul 12 16:14:52 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in:
+ cat-id-tbl.c is now found in po/. This enables us to use an identical
+ intl/ directory in all packages.
+
+ * dcgettext.c (dcgettext): hashing does not work for table size <= 2.
+
+ * textdomain.c: fix typo (#if def -> #if defined)
+
+Tue Jul 11 18:44:43 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in (stamp-cat-id): use top_srcdir to address source files
+ (DISTFILES,distclean): move tupdate.perl to src/
+
+ * po-to-tbl.sed.in:
+ add additional jump to clear change flag to recognize multiline strings
+
+Tue Jul 11 01:32:50 1995 Ulrich Drepper <drepper@myware>
+
+ * textdomain.c: Protect inclusion of stdlib.h and string.h.
+
+ * loadmsgcat.c: Protect inclusion of stdlib.h.
+
+ * libgettext.h: Protect inclusion of locale.h.
+ Allow use in C++ programs.
+ Define NULL is not happened already.
+
+ * Makefile.in (DISTFILES): ship po-to-tbl.sed.in instead of
+ po-to-tbl.sed.
+ (distclean): remove po-to-tbl.sed and tupdate.perl.
+
+ * tupdate.perl.in: Substitute Perl path even in exec line.
+ Don't include entries without translation from old .po file.
+
+Tue Jul 4 00:41:51 1995 Ulrich Drepper <drepper@myware>
+
+ * tupdate.perl.in: use "Updated: " in msgid "".
+
+ * cat-compat.c: Fix typo (LOCALDIR -> LOCALEDIR).
+ Define getenv if !__STDC__.
+
+ * bindtextdom.c: Protect stdlib.h and string.h inclusion.
+ Define free if !__STDC__.
+
+ * finddomain.c: Change DEF_MSG_DOM_DIR to LOCALEDIR.
+ Define free if !__STDC__.
+
+ * cat-compat.c: Change DEF_MSG_DOM_DIR to LOCALEDIR.
+
+Mon Jul 3 23:56:30 1995 Ulrich Drepper <drepper@myware>
+
+ * Makefile.in: Use LOCALEDIR instead of DEF_MSG_DOM_DIR.
+ Remove unneeded $(srcdir) from Makefile.in dependency.
+
+ * makelinks: Add copyright and short description.
+
+ * po-mode.el: Last version for 0.7.
+
+ * tupdate.perl.in: Fix die message.
+
+ * dcgettext.c: Protect include of string.h.
+
+ * gettext.c: Protect include of stdlib.h and further tries to get NULL.
+
+ * finddomain.c: Some corrections in includes.
+
+ * Makefile.in (INCLUDES): Prune list correct path to Makefile.in.
+
+ * po-to-tbl.sed: Adopt for new .po file format.
+
+ * linux-msg.sed, xopen-msg.sed: Adopt for new .po file format.
+
+Sun Jul 2 23:55:03 1995 Ulrich Drepper <drepper@myware>
+
+ * tupdate.perl.in: Complete rewrite for new .po file format.
+
+Sun Jul 2 02:06:50 1995 Ulrich Drepper <drepper@myware>
+
+ * First official release. This directory contains all the code
+ needed to internationalize own packages. It provides functions
+ which allow to use the X/Open catgets function with an interface
+ like the Uniforum gettext function. For system which does not
+ have neither of those a complete implementation is provided.
diff --git a/apps/X11/InstallMgr/intl/Makefile b/apps/X11/InstallMgr/intl/Makefile
new file mode 100644
index 0000000..80f56ad
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/Makefile
@@ -0,0 +1,214 @@
+# Generated automatically from Makefile.in by configure.
+# Makefile for directory with message catalog handling in GNU NLS Utilities.
+# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+#
+# 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, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+PACKAGE = installmgr
+VERSION = 0.1
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = ..
+top_builddir = ..
+
+prefix = /usr/local
+exec_prefix = ${prefix}
+transform = s,x,x,
+libdir = $(exec_prefix)/lib
+includedir = $(prefix)/include
+datadir = $(prefix)/share
+localedir = $(datadir)/locale
+gnulocaledir = $(prefix)/share/locale
+gettextsrcdir = ${prefix}/share/gettext/intl
+aliaspath = $(localedir):.
+subdir = intl
+
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+MKINSTALLDIRS = ./mkinstalldirs
+
+l =
+
+AR = ar
+CC = gcc
+LIBTOOL = @LIBTOOL@
+RANLIB = ranlib
+
+DEFS = -DLOCALEDIR=\"$(localedir)\" -DGNULOCALEDIR=\"$(gnulocaledir)\" \
+-DLOCALE_ALIAS_PATH=\"$(aliaspath)\" -DHAVE_CONFIG_H
+CPPFLAGS = -I/usr/lib/glib/include -I/usr/X11R6/include
+CFLAGS = -g -O2 -Wall -Wunused
+LDFLAGS =
+
+COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
+
+HEADERS = $(COMHDRS) libgettext.h loadinfo.h
+COMHDRS = gettext.h gettextP.h hash-string.h
+SOURCES = $(COMSRCS) intl-compat.c cat-compat.c
+COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \
+finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \
+explodename.c
+OBJECTS = bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \
+finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \
+explodename.$lo
+CATOBJS = cat-compat.$lo ../po/cat-id-tbl.$lo
+GETTOBJS = intl-compat.$lo
+DISTFILES.common = ChangeLog Makefile.in linux-msg.sed po2tbl.sed.in \
+xopen-msg.sed $(HEADERS) $(SOURCES)
+DISTFILES.normal = VERSION
+DISTFILES.gettext = libintl.glibc intlh.inst.in
+
+.SUFFIXES:
+.SUFFIXES: .c .o .lo
+.c.o:
+ $(COMPILE) $<
+.c.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) $<
+
+INCLUDES = -I.. -I. -I$(top_srcdir)/intl -I$(top_srcdir)/lib
+
+all: all-no
+
+all-yes: libintl.$la intlh.inst
+all-no:
+
+libintl.a: $(OBJECTS)
+ rm -f $@
+ $(AR) cru $@ $(OBJECTS)
+ $(RANLIB) $@
+
+libintl.la: $(OBJECTS)
+ $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o $@ $(OBJECTS) \
+ -version-info 1:0 -rpath $(libdir)
+
+../po/cat-id-tbl.$lo: ../po/cat-id-tbl.c $(top_srcdir)/po/$(PACKAGE).pot
+ cd ../po && $(MAKE) cat-id-tbl.$lo
+
+check: all
+
+# This installation goal is only used in GNU gettext. Packages which
+# only use the library should use install instead.
+
+# We must not install the libintl.h/libintl.a files if we are on a
+# system which has the gettext() function in its C library or in a
+# separate library or use the catgets interface. A special case is
+# where configure found a previously installed GNU gettext library.
+# If you want to use the one which comes with this version of the
+# package, you have to use `configure --with-included-gettext'.
+install: install-exec install-data
+install-exec: all
+ if test "$(PACKAGE)" = "gettext" \
+ && test '' = '$(GETTOBJS)'; then \
+ if test -r $(MKINSTALLDIRS); then \
+ $(MKINSTALLDIRS) $(libdir) $(includedir); \
+ else \
+ $(top_srcdir)/mkinstalldirs $(libdir) $(includedir); \
+ fi; \
+ $(INSTALL_DATA) intlh.inst $(includedir)/libintl.h; \
+ $(INSTALL_DATA) libintl.a $(libdir)/libintl.a; \
+ else \
+ : ; \
+ fi
+install-data: all
+ if test "$(PACKAGE)" = "gettext"; then \
+ if test -r $(MKINSTALLDIRS); then \
+ $(MKINSTALLDIRS) $(gettextsrcdir); \
+ else \
+ $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
+ fi; \
+ $(INSTALL_DATA) VERSION $(gettextsrcdir)/VERSION; \
+ dists="$(DISTFILES.common)"; \
+ for file in $$dists; do \
+ $(INSTALL_DATA) $(srcdir)/$$file $(gettextsrcdir)/$$file; \
+ done; \
+ else \
+ : ; \
+ fi
+
+# Define this as empty until I found a useful application.
+installcheck:
+
+uninstall:
+ dists="$(DISTFILES.common)"; \
+ for file in $$dists; do \
+ rm -f $(gettextsrcdir)/$$file; \
+ done
+
+info dvi:
+
+$(OBJECTS): ../config.h libgettext.h
+bindtextdom.$lo finddomain.$lo loadmsgcat.$lo: gettextP.h gettext.h loadinfo.h
+dcgettext.$lo: gettextP.h gettext.h hash-string.h loadinfo.h
+
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES)
+ here=`pwd`; cd $(srcdir) && etags -o $$here/TAGS $(HEADERS) $(SOURCES)
+
+id: ID
+
+ID: $(HEADERS) $(SOURCES)
+ here=`pwd`; cd $(srcdir) && mkid -f$$here/ID $(HEADERS) $(SOURCES)
+
+
+mostlyclean:
+ rm -f *.a *.o *.lo core core.*
+
+clean: mostlyclean
+
+distclean: clean
+ rm -f Makefile ID TAGS po2msg.sed po2tbl.sed
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+
+# GNU gettext needs not contain the file `VERSION' but contains some
+# other files which should not be distributed in other packages.
+distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir: Makefile $(DISTFILES)
+ if test "$(PACKAGE)" = gettext; then \
+ additional="$(DISTFILES.gettext)"; \
+ else \
+ additional="$(DISTFILES.normal)"; \
+ fi; \
+ for file in $(DISTFILES.common) $$additional; do \
+ ln $(srcdir)/$$file $(distdir) 2> /dev/null \
+ || cp -p $(srcdir)/$$file $(distdir); \
+ done
+
+dist-libc:
+ tar zcvf intl-glibc.tar.gz $(COMSRCS) $(COMHDRS) libintl.h.glibc
+
+Makefile: Makefile.in ../config.status
+ cd .. \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+# The dependency for intlh.inst is different in gettext and all other
+# packages. Because we cannot you GNU make features we have to solve
+# the problem while rewriting Makefile.in.
+#YES#intlh.inst: intlh.inst.in ../config.status
+#YES# cd .. \
+#YES# && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= \
+#YES# $(SHELL) ./config.status
+.PHONY: intlh.inst
+intlh.inst:
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/apps/X11/InstallMgr/intl/Makefile.in b/apps/X11/InstallMgr/intl/Makefile.in
new file mode 100644
index 0000000..4bdb186
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/Makefile.in
@@ -0,0 +1,214 @@
+# Makefile for directory with message catalog handling in GNU NLS Utilities.
+# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+#
+# 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, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+SHELL = /bin/sh
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+top_builddir = ..
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+transform = @program_transform_name@
+libdir = $(exec_prefix)/lib
+includedir = $(prefix)/include
+datadir = $(prefix)/@DATADIRNAME@
+localedir = $(datadir)/locale
+gnulocaledir = $(prefix)/share/locale
+gettextsrcdir = @datadir@/gettext/intl
+aliaspath = $(localedir):.
+subdir = intl
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+
+l = @l@
+
+AR = ar
+CC = @CC@
+LIBTOOL = @LIBTOOL@
+RANLIB = @RANLIB@
+
+DEFS = -DLOCALEDIR=\"$(localedir)\" -DGNULOCALEDIR=\"$(gnulocaledir)\" \
+-DLOCALE_ALIAS_PATH=\"$(aliaspath)\" @DEFS@
+CPPFLAGS = @CPPFLAGS@
+CFLAGS = @CFLAGS@
+LDFLAGS = @LDFLAGS@
+
+COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
+
+HEADERS = $(COMHDRS) libgettext.h loadinfo.h
+COMHDRS = gettext.h gettextP.h hash-string.h
+SOURCES = $(COMSRCS) intl-compat.c cat-compat.c
+COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \
+finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \
+explodename.c
+OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \
+finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \
+explodename.$lo
+CATOBJS = cat-compat.$lo ../po/cat-id-tbl.$lo
+GETTOBJS = intl-compat.$lo
+DISTFILES.common = ChangeLog Makefile.in linux-msg.sed po2tbl.sed.in \
+xopen-msg.sed $(HEADERS) $(SOURCES)
+DISTFILES.normal = VERSION
+DISTFILES.gettext = libintl.glibc intlh.inst.in
+
+.SUFFIXES:
+.SUFFIXES: .c .o .lo
+.c.o:
+ $(COMPILE) $<
+.c.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) $<
+
+INCLUDES = -I.. -I. -I$(top_srcdir)/intl -I$(top_srcdir)/lib
+
+all: all-@USE_INCLUDED_LIBINTL@
+
+all-yes: libintl.$la intlh.inst
+all-no:
+
+libintl.a: $(OBJECTS)
+ rm -f $@
+ $(AR) cru $@ $(OBJECTS)
+ $(RANLIB) $@
+
+libintl.la: $(OBJECTS)
+ $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o $@ $(OBJECTS) \
+ -version-info 1:0 -rpath $(libdir)
+
+../po/cat-id-tbl.$lo: ../po/cat-id-tbl.c $(top_srcdir)/po/$(PACKAGE).pot
+ cd ../po && $(MAKE) cat-id-tbl.$lo
+
+check: all
+
+# This installation goal is only used in GNU gettext. Packages which
+# only use the library should use install instead.
+
+# We must not install the libintl.h/libintl.a files if we are on a
+# system which has the gettext() function in its C library or in a
+# separate library or use the catgets interface. A special case is
+# where configure found a previously installed GNU gettext library.
+# If you want to use the one which comes with this version of the
+# package, you have to use `configure --with-included-gettext'.
+install: install-exec install-data
+install-exec: all
+ if test "$(PACKAGE)" = "gettext" \
+ && test '@INTLOBJS@' = '$(GETTOBJS)'; then \
+ if test -r $(MKINSTALLDIRS); then \
+ $(MKINSTALLDIRS) $(libdir) $(includedir); \
+ else \
+ $(top_srcdir)/mkinstalldirs $(libdir) $(includedir); \
+ fi; \
+ $(INSTALL_DATA) intlh.inst $(includedir)/libintl.h; \
+ $(INSTALL_DATA) libintl.a $(libdir)/libintl.a; \
+ else \
+ : ; \
+ fi
+install-data: all
+ if test "$(PACKAGE)" = "gettext"; then \
+ if test -r $(MKINSTALLDIRS); then \
+ $(MKINSTALLDIRS) $(gettextsrcdir); \
+ else \
+ $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
+ fi; \
+ $(INSTALL_DATA) VERSION $(gettextsrcdir)/VERSION; \
+ dists="$(DISTFILES.common)"; \
+ for file in $$dists; do \
+ $(INSTALL_DATA) $(srcdir)/$$file $(gettextsrcdir)/$$file; \
+ done; \
+ else \
+ : ; \
+ fi
+
+# Define this as empty until I found a useful application.
+installcheck:
+
+uninstall:
+ dists="$(DISTFILES.common)"; \
+ for file in $$dists; do \
+ rm -f $(gettextsrcdir)/$$file; \
+ done
+
+info dvi:
+
+$(OBJECTS): ../config.h libgettext.h
+bindtextdom.$lo finddomain.$lo loadmsgcat.$lo: gettextP.h gettext.h loadinfo.h
+dcgettext.$lo: gettextP.h gettext.h hash-string.h loadinfo.h
+
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES)
+ here=`pwd`; cd $(srcdir) && etags -o $$here/TAGS $(HEADERS) $(SOURCES)
+
+id: ID
+
+ID: $(HEADERS) $(SOURCES)
+ here=`pwd`; cd $(srcdir) && mkid -f$$here/ID $(HEADERS) $(SOURCES)
+
+
+mostlyclean:
+ rm -f *.a *.o *.lo core core.*
+
+clean: mostlyclean
+
+distclean: clean
+ rm -f Makefile ID TAGS po2msg.sed po2tbl.sed
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+
+# GNU gettext needs not contain the file `VERSION' but contains some
+# other files which should not be distributed in other packages.
+distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir: Makefile $(DISTFILES)
+ if test "$(PACKAGE)" = gettext; then \
+ additional="$(DISTFILES.gettext)"; \
+ else \
+ additional="$(DISTFILES.normal)"; \
+ fi; \
+ for file in $(DISTFILES.common) $$additional; do \
+ ln $(srcdir)/$$file $(distdir) 2> /dev/null \
+ || cp -p $(srcdir)/$$file $(distdir); \
+ done
+
+dist-libc:
+ tar zcvf intl-glibc.tar.gz $(COMSRCS) $(COMHDRS) libintl.h.glibc
+
+Makefile: Makefile.in ../config.status
+ cd .. \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+# The dependency for intlh.inst is different in gettext and all other
+# packages. Because we cannot you GNU make features we have to solve
+# the problem while rewriting Makefile.in.
+@GT_YES@intlh.inst: intlh.inst.in ../config.status
+@GT_YES@ cd .. \
+@GT_YES@ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= \
+@GT_YES@ $(SHELL) ./config.status
+@GT_NO@.PHONY: intlh.inst
+@GT_NO@intlh.inst:
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/apps/X11/InstallMgr/intl/VERSION b/apps/X11/InstallMgr/intl/VERSION
new file mode 100644
index 0000000..ee66b06
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/VERSION
@@ -0,0 +1 @@
+GNU gettext library from gettext-0.10.35
diff --git a/apps/X11/InstallMgr/intl/bindtextdom.c b/apps/X11/InstallMgr/intl/bindtextdom.c
new file mode 100644
index 0000000..d9c3f34
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/bindtextdom.c
@@ -0,0 +1,203 @@
+/* Implementation of the bindtextdomain(3) function
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+
+ 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, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#if defined STDC_HEADERS || defined _LIBC
+# include <stdlib.h>
+#else
+# ifdef HAVE_MALLOC_H
+# include <malloc.h>
+# else
+void free ();
+# endif
+#endif
+
+#if defined HAVE_STRING_H || defined _LIBC
+# include <string.h>
+#else
+# include <strings.h>
+# ifndef memcpy
+# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
+# endif
+#endif
+
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgettext.h"
+#endif
+#include "gettext.h"
+#include "gettextP.h"
+
+/* @@ end of prolog @@ */
+
+/* Contains the default location of the message catalogs. */
+extern const char _nl_default_dirname[];
+
+/* List with bindings of specific domains. */
+extern struct binding *_nl_domain_bindings;
+
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define BINDTEXTDOMAIN __bindtextdomain
+# ifndef strdup
+# define strdup(str) __strdup (str)
+# endif
+#else
+# define BINDTEXTDOMAIN bindtextdomain__
+#endif
+
+/* Specify that the DOMAINNAME message catalog will be found
+ in DIRNAME rather than in the system locale data base. */
+char *
+BINDTEXTDOMAIN (domainname, dirname)
+ const char *domainname;
+ const char *dirname;
+{
+ struct binding *binding;
+
+ /* Some sanity checks. */
+ if (domainname == NULL || domainname[0] == '\0')
+ return NULL;
+
+ for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
+ {
+ int compare = strcmp (domainname, binding->domainname);
+ if (compare == 0)
+ /* We found it! */
+ break;
+ if (compare < 0)
+ {
+ /* It is not in the list. */
+ binding = NULL;
+ break;
+ }
+ }
+
+ if (dirname == NULL)
+ /* The current binding has be to returned. */
+ return binding == NULL ? (char *) _nl_default_dirname : binding->dirname;
+
+ if (binding != NULL)
+ {
+ /* The domain is already bound. If the new value and the old
+ one are equal we simply do nothing. Otherwise replace the
+ old binding. */
+ if (strcmp (dirname, binding->dirname) != 0)
+ {
+ char *new_dirname;
+
+ if (strcmp (dirname, _nl_default_dirname) == 0)
+ new_dirname = (char *) _nl_default_dirname;
+ else
+ {
+#if defined _LIBC || defined HAVE_STRDUP
+ new_dirname = strdup (dirname);
+ if (new_dirname == NULL)
+ return NULL;
+#else
+ size_t len = strlen (dirname) + 1;
+ new_dirname = (char *) malloc (len);
+ if (new_dirname == NULL)
+ return NULL;
+
+ memcpy (new_dirname, dirname, len);
+#endif
+ }
+
+ if (binding->dirname != _nl_default_dirname)
+ free (binding->dirname);
+
+ binding->dirname = new_dirname;
+ }
+ }
+ else
+ {
+ /* We have to create a new binding. */
+#if !defined _LIBC && !defined HAVE_STRDUP
+ size_t len;
+#endif
+ struct binding *new_binding =
+ (struct binding *) malloc (sizeof (*new_binding));
+
+ if (new_binding == NULL)
+ return NULL;
+
+#if defined _LIBC || defined HAVE_STRDUP
+ new_binding->domainname = strdup (domainname);
+ if (new_binding->domainname == NULL)
+ return NULL;
+#else
+ len = strlen (domainname) + 1;
+ new_binding->domainname = (char *) malloc (len);
+ if (new_binding->domainname == NULL)
+ return NULL;
+ memcpy (new_binding->domainname, domainname, len);
+#endif
+
+ if (strcmp (dirname, _nl_default_dirname) == 0)
+ new_binding->dirname = (char *) _nl_default_dirname;
+ else
+ {
+#if defined _LIBC || defined HAVE_STRDUP
+ new_binding->dirname = strdup (dirname);
+ if (new_binding->dirname == NULL)
+ return NULL;
+#else
+ len = strlen (dirname) + 1;
+ new_binding->dirname = (char *) malloc (len);
+ if (new_binding->dirname == NULL)
+ return NULL;
+ memcpy (new_binding->dirname, dirname, len);
+#endif
+ }
+
+ /* Now enqueue it. */
+ if (_nl_domain_bindings == NULL
+ || strcmp (domainname, _nl_domain_bindings->domainname) < 0)
+ {
+ new_binding->next = _nl_domain_bindings;
+ _nl_domain_bindings = new_binding;
+ }
+ else
+ {
+ binding = _nl_domain_bindings;
+ while (binding->next != NULL
+ && strcmp (domainname, binding->next->domainname) > 0)
+ binding = binding->next;
+
+ new_binding->next = binding->next;
+ binding->next = new_binding;
+ }
+
+ binding = new_binding;
+ }
+
+ return binding->dirname;
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__bindtextdomain, bindtextdomain);
+#endif
diff --git a/apps/X11/InstallMgr/intl/cat-compat.c b/apps/X11/InstallMgr/intl/cat-compat.c
new file mode 100644
index 0000000..867d901
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/cat-compat.c
@@ -0,0 +1,262 @@
+/* Compatibility code for gettext-using-catgets interface.
+ Copyright (C) 1995, 1997 Free Software Foundation, Inc.
+
+ 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, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <string.h>
+#else
+char *getenv ();
+# ifdef HAVE_MALLOC_H
+# include <malloc.h>
+# endif
+#endif
+
+#ifdef HAVE_NL_TYPES_H
+# include <nl_types.h>
+#endif
+
+#include "libgettext.h"
+
+/* @@ end of prolog @@ */
+
+/* XPG3 defines the result of `setlocale (category, NULL)' as:
+ ``Directs `setlocale()' to query `category' and return the current
+ setting of `local'.''
+ However it does not specify the exact format. And even worse: POSIX
+ defines this not at all. So we can use this feature only on selected
+ system (e.g. those using GNU C Library). */
+#ifdef _LIBC
+# define HAVE_LOCALE_NULL
+#endif
+
+/* The catalog descriptor. */
+static nl_catd catalog = (nl_catd) -1;
+
+/* Name of the default catalog. */
+static const char default_catalog_name[] = "messages";
+
+/* Name of currently used catalog. */
+static const char *catalog_name = default_catalog_name;
+
+/* Get ID for given string. If not found return -1. */
+static int msg_to_cat_id PARAMS ((const char *msg));
+
+/* Substitution for systems lacking this function in their C library. */
+#if !_LIBC && !HAVE_STPCPY
+static char *stpcpy PARAMS ((char *dest, const char *src));
+#endif
+
+
+/* Set currently used domain/catalog. */
+char *
+textdomain (domainname)
+ const char *domainname;
+{
+ nl_catd new_catalog;
+ char *new_name;
+ size_t new_name_len;
+ char *lang;
+
+#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES \
+ && defined HAVE_LOCALE_NULL
+ lang = setlocale (LC_MESSAGES, NULL);
+#else
+ lang = getenv ("LC_ALL");
+ if (lang == NULL || lang[0] == '\0')
+ {
+ lang = getenv ("LC_MESSAGES");
+ if (lang == NULL || lang[0] == '\0')
+ lang = getenv ("LANG");
+ }
+#endif
+ if (lang == NULL || lang[0] == '\0')
+ lang = "C";
+
+ /* See whether name of currently used domain is asked. */
+ if (domainname == NULL)
+ return (char *) catalog_name;
+
+ if (domainname[0] == '\0')
+ domainname = default_catalog_name;
+
+ /* Compute length of added path element. */
+ new_name_len = sizeof (LOCALEDIR) - 1 + 1 + strlen (lang)
+ + sizeof ("/LC_MESSAGES/") - 1 + sizeof (PACKAGE) - 1
+ + sizeof (".cat");
+
+ new_name = (char *) malloc (new_name_len);
+ if (new_name == NULL)
+ return NULL;
+
+ strcpy (new_name, PACKAGE);
+ new_catalog = catopen (new_name, 0);
+
+ if (new_catalog == (nl_catd) -1)
+ {
+ /* NLSPATH search didn't work, try absolute path */
+ sprintf (new_name, "%s/%s/LC_MESSAGES/%s.cat", LOCALEDIR, lang,
+ PACKAGE);
+ new_catalog = catopen (new_name, 0);
+
+ if (new_catalog == (nl_catd) -1)
+ {
+ free (new_name);
+ return (char *) catalog_name;
+ }
+ }
+
+ /* Close old catalog. */
+ if (catalog != (nl_catd) -1)
+ catclose (catalog);
+ if (catalog_name != default_catalog_name)
+ free ((char *) catalog_name);
+
+ catalog = new_catalog;
+ catalog_name = new_name;
+
+ return (char *) catalog_name;
+}
+
+char *
+bindtextdomain (domainname, dirname)
+ const char *domainname;
+ const char *dirname;
+{
+#if HAVE_SETENV || HAVE_PUTENV
+ char *old_val, *new_val, *cp;
+ size_t new_val_len;
+
+ /* This does not make much sense here but to be compatible do it. */
+ if (domainname == NULL)
+ return NULL;
+
+ /* Compute length of added path element. If we use setenv we don't need
+ the first byts for NLSPATH=, but why complicate the code for this
+ peanuts. */
+ new_val_len = sizeof ("NLSPATH=") - 1 + strlen (dirname)
+ + sizeof ("/%L/LC_MESSAGES/%N.cat");
+
+ old_val = getenv ("NLSPATH");
+ if (old_val == NULL || old_val[0] == '\0')
+ {
+ old_val = NULL;
+ new_val_len += 1 + sizeof (LOCALEDIR) - 1
+ + sizeof ("/%L/LC_MESSAGES/%N.cat");
+ }
+ else
+ new_val_len += strlen (old_val);
+
+ new_val = (char *) malloc (new_val_len);
+ if (new_val == NULL)
+ return NULL;
+
+# if HAVE_SETENV
+ cp = new_val;
+# else
+ cp = stpcpy (new_val, "NLSPATH=");
+# endif
+
+ cp = stpcpy (cp, dirname);
+ cp = stpcpy (cp, "/%L/LC_MESSAGES/%N.cat:");
+
+ if (old_val == NULL)
+ {
+# if __STDC__
+ stpcpy (cp, LOCALEDIR "/%L/LC_MESSAGES/%N.cat");
+# else
+
+ cp = stpcpy (cp, LOCALEDIR);
+ stpcpy (cp, "/%L/LC_MESSAGES/%N.cat");
+# endif
+ }
+ else
+ stpcpy (cp, old_val);
+
+# if HAVE_SETENV
+ setenv ("NLSPATH", new_val, 1);
+ free (new_val);
+# else
+ putenv (new_val);
+ /* Do *not* free the environment entry we just entered. It is used
+ from now on. */
+# endif
+
+#endif
+
+ return (char *) domainname;
+}
+
+#undef gettext
+char *
+gettext (msg)
+ const char *msg;
+{
+ int msgid;
+
+ if (msg == NULL || catalog == (nl_catd) -1)
+ return (char *) msg;
+
+ /* Get the message from the catalog. We always use set number 1.
+ The message ID is computed by the function `msg_to_cat_id'
+ which works on the table generated by `po-to-tbl'. */
+ msgid = msg_to_cat_id (msg);
+ if (msgid == -1)
+ return (char *) msg;
+
+ return catgets (catalog, 1, msgid, (char *) msg);
+}
+
+/* Look through the table `_msg_tbl' which has `_msg_tbl_length' entries
+ for the one equal to msg. If it is found return the ID. In case when
+ the string is not found return -1. */
+static int
+msg_to_cat_id (msg)
+ const char *msg;
+{
+ int cnt;
+
+ for (cnt = 0; cnt < _msg_tbl_length; ++cnt)
+ if (strcmp (msg, _msg_tbl[cnt]._msg) == 0)
+ return _msg_tbl[cnt]._msg_number;
+
+ return -1;
+}
+
+
+/* @@ begin of epilog @@ */
+
+/* We don't want libintl.a to depend on any other library. So we
+ avoid the non-standard function stpcpy. In GNU C Library this
+ function is available, though. Also allow the symbol HAVE_STPCPY
+ to be defined. */
+#if !_LIBC && !HAVE_STPCPY
+static char *
+stpcpy (dest, src)
+ char *dest;
+ const char *src;
+{
+ while ((*dest++ = *src++) != '\0')
+ /* Do nothing. */ ;
+ return dest - 1;
+}
+#endif
diff --git a/apps/X11/InstallMgr/intl/dcgettext.c b/apps/X11/InstallMgr/intl/dcgettext.c
new file mode 100644
index 0000000..c4c7a2c
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/dcgettext.c
@@ -0,0 +1,624 @@
+/* Implementation of the dcgettext(3) function.
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+
+ 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, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <sys/types.h>
+
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+# define HAVE_ALLOCA 1
+#else
+# if defined HAVE_ALLOCA_H || defined _LIBC
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca
+char *alloca ();
+# endif
+# endif
+# endif
+#endif
+
+#include <errno.h>
+#ifndef errno
+extern int errno;
+#endif
+#ifndef __set_errno
+# define __set_errno(val) errno = (val)
+#endif
+
+#if defined STDC_HEADERS || defined _LIBC
+# include <stdlib.h>
+#else
+char *getenv ();
+# ifdef HAVE_MALLOC_H
+# include <malloc.h>
+# else
+void free ();
+# endif
+#endif
+
+#if defined HAVE_STRING_H || defined _LIBC
+# ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+# endif
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#if !HAVE_STRCHR && !defined _LIBC
+# ifndef strchr
+# define strchr index
+# endif
+#endif
+
+#if defined HAVE_UNISTD_H || defined _LIBC
+# include <unistd.h>
+#endif
+
+#include "gettext.h"
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgettext.h"
+#endif
+#include "hash-string.h"
+
+/* @@ end of prolog @@ */
+
+#ifdef _LIBC
+/* Rename the non ANSI C functions. This is required by the standard
+ because some ANSI C functions will require linking with this object
+ file and the name space must not be polluted. */
+# define getcwd __getcwd
+# ifndef stpcpy
+# define stpcpy __stpcpy
+# endif
+#else
+# if !defined HAVE_GETCWD
+char *getwd ();
+# define getcwd(buf, max) getwd (buf)
+# else
+char *getcwd ();
+# endif
+# ifndef HAVE_STPCPY
+static char *stpcpy PARAMS ((char *dest, const char *src));
+# endif
+#endif
+
+/* Amount to increase buffer size by in each try. */
+#define PATH_INCR 32
+
+/* The following is from pathmax.h. */
+/* Non-POSIX BSD systems might have gcc's limits.h, which doesn't define
+ PATH_MAX but might cause redefinition warnings when sys/param.h is
+ later included (as on MORE/BSD 4.3). */
+#if defined(_POSIX_VERSION) || (defined(HAVE_LIMITS_H) && !defined(__GNUC__))
+# include <limits.h>
+#endif
+
+#ifndef _POSIX_PATH_MAX
+# define _POSIX_PATH_MAX 255
+#endif
+
+#if !defined(PATH_MAX) && defined(_PC_PATH_MAX)
+# define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 : pathconf ("/", _PC_PATH_MAX))
+#endif
+
+/* Don't include sys/param.h if it already has been. */
+#if defined(HAVE_SYS_PARAM_H) && !defined(PATH_MAX) && !defined(MAXPATHLEN)
+# include <sys/param.h>
+#endif
+
+#if !defined(PATH_MAX) && defined(MAXPATHLEN)
+# define PATH_MAX MAXPATHLEN
+#endif
+
+#ifndef PATH_MAX
+# define PATH_MAX _POSIX_PATH_MAX
+#endif
+
+/* XPG3 defines the result of `setlocale (category, NULL)' as:
+ ``Directs `setlocale()' to query `category' and return the current
+ setting of `local'.''
+ However it does not specify the exact format. And even worse: POSIX
+ defines this not at all. So we can use this feature only on selected
+ system (e.g. those using GNU C Library). */
+#ifdef _LIBC
+# define HAVE_LOCALE_NULL
+#endif
+
+/* Name of the default domain used for gettext(3) prior any call to
+ textdomain(3). The default value for this is "messages". */
+const char _nl_default_default_domain[] = "messages";
+
+/* Value used as the default domain for gettext(3). */
+const char *_nl_current_default_domain = _nl_default_default_domain;
+
+/* Contains the default location of the message catalogs. */
+const char _nl_default_dirname[] = GNULOCALEDIR;
+
+/* List with bindings of specific domains created by bindtextdomain()
+ calls. */
+struct binding *_nl_domain_bindings;
+
+/* Prototypes for local functions. */
+static char *find_msg PARAMS ((struct loaded_l10nfile *domain_file,
+ const char *msgid)) internal_function;
+static const char *category_to_name PARAMS ((int category)) internal_function;
+static const char *guess_category_value PARAMS ((int category,
+ const char *categoryname))
+ internal_function;
+
+
+/* For those loosing systems which don't have `alloca' we have to add
+ some additional code emulating it. */
+#ifdef HAVE_ALLOCA
+/* Nothing has to be done. */
+# define ADD_BLOCK(list, address) /* nothing */
+# define FREE_BLOCKS(list) /* nothing */
+#else
+struct block_list
+{
+ void *address;
+ struct block_list *next;
+};
+# define ADD_BLOCK(list, addr) \
+ do { \
+ struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \
+ /* If we cannot get a free block we cannot add the new element to \
+ the list. */ \
+ if (newp != NULL) { \
+ newp->address = (addr); \
+ newp->next = (list); \
+ (list) = newp; \
+ } \
+ } while (0)
+# define FREE_BLOCKS(list) \
+ do { \
+ while (list != NULL) { \
+ struct block_list *old = list; \
+ list = list->next; \
+ free (old); \
+ } \
+ } while (0)
+# undef alloca
+# define alloca(size) (malloc (size))
+#endif /* have alloca */
+
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define DCGETTEXT __dcgettext
+#else
+# define DCGETTEXT dcgettext__
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
+ locale. */
+char *
+DCGETTEXT (domainname, msgid, category)
+ const char *domainname;
+ const char *msgid;
+ int category;
+{
+#ifndef HAVE_ALLOCA
+ struct block_list *block_list = NULL;
+#endif
+ struct loaded_l10nfile *domain;
+ struct binding *binding;
+ const char *categoryname;
+ const char *categoryvalue;
+ char *dirname, *xdomainname;
+ char *single_locale;
+ char *retval;
+ int saved_errno = errno;
+
+ /* If no real MSGID is given return NULL. */
+ if (msgid == NULL)
+ return NULL;
+
+ /* If DOMAINNAME is NULL, we are interested in the default domain. If
+ CATEGORY is not LC_MESSAGES this might not make much sense but the
+ defintion left this undefined. */
+ if (domainname == NULL)
+ domainname = _nl_current_default_domain;
+
+ /* First find matching binding. */
+ for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
+ {
+ int compare = strcmp (domainname, binding->domainname);
+ if (compare == 0)
+ /* We found it! */
+ break;
+ if (compare < 0)
+ {
+ /* It is not in the list. */
+ binding = NULL;
+ break;
+ }
+ }
+
+ if (binding == NULL)
+ dirname = (char *) _nl_default_dirname;
+ else if (binding->dirname[0] == '/')
+ dirname = binding->dirname;
+ else
+ {
+ /* We have a relative path. Make it absolute now. */
+ size_t dirname_len = strlen (binding->dirname) + 1;
+ size_t path_max;
+ char *ret;
+
+ path_max = (unsigned) PATH_MAX;
+ path_max += 2; /* The getcwd docs say to do this. */
+
+ dirname = (char *) alloca (path_max + dirname_len);
+ ADD_BLOCK (block_list, dirname);
+
+ __set_errno (0);
+ while ((ret = getcwd (dirname, path_max)) == NULL && errno == ERANGE)
+ {
+ path_max += PATH_INCR;
+ dirname = (char *) alloca (path_max + dirname_len);
+ ADD_BLOCK (block_list, dirname);
+ __set_errno (0);
+ }
+
+ if (ret == NULL)
+ {
+ /* We cannot get the current working directory. Don't signal an
+ error but simply return the default string. */
+ FREE_BLOCKS (block_list);
+ __set_errno (saved_errno);
+ return (char *) msgid;
+ }
+
+ stpcpy (stpcpy (strchr (dirname, '\0'), "/"), binding->dirname);
+ }
+
+ /* Now determine the symbolic name of CATEGORY and its value. */
+ categoryname = category_to_name (category);
+ categoryvalue = guess_category_value (category, categoryname);
+
+ xdomainname = (char *) alloca (strlen (categoryname)
+ + strlen (domainname) + 5);
+ ADD_BLOCK (block_list, xdomainname);
+
+ stpcpy (stpcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"),
+ domainname),
+ ".mo");
+
+ /* Creating working area. */
+ single_locale = (char *) alloca (strlen (categoryvalue) + 1);
+ ADD_BLOCK (block_list, single_locale);
+
+
+ /* Search for the given string. This is a loop because we perhaps
+ got an ordered list of languages to consider for th translation. */
+ while (1)
+ {
+ /* Make CATEGORYVALUE point to the next element of the list. */
+ while (categoryvalue[0] != '\0' && categoryvalue[0] == ':')
+ ++categoryvalue;
+ if (categoryvalue[0] == '\0')
+ {
+ /* The whole contents of CATEGORYVALUE has been searched but
+ no valid entry has been found. We solve this situation
+ by implicitly appending a "C" entry, i.e. no translation
+ will take place. */
+ single_locale[0] = 'C';
+ single_locale[1] = '\0';
+ }
+ else
+ {
+ char *cp = single_locale;
+ while (categoryvalue[0] != '\0' && categoryvalue[0] != ':')
+ *cp++ = *categoryvalue++;
+ *cp = '\0';
+ }
+
+ /* If the current locale value is C (or POSIX) we don't load a
+ domain. Return the MSGID. */
+ if (strcmp (single_locale, "C") == 0
+ || strcmp (single_locale, "POSIX") == 0)
+ {
+ FREE_BLOCKS (block_list);
+ __set_errno (saved_errno);
+ return (char *) msgid;
+ }
+
+
+ /* Find structure describing the message catalog matching the
+ DOMAINNAME and CATEGORY. */
+ domain = _nl_find_domain (dirname, single_locale, xdomainname);
+
+ if (domain != NULL)
+ {
+ retval = find_msg (domain, msgid);
+
+ if (retval == NULL)
+ {
+ int cnt;
+
+ for (cnt = 0; domain->successor[cnt] != NULL; ++cnt)
+ {
+ retval = find_msg (domain->successor[cnt], msgid);
+
+ if (retval != NULL)
+ break;
+ }
+ }
+
+ if (retval != NULL)
+ {
+ FREE_BLOCKS (block_list);
+ __set_errno (saved_errno);
+ return retval;
+ }
+ }
+ }
+ /* NOTREACHED */
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__dcgettext, dcgettext);
+#endif
+
+
+static char *
+internal_function
+find_msg (domain_file, msgid)
+ struct loaded_l10nfile *domain_file;
+ const char *msgid;
+{
+ size_t top, act, bottom;
+ struct loaded_domain *domain;
+
+ if (domain_file->decided == 0)
+ _nl_load_domain (domain_file);
+
+ if (domain_file->data == NULL)
+ return NULL;
+
+ domain = (struct loaded_domain *) domain_file->data;
+
+ /* Locate the MSGID and its translation. */
+ if (domain->hash_size > 2 && domain->hash_tab != NULL)
+ {
+ /* Use the hashing table. */
+ nls_uint32 len = strlen (msgid);
+ nls_uint32 hash_val = hash_string (msgid);
+ nls_uint32 idx = hash_val % domain->hash_size;
+ nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2));
+ nls_uint32 nstr = W (domain->must_swap, domain->hash_tab[idx]);
+
+ if (nstr == 0)
+ /* Hash table entry is empty. */
+ return NULL;
+
+ if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len
+ && strcmp (msgid,
+ domain->data + W (domain->must_swap,
+ domain->orig_tab[nstr - 1].offset)) == 0)
+ return (char *) domain->data + W (domain->must_swap,
+ domain->trans_tab[nstr - 1].offset);
+
+ while (1)
+ {
+ if (idx >= domain->hash_size - incr)
+ idx -= domain->hash_size - incr;
+ else
+ idx += incr;
+
+ nstr = W (domain->must_swap, domain->hash_tab[idx]);
+ if (nstr == 0)
+ /* Hash table entry is empty. */
+ return NULL;
+
+ if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len
+ && strcmp (msgid,
+ domain->data + W (domain->must_swap,
+ domain->orig_tab[nstr - 1].offset))
+ == 0)
+ return (char *) domain->data
+ + W (domain->must_swap, domain->trans_tab[nstr - 1].offset);
+ }
+ /* NOTREACHED */
+ }
+
+ /* Now we try the default method: binary search in the sorted
+ array of messages. */
+ bottom = 0;
+ top = domain->nstrings;
+ while (bottom < top)
+ {
+ int cmp_val;
+
+ act = (bottom + top) / 2;
+ cmp_val = strcmp (msgid, domain->data
+ + W (domain->must_swap,
+ domain->orig_tab[act].offset));
+ if (cmp_val < 0)
+ top = act;
+ else if (cmp_val > 0)
+ bottom = act + 1;
+ else
+ break;
+ }
+
+ /* If an translation is found return this. */
+ return bottom >= top ? NULL : (char *) domain->data
+ + W (domain->must_swap,
+ domain->trans_tab[act].offset);
+}
+
+
+/* Return string representation of locale CATEGORY. */
+static const char *
+internal_function
+category_to_name (category)
+ int category;
+{
+ const char *retval;
+
+ switch (category)
+ {
+#ifdef LC_COLLATE
+ case LC_COLLATE:
+ retval = "LC_COLLATE";
+ break;
+#endif
+#ifdef LC_CTYPE
+ case LC_CTYPE:
+ retval = "LC_CTYPE";
+ break;
+#endif
+#ifdef LC_MONETARY
+ case LC_MONETARY:
+ retval = "LC_MONETARY";
+ break;
+#endif
+#ifdef LC_NUMERIC
+ case LC_NUMERIC:
+ retval = "LC_NUMERIC";
+ break;
+#endif
+#ifdef LC_TIME
+ case LC_TIME:
+ retval = "LC_TIME";
+ break;
+#endif
+#ifdef LC_MESSAGES
+ case LC_MESSAGES:
+ retval = "LC_MESSAGES";
+ break;
+#endif
+#ifdef LC_RESPONSE
+ case LC_RESPONSE:
+ retval = "LC_RESPONSE";
+ break;
+#endif
+#ifdef LC_ALL
+ case LC_ALL:
+ /* This might not make sense but is perhaps better than any other
+ value. */
+ retval = "LC_ALL";
+ break;
+#endif
+ default:
+ /* If you have a better idea for a default value let me know. */
+ retval = "LC_XXX";
+ }
+
+ return retval;
+}
+
+/* Guess value of current locale from value of the environment variables. */
+static const char *
+internal_function
+guess_category_value (category, categoryname)
+ int category;
+ const char *categoryname;
+{
+ const char *retval;
+
+ /* The highest priority value is the `LANGUAGE' environment
+ variable. This is a GNU extension. */
+ retval = getenv ("LANGUAGE");
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+
+ /* `LANGUAGE' is not set. So we have to proceed with the POSIX
+ methods of looking to `LC_ALL', `LC_xxx', and `LANG'. On some
+ systems this can be done by the `setlocale' function itself. */
+#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL
+ return setlocale (category, NULL);
+#else
+ /* Setting of LC_ALL overwrites all other. */
+ retval = getenv ("LC_ALL");
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+
+ /* Next comes the name of the desired category. */
+ retval = getenv (categoryname);
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+
+ /* Last possibility is the LANG environment variable. */
+ retval = getenv ("LANG");
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+
+ /* We use C as the default domain. POSIX says this is implementation
+ defined. */
+ return "C";
+#endif
+}
+
+/* @@ begin of epilog @@ */
+
+/* We don't want libintl.a to depend on any other library. So we
+ avoid the non-standard function stpcpy. In GNU C Library this
+ function is available, though. Also allow the symbol HAVE_STPCPY
+ to be defined. */
+#if !_LIBC && !HAVE_STPCPY
+static char *
+stpcpy (dest, src)
+ char *dest;
+ const char *src;
+{
+ while ((*dest++ = *src++) != '\0')
+ /* Do nothing. */ ;
+ return dest - 1;
+}
+#endif
+
+
+#ifdef _LIBC
+/* If we want to free all resources we have to do some work at
+ program's end. */
+static void __attribute__ ((unused))
+free_mem (void)
+{
+ struct binding *runp;
+
+ for (runp = _nl_domain_bindings; runp != NULL; runp = runp->next)
+ {
+ free (runp->domainname);
+ if (runp->dirname != _nl_default_dirname)
+ /* Yes, this is a pointer comparison. */
+ free (runp->dirname);
+ }
+
+ if (_nl_current_default_domain != _nl_default_default_domain)
+ /* Yes, again a pointer comparison. */
+ free ((char *) _nl_current_default_domain);
+}
+
+text_set_element (__libc_subfreeres, free_mem);
+#endif
diff --git a/apps/X11/InstallMgr/intl/dgettext.c b/apps/X11/InstallMgr/intl/dgettext.c
new file mode 100644
index 0000000..0510c2b
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/dgettext.c
@@ -0,0 +1,59 @@
+/* Implementation of the dgettext(3) function
+ Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+
+ 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, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#if defined HAVE_LOCALE_H || defined _LIBC
+# include <locale.h>
+#endif
+
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgettext.h"
+#endif
+
+/* @@ end of prolog @@ */
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define DGETTEXT __dgettext
+# define DCGETTEXT __dcgettext
+#else
+# define DGETTEXT dgettext__
+# define DCGETTEXT dcgettext__
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog of the current
+ LC_MESSAGES locale. */
+char *
+DGETTEXT (domainname, msgid)
+ const char *domainname;
+ const char *msgid;
+{
+ return DCGETTEXT (domainname, msgid, LC_MESSAGES);
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__dgettext, dgettext);
+#endif
diff --git a/apps/X11/InstallMgr/intl/explodename.c b/apps/X11/InstallMgr/intl/explodename.c
new file mode 100644
index 0000000..8066dc2
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/explodename.c
@@ -0,0 +1,188 @@
+/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+ Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+
+ 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, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#if defined STDC_HEADERS || defined _LIBC
+# include <stdlib.h>
+#endif
+
+#if defined HAVE_STRING_H || defined _LIBC
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#include <sys/types.h>
+
+#include "loadinfo.h"
+
+/* On some strange systems still no definition of NULL is found. Sigh! */
+#ifndef NULL
+# if defined __STDC__ && __STDC__
+# define NULL ((void *) 0)
+# else
+# define NULL 0
+# endif
+#endif
+
+/* @@ end of prolog @@ */
+
+int
+_nl_explode_name (name, language, modifier, territory, codeset,
+ normalized_codeset, special, sponsor, revision)
+ char *name;
+ const char **language;
+ const char **modifier;
+ const char **territory;
+ const char **codeset;
+ const char **normalized_codeset;
+ const char **special;
+ const char **sponsor;
+ const char **revision;
+{
+ enum { undecided, xpg, cen } syntax;
+ char *cp;
+ int mask;
+
+ *modifier = NULL;
+ *territory = NULL;
+ *codeset = NULL;
+ *normalized_codeset = NULL;
+ *special = NULL;
+ *sponsor = NULL;
+ *revision = NULL;
+
+ /* Now we determine the single parts of the locale name. First
+ look for the language. Termination symbols are `_' and `@' if
+ we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */
+ mask = 0;
+ syntax = undecided;
+ *language = cp = name;
+ while (cp[0] != '\0' && cp[0] != '_' && cp[0] != '@'
+ && cp[0] != '+' && cp[0] != ',')
+ ++cp;
+
+ if (*language == cp)
+ /* This does not make sense: language has to be specified. Use
+ this entry as it is without exploding. Perhaps it is an alias. */
+ cp = strchr (*language, '\0');
+ else if (cp[0] == '_')
+ {
+ /* Next is the territory. */
+ cp[0] = '\0';
+ *territory = ++cp;
+
+ while (cp[0] != '\0' && cp[0] != '.' && cp[0] != '@'
+ && cp[0] != '+' && cp[0] != ',' && cp[0] != '_')
+ ++cp;
+
+ mask |= TERRITORY;
+
+ if (cp[0] == '.')
+ {
+ /* Next is the codeset. */
+ syntax = xpg;
+ cp[0] = '\0';
+ *codeset = ++cp;
+
+ while (cp[0] != '\0' && cp[0] != '@')
+ ++cp;
+
+ mask |= XPG_CODESET;
+
+ if (*codeset != cp && (*codeset)[0] != '\0')
+ {
+ *normalized_codeset = _nl_normalize_codeset (*codeset,
+ cp - *codeset);
+ if (strcmp (*codeset, *normalized_codeset) == 0)
+ free ((char *) *normalized_codeset);
+ else
+ mask |= XPG_NORM_CODESET;
+ }
+ }
+ }
+
+ if (cp[0] == '@' || (syntax != xpg && cp[0] == '+'))
+ {
+ /* Next is the modifier. */
+ syntax = cp[0] == '@' ? xpg : cen;
+ cp[0] = '\0';
+ *modifier = ++cp;
+
+ while (syntax == cen && cp[0] != '\0' && cp[0] != '+'
+ && cp[0] != ',' && cp[0] != '_')
+ ++cp;
+
+ mask |= XPG_MODIFIER | CEN_AUDIENCE;
+ }
+
+ if (syntax != xpg && (cp[0] == '+' || cp[0] == ',' || cp[0] == '_'))
+ {
+ syntax = cen;
+
+ if (cp[0] == '+')
+ {
+ /* Next is special application (CEN syntax). */
+ cp[0] = '\0';
+ *special = ++cp;
+
+ while (cp[0] != '\0' && cp[0] != ',' && cp[0] != '_')
+ ++cp;
+
+ mask |= CEN_SPECIAL;
+ }
+
+ if (cp[0] == ',')
+ {
+ /* Next is sponsor (CEN syntax). */
+ cp[0] = '\0';
+ *sponsor = ++cp;
+
+ while (cp[0] != '\0' && cp[0] != '_')
+ ++cp;
+
+ mask |= CEN_SPONSOR;
+ }
+
+ if (cp[0] == '_')
+ {
+ /* Next is revision (CEN syntax). */
+ cp[0] = '\0';
+ *revision = ++cp;
+
+ mask |= CEN_REVISION;
+ }
+ }
+
+ /* For CEN syntax values it might be important to have the
+ separator character in the file name, not for XPG syntax. */
+ if (syntax == xpg)
+ {
+ if (*territory != NULL && (*territory)[0] == '\0')
+ mask &= ~TERRITORY;
+
+ if (*codeset != NULL && (*codeset)[0] == '\0')
+ mask &= ~XPG_CODESET;
+
+ if (*modifier != NULL && (*modifier)[0] == '\0')
+ mask &= ~XPG_MODIFIER;
+ }
+
+ return mask;
+}
diff --git a/apps/X11/InstallMgr/intl/finddomain.c b/apps/X11/InstallMgr/intl/finddomain.c
new file mode 100644
index 0000000..81ea29b
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/finddomain.c
@@ -0,0 +1,216 @@
+/* Handle list of needed message catalogs
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+
+ 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, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <ctype.h>
+#include <errno.h>
+#include <stdio.h>
+#include <sys/types.h>
+
+#if defined STDC_HEADERS || defined _LIBC
+# include <stdlib.h>
+#else
+# ifdef HAVE_MALLOC_H
+# include <malloc.h>
+# else
+void free ();
+# endif
+#endif
+
+#if defined HAVE_STRING_H || defined _LIBC
+# include <string.h>
+#else
+# include <strings.h>
+# ifndef memcpy
+# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
+# endif
+#endif
+#if !HAVE_STRCHR && !defined _LIBC
+# ifndef strchr
+# define strchr index
+# endif
+#endif
+
+#if defined HAVE_UNISTD_H || defined _LIBC
+# include <unistd.h>
+#endif
+
+#include "gettext.h"
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgettext.h"
+#endif
+
+/* @@ end of prolog @@ */
+/* List of already loaded domains. */
+static struct loaded_l10nfile *_nl_loaded_domains;
+
+
+/* Return a data structure describing the message catalog described by
+ the DOMAINNAME and CATEGORY parameters with respect to the currently
+ established bindings. */
+struct loaded_l10nfile *
+internal_function
+_nl_find_domain (dirname, locale, domainname)
+ const char *dirname;
+ char *locale;
+ const char *domainname;
+{
+ struct loaded_l10nfile *retval;
+ const char *language;
+ const char *modifier;
+ const char *territory;
+ const char *codeset;
+ const char *normalized_codeset;
+ const char *special;
+ const char *sponsor;
+ const char *revision;
+ const char *alias_value;
+ int mask;
+
+ /* LOCALE can consist of up to four recognized parts for the XPG syntax:
+
+ language[_territory[.codeset]][@modifier]
+
+ and six parts for the CEN syntax:
+
+ language[_territory][+audience][+special][,[sponsor][_revision]]
+
+ Beside the first part all of them are allowed to be missing. If
+ the full specified locale is not found, the less specific one are
+ looked for. The various parts will be stripped off according to
+ the following order:
+ (1) revision
+ (2) sponsor
+ (3) special
+ (4) codeset
+ (5) normalized codeset
+ (6) territory
+ (7) audience/modifier
+ */
+
+ /* If we have already tested for this locale entry there has to
+ be one data set in the list of loaded domains. */
+ retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname,
+ strlen (dirname) + 1, 0, locale, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, domainname, 0);
+ if (retval != NULL)
+ {
+ /* We know something about this locale. */
+ int cnt;
+
+ if (retval->decided == 0)
+ _nl_load_domain (retval);
+
+ if (retval->data != NULL)
+ return retval;
+
+ for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
+ {
+ if (retval->successor[cnt]->decided == 0)
+ _nl_load_domain (retval->successor[cnt]);
+
+ if (retval->successor[cnt]->data != NULL)
+ break;
+ }
+ return cnt >= 0 ? retval : NULL;
+ /* NOTREACHED */
+ }
+
+ /* See whether the locale value is an alias. If yes its value
+ *overwrites* the alias name. No test for the original value is
+ done. */
+ alias_value = _nl_expand_alias (locale);
+ if (alias_value != NULL)
+ {
+#if defined _LIBC || defined HAVE_STRDUP
+ locale = strdup (alias_value);
+ if (locale == NULL)
+ return NULL;
+#else
+ size_t len = strlen (alias_value) + 1;
+ locale = (char *) malloc (len);
+ if (locale == NULL)
+ return NULL;
+
+ memcpy (locale, alias_value, len);
+#endif
+ }
+
+ /* Now we determine the single parts of the locale name. First
+ look for the language. Termination symbols are `_' and `@' if
+ we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */
+ mask = _nl_explode_name (locale, &language, &modifier, &territory,
+ &codeset, &normalized_codeset, &special,
+ &sponsor, &revision);
+
+ /* Create all possible locale entries which might be interested in
+ generalization. */
+ retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname,
+ strlen (dirname) + 1, mask, language, territory,
+ codeset, normalized_codeset, modifier, special,
+ sponsor, revision, domainname, 1);
+ if (retval == NULL)
+ /* This means we are out of core. */
+ return NULL;
+
+ if (retval->decided == 0)
+ _nl_load_domain (retval);
+ if (retval->data == NULL)
+ {
+ int cnt;
+ for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
+ {
+ if (retval->successor[cnt]->decided == 0)
+ _nl_load_domain (retval->successor[cnt]);
+ if (retval->successor[cnt]->data != NULL)
+ break;
+ }
+ }
+
+ /* The room for an alias was dynamically allocated. Free it now. */
+ if (alias_value != NULL)
+ free (locale);
+
+ return retval;
+}
+
+
+#ifdef _LIBC
+static void __attribute__ ((unused))
+free_mem (void)
+{
+ struct loaded_l10nfile *runp = _nl_loaded_domains;
+
+ while (runp != NULL)
+ {
+ struct loaded_l10nfile *here = runp;
+ if (runp->data != NULL)
+ _nl_unload_domain ((struct loaded_domain *) runp->data);
+ runp = runp->next;
+ free (here);
+ }
+}
+
+text_set_element (__libc_subfreeres, free_mem);
+#endif
diff --git a/apps/X11/InstallMgr/intl/gettext.c b/apps/X11/InstallMgr/intl/gettext.c
new file mode 100644
index 0000000..d929f98
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/gettext.c
@@ -0,0 +1,70 @@
+/* Implementation of gettext(3) function.
+ Copyright (C) 1995, 1997 Free Software Foundation, Inc.
+
+ 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, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#ifdef _LIBC
+# define __need_NULL
+# include <stddef.h>
+#else
+# ifdef STDC_HEADERS
+# include <stdlib.h> /* Just for NULL. */
+# else
+# ifdef HAVE_STRING_H
+# include <string.h>
+# else
+# define NULL ((void *) 0)
+# endif
+# endif
+#endif
+
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgettext.h"
+#endif
+
+/* @@ end of prolog @@ */
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define GETTEXT __gettext
+# define DGETTEXT __dgettext
+#else
+# define GETTEXT gettext__
+# define DGETTEXT dgettext__
+#endif
+
+/* Look up MSGID in the current default message catalog for the current
+ LC_MESSAGES locale. If not found, returns MSGID itself (the default
+ text). */
+char *
+GETTEXT (msgid)
+ const char *msgid;
+{
+ return DGETTEXT (NULL, msgid);
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__gettext, gettext);
+#endif
diff --git a/apps/X11/InstallMgr/intl/gettext.h b/apps/X11/InstallMgr/intl/gettext.h
new file mode 100644
index 0000000..3cd23d7
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/gettext.h
@@ -0,0 +1,105 @@
+/* Internal header for GNU gettext internationalization functions.
+ Copyright (C) 1995, 1997 Free Software Foundation, Inc.
+
+ 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, 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 Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#ifndef _GETTEXT_H
+#define _GETTEXT_H 1
+
+#include <stdio.h>
+
+#if HAVE_LIMITS_H || _LIBC
+# include <limits.h>
+#endif
+
+/* @@ end of prolog @@ */
+
+/* The magic number of the GNU message catalog format. */
+#define _MAGIC 0x950412de
+#define _MAGIC_SWAPPED 0xde120495
+
+/* Revision number of the currently used .mo (binary) file format. */
+#define MO_REVISION_NUMBER 0
+
+/* The following contortions are an attempt to use the C preprocessor
+ to determine an unsigned integral type that is 32 bits wide. An
+ alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
+ doing that would require that the configure script compile and *run*
+ the resulting executable. Locally running cross-compiled executables
+ is usually not possible. */
+
+#if __STDC__
+# define UINT_MAX_32_BITS 4294967295U
+#else
+# define UINT_MAX_32_BITS 0xFFFFFFFF
+#endif
+
+/* If UINT_MAX isn't defined, assume it's a 32-bit type.
+ This should be valid for all systems GNU cares about because
+ that doesn't include 16-bit systems, and only modern systems
+ (that certainly have <limits.h>) have 64+-bit integral types. */
+
+#ifndef UINT_MAX
+# define UINT_MAX UINT_MAX_32_BITS
+#endif
+
+#if UINT_MAX == UINT_MAX_32_BITS
+typedef unsigned nls_uint32;
+#else
+# if USHRT_MAX == UINT_MAX_32_BITS
+typedef unsigned short nls_uint32;
+# else
+# if ULONG_MAX == UINT_MAX_32_BITS
+typedef unsigned long nls_uint32;
+# else
+ /* The following line is intended to throw an error. Using #error is
+ not portable enough. */
+ "Cannot determine unsigned 32-bit data type."
+# endif
+# endif
+#endif
+
+
+/* Header for binary .mo file format. */
+struct mo_file_header
+{
+ /* The magic number. */
+ nls_uint32 magic;
+ /* The revision number of the file format. */
+ nls_uint32 revision;
+ /* The number of strings pairs. */
+ nls_uint32 nstrings;
+ /* Offset of table with start offsets of original strings. */
+ nls_uint32 orig_tab_offset;
+ /* Offset of table with start offsets of translation strings. */
+ nls_uint32 trans_tab_offset;
+ /* Size of hashing table. */
+ nls_uint32 hash_tab_size;
+ /* Offset of first hashing entry. */
+ nls_uint32 hash_tab_offset;
+};
+
+struct string_desc
+{
+ /* Length of addressed string. */
+ nls_uint32 length;
+ /* Offset of string in file. */
+ nls_uint32 offset;
+};
+
+/* @@ begin of epilog @@ */
+
+#endif /* gettext.h */
diff --git a/apps/X11/InstallMgr/intl/gettextP.h b/apps/X11/InstallMgr/intl/gettextP.h
new file mode 100644
index 0000000..00c5203
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/gettextP.h
@@ -0,0 +1,89 @@
+/* Header describing internals of gettext library
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+
+ 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, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifndef _GETTEXTP_H
+#define _GETTEXTP_H
+
+#include "loadinfo.h"
+
+/* @@ end of prolog @@ */
+
+#ifndef PARAMS
+# if __STDC__
+# define PARAMS(args) args
+# else
+# define PARAMS(args) ()
+# endif
+#endif
+
+#ifndef internal_function
+# define internal_function
+#endif
+
+#ifndef W
+# define W(flag, data) ((flag) ? SWAP (data) : (data))
+#endif
+
+
+#ifdef _LIBC
+# include <byteswap.h>
+# define SWAP(i) bswap_32 (i)
+#else
+static nls_uint32 SWAP PARAMS ((nls_uint32 i));
+
+static inline nls_uint32
+SWAP (i)
+ nls_uint32 i;
+{
+ return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24);
+}
+#endif
+
+
+struct loaded_domain
+{
+ const char *data;
+ int use_mmap;
+ size_t mmap_size;
+ int must_swap;
+ nls_uint32 nstrings;
+ struct string_desc *orig_tab;
+ struct string_desc *trans_tab;
+ nls_uint32 hash_size;
+ nls_uint32 *hash_tab;
+};
+
+struct binding
+{
+ struct binding *next;
+ char *domainname;
+ char *dirname;
+};
+
+struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname,
+ char *__locale,
+ const char *__domainname))
+ internal_function;
+void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain))
+ internal_function;
+void _nl_unload_domain PARAMS ((struct loaded_domain *__domain))
+ internal_function;
+
+/* @@ begin of epilog @@ */
+
+#endif /* gettextP.h */
diff --git a/apps/X11/InstallMgr/intl/hash-string.h b/apps/X11/InstallMgr/intl/hash-string.h
new file mode 100644
index 0000000..cacb38e
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/hash-string.h
@@ -0,0 +1,59 @@
+/* Implements a string hashing function.
+ Copyright (C) 1995, 1997 Free Software Foundation, Inc.
+
+ 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, 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 Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/* @@ end of prolog @@ */
+
+#ifndef PARAMS
+# if __STDC__
+# define PARAMS(Args) Args
+# else
+# define PARAMS(Args) ()
+# endif
+#endif
+
+/* We assume to have `unsigned long int' value with at least 32 bits. */
+#define HASHWORDBITS 32
+
+
+/* Defines the so called `hashpjw' function by P.J. Weinberger
+ [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools,
+ 1986, 1987 Bell Telephone Laboratories, Inc.] */
+static unsigned long hash_string PARAMS ((const char *__str_param));
+
+static inline unsigned long
+hash_string (str_param)
+ const char *str_param;
+{
+ unsigned long int hval, g;
+ const char *str = str_param;
+
+ /* Compute the hash value for the given string. */
+ hval = 0;
+ while (*str != '\0')
+ {
+ hval <<= 4;
+ hval += (unsigned long) *str++;
+ g = hval & ((unsigned long) 0xf << (HASHWORDBITS - 4));
+ if (g != 0)
+ {
+ hval ^= g >> (HASHWORDBITS - 8);
+ hval ^= g;
+ }
+ }
+ return hval;
+}
diff --git a/apps/X11/InstallMgr/intl/intl-compat.c b/apps/X11/InstallMgr/intl/intl-compat.c
new file mode 100644
index 0000000..503efa0
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/intl-compat.c
@@ -0,0 +1,76 @@
+/* intl-compat.c - Stub functions to call gettext functions from GNU gettext
+ Library.
+ Copyright (C) 1995 Software Foundation, Inc.
+
+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, or (at your option)
+any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "libgettext.h"
+
+/* @@ end of prolog @@ */
+
+
+#undef gettext
+#undef dgettext
+#undef dcgettext
+#undef textdomain
+#undef bindtextdomain
+
+
+char *
+bindtextdomain (domainname, dirname)
+ const char *domainname;
+ const char *dirname;
+{
+ return bindtextdomain__ (domainname, dirname);
+}
+
+
+char *
+dcgettext (domainname, msgid, category)
+ const char *domainname;
+ const char *msgid;
+ int category;
+{
+ return dcgettext__ (domainname, msgid, category);
+}
+
+
+char *
+dgettext (domainname, msgid)
+ const char *domainname;
+ const char *msgid;
+{
+ return dgettext__ (domainname, msgid);
+}
+
+
+char *
+gettext (msgid)
+ const char *msgid;
+{
+ return gettext__ (msgid);
+}
+
+
+char *
+textdomain (domainname)
+ const char *domainname;
+{
+ return textdomain__ (domainname);
+}
diff --git a/apps/X11/InstallMgr/intl/l10nflist.c b/apps/X11/InstallMgr/intl/l10nflist.c
new file mode 100644
index 0000000..9c7dc18
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/l10nflist.c
@@ -0,0 +1,411 @@
+/* Handle list of needed message catalogs
+ Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+ Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+
+ 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, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+
+#if defined HAVE_STRING_H || defined _LIBC
+# ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+# endif
+# include <string.h>
+#else
+# include <strings.h>
+# ifndef memcpy
+# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
+# endif
+#endif
+#if !HAVE_STRCHR && !defined _LIBC
+# ifndef strchr
+# define strchr index
+# endif
+#endif
+
+#if defined _LIBC || defined HAVE_ARGZ_H
+# include <argz.h>
+#endif
+#include <ctype.h>
+#include <sys/types.h>
+
+#if defined STDC_HEADERS || defined _LIBC
+# include <stdlib.h>
+#endif
+
+#include "loadinfo.h"
+
+/* On some strange systems still no definition of NULL is found. Sigh! */
+#ifndef NULL
+# if defined __STDC__ && __STDC__
+# define NULL ((void *) 0)
+# else
+# define NULL 0
+# endif
+#endif
+
+/* @@ end of prolog @@ */
+
+#ifdef _LIBC
+/* Rename the non ANSI C functions. This is required by the standard
+ because some ANSI C functions will require linking with this object
+ file and the name space must not be polluted. */
+# ifndef stpcpy
+# define stpcpy(dest, src) __stpcpy(dest, src)
+# endif
+#else
+# ifndef HAVE_STPCPY
+static char *stpcpy PARAMS ((char *dest, const char *src));
+# endif
+#endif
+
+/* Define function which are usually not available. */
+
+#if !defined _LIBC && !defined HAVE___ARGZ_COUNT
+/* Returns the number of strings in ARGZ. */
+static size_t argz_count__ PARAMS ((const char *argz, size_t len));
+
+static size_t
+argz_count__ (argz, len)
+ const char *argz;
+ size_t len;
+{
+ size_t count = 0;
+ while (len > 0)
+ {
+ size_t part_len = strlen (argz);
+ argz += part_len + 1;
+ len -= part_len + 1;
+ count++;
+ }
+ return count;
+}
+# undef __argz_count
+# define __argz_count(argz, len) argz_count__ (argz, len)
+#endif /* !_LIBC && !HAVE___ARGZ_COUNT */
+
+#if !defined _LIBC && !defined HAVE___ARGZ_STRINGIFY
+/* Make '\0' separated arg vector ARGZ printable by converting all the '\0's
+ except the last into the character SEP. */
+static void argz_stringify__ PARAMS ((char *argz, size_t len, int sep));
+
+static void
+argz_stringify__ (argz, len, sep)
+ char *argz;
+ size_t len;
+ int sep;
+{
+ while (len > 0)
+ {
+ size_t part_len = strlen (argz);
+ argz += part_len;
+ len -= part_len + 1;
+ if (len > 0)
+ *argz++ = sep;
+ }
+}
+# undef __argz_stringify
+# define __argz_stringify(argz, len, sep) argz_stringify__ (argz, len, sep)
+#endif /* !_LIBC && !HAVE___ARGZ_STRINGIFY */
+
+#if !defined _LIBC && !defined HAVE___ARGZ_NEXT
+static char *argz_next__ PARAMS ((char *argz, size_t argz_len,
+ const char *entry));
+
+static char *
+argz_next__ (argz, argz_len, entry)
+ char *argz;
+ size_t argz_len;
+ const char *entry;
+{
+ if (entry)
+ {
+ if (entry < argz + argz_len)
+ entry = strchr (entry, '\0') + 1;
+
+ return entry >= argz + argz_len ? NULL : (char *) entry;
+ }
+ else
+ if (argz_len > 0)
+ return argz;
+ else
+ return 0;
+}
+# undef __argz_next
+# define __argz_next(argz, len, entry) argz_next__ (argz, len, entry)
+#endif /* !_LIBC && !HAVE___ARGZ_NEXT */
+
+
+/* Return number of bits set in X. */
+static int pop PARAMS ((int x));
+
+static inline int
+pop (x)
+ int x;
+{
+ /* We assume that no more than 16 bits are used. */
+ x = ((x & ~0x5555) >> 1) + (x & 0x5555);
+ x = ((x & ~0x3333) >> 2) + (x & 0x3333);
+ x = ((x >> 4) + x) & 0x0f0f;
+ x = ((x >> 8) + x) & 0xff;
+
+ return x;
+}
+
+
+struct loaded_l10nfile *
+_nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
+ territory, codeset, normalized_codeset, modifier, special,
+ sponsor, revision, filename, do_allocate)
+ struct loaded_l10nfile **l10nfile_list;
+ const char *dirlist;
+ size_t dirlist_len;
+ int mask;
+ const char *language;
+ const char *territory;
+ const char *codeset;
+ const char *normalized_codeset;
+ const char *modifier;
+ const char *special;
+ const char *sponsor;
+ const char *revision;
+ const char *filename;
+ int do_allocate;
+{
+ char *abs_filename;
+ struct loaded_l10nfile *last = NULL;
+ struct loaded_l10nfile *retval;
+ char *cp;
+ size_t entries;
+ int cnt;
+
+ /* Allocate room for the full file name. */
+ abs_filename = (char *) malloc (dirlist_len
+ + strlen (language)
+ + ((mask & TERRITORY) != 0
+ ? strlen (territory) + 1 : 0)
+ + ((mask & XPG_CODESET) != 0
+ ? strlen (codeset) + 1 : 0)
+ + ((mask & XPG_NORM_CODESET) != 0
+ ? strlen (normalized_codeset) + 1 : 0)
+ + (((mask & XPG_MODIFIER) != 0
+ || (mask & CEN_AUDIENCE) != 0)
+ ? strlen (modifier) + 1 : 0)
+ + ((mask & CEN_SPECIAL) != 0
+ ? strlen (special) + 1 : 0)
+ + (((mask & CEN_SPONSOR) != 0
+ || (mask & CEN_REVISION) != 0)
+ ? (1 + ((mask & CEN_SPONSOR) != 0
+ ? strlen (sponsor) + 1 : 0)
+ + ((mask & CEN_REVISION) != 0
+ ? strlen (revision) + 1 : 0)) : 0)
+ + 1 + strlen (filename) + 1);
+
+ if (abs_filename == NULL)
+ return NULL;
+
+ retval = NULL;
+ last = NULL;
+
+ /* Construct file name. */
+ memcpy (abs_filename, dirlist, dirlist_len);
+ __argz_stringify (abs_filename, dirlist_len, ':');
+ cp = abs_filename + (dirlist_len - 1);
+ *cp++ = '/';
+ cp = stpcpy (cp, language);
+
+ if ((mask & TERRITORY) != 0)
+ {
+ *cp++ = '_';
+ cp = stpcpy (cp, territory);
+ }
+ if ((mask & XPG_CODESET) != 0)
+ {
+ *cp++ = '.';
+ cp = stpcpy (cp, codeset);
+ }
+ if ((mask & XPG_NORM_CODESET) != 0)
+ {
+ *cp++ = '.';
+ cp = stpcpy (cp, normalized_codeset);
+ }
+ if ((mask & (XPG_MODIFIER | CEN_AUDIENCE)) != 0)
+ {
+ /* This component can be part of both syntaces but has different
+ leading characters. For CEN we use `+', else `@'. */
+ *cp++ = (mask & CEN_AUDIENCE) != 0 ? '+' : '@';
+ cp = stpcpy (cp, modifier);
+ }
+ if ((mask & CEN_SPECIAL) != 0)
+ {
+ *cp++ = '+';
+ cp = stpcpy (cp, special);
+ }
+ if ((mask & (CEN_SPONSOR | CEN_REVISION)) != 0)
+ {
+ *cp++ = ',';
+ if ((mask & CEN_SPONSOR) != 0)
+ cp = stpcpy (cp, sponsor);
+ if ((mask & CEN_REVISION) != 0)
+ {
+ *cp++ = '_';
+ cp = stpcpy (cp, revision);
+ }
+ }
+
+ *cp++ = '/';
+ stpcpy (cp, filename);
+
+ /* Look in list of already loaded domains whether it is already
+ available. */
+ last = NULL;
+ for (retval = *l10nfile_list; retval != NULL; retval = retval->next)
+ if (retval->filename != NULL)
+ {
+ int compare = strcmp (retval->filename, abs_filename);
+ if (compare == 0)
+ /* We found it! */
+ break;
+ if (compare < 0)
+ {
+ /* It's not in the list. */
+ retval = NULL;
+ break;
+ }
+
+ last = retval;
+ }
+
+ if (retval != NULL || do_allocate == 0)
+ {
+ free (abs_filename);
+ return retval;
+ }
+
+ retval = (struct loaded_l10nfile *)
+ malloc (sizeof (*retval) + (__argz_count (dirlist, dirlist_len)
+ * (1 << pop (mask))
+ * sizeof (struct loaded_l10nfile *)));
+ if (retval == NULL)
+ return NULL;
+
+ retval->filename = abs_filename;
+ retval->decided = (__argz_count (dirlist, dirlist_len) != 1
+ || ((mask & XPG_CODESET) != 0
+ && (mask & XPG_NORM_CODESET) != 0));
+ retval->data = NULL;
+
+ if (last == NULL)
+ {
+ retval->next = *l10nfile_list;
+ *l10nfile_list = retval;
+ }
+ else
+ {
+ retval->next = last->next;
+ last->next = retval;
+ }
+
+ entries = 0;
+ /* If the DIRLIST is a real list the RETVAL entry corresponds not to
+ a real file. So we have to use the DIRLIST separation mechanism
+ of the inner loop. */
+ cnt = __argz_count (dirlist, dirlist_len) == 1 ? mask - 1 : mask;
+ for (; cnt >= 0; --cnt)
+ if ((cnt & ~mask) == 0
+ && ((cnt & CEN_SPECIFIC) == 0 || (cnt & XPG_SPECIFIC) == 0)
+ && ((cnt & XPG_CODESET) == 0 || (cnt & XPG_NORM_CODESET) == 0))
+ {
+ /* Iterate over all elements of the DIRLIST. */
+ char *dir = NULL;
+
+ while ((dir = __argz_next ((char *) dirlist, dirlist_len, dir))
+ != NULL)
+ retval->successor[entries++]
+ = _nl_make_l10nflist (l10nfile_list, dir, strlen (dir) + 1, cnt,
+ language, territory, codeset,
+ normalized_codeset, modifier, special,
+ sponsor, revision, filename, 1);
+ }
+ retval->successor[entries] = NULL;
+
+ return retval;
+}
+
+/* Normalize codeset name. There is no standard for the codeset
+ names. Normalization allows the user to use any of the common
+ names. */
+const char *
+_nl_normalize_codeset (codeset, name_len)
+ const unsigned char *codeset;
+ size_t name_len;
+{
+ int len = 0;
+ int only_digit = 1;
+ char *retval;
+ char *wp;
+ size_t cnt;
+
+ for (cnt = 0; cnt < name_len; ++cnt)
+ if (isalnum (codeset[cnt]))
+ {
+ ++len;
+
+ if (isalpha (codeset[cnt]))
+ only_digit = 0;
+ }
+
+ retval = (char *) malloc ((only_digit ? 3 : 0) + len + 1);
+
+ if (retval != NULL)
+ {
+ if (only_digit)
+ wp = stpcpy (retval, "iso");
+ else
+ wp = retval;
+
+ for (cnt = 0; cnt < name_len; ++cnt)
+ if (isalpha (codeset[cnt]))
+ *wp++ = tolower (codeset[cnt]);
+ else if (isdigit (codeset[cnt]))
+ *wp++ = codeset[cnt];
+
+ *wp = '\0';
+ }
+
+ return (const char *) retval;
+}
+
+
+/* @@ begin of epilog @@ */
+
+/* We don't want libintl.a to depend on any other library. So we
+ avoid the non-standard function stpcpy. In GNU C Library this
+ function is available, though. Also allow the symbol HAVE_STPCPY
+ to be defined. */
+#if !_LIBC && !HAVE_STPCPY
+static char *
+stpcpy (dest, src)
+ char *dest;
+ const char *src;
+{
+ while ((*dest++ = *src++) != '\0')
+ /* Do nothing. */ ;
+ return dest - 1;
+}
+#endif
diff --git a/apps/X11/InstallMgr/intl/libgettext.h b/apps/X11/InstallMgr/intl/libgettext.h
new file mode 100644
index 0000000..3a92960
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/libgettext.h
@@ -0,0 +1,182 @@
+/* Message catalogs for internationalization.
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+
+ 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, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+/* Because on some systems (e.g. Solaris) we sometimes have to include
+ the systems libintl.h as well as this file we have more complex
+ include protection above. But the systems header might perhaps also
+ define _LIBINTL_H and therefore we have to protect the definition here. */
+
+#if !defined _LIBINTL_H || !defined _LIBGETTEXT_H
+#ifndef _LIBINTL_H
+# define _LIBINTL_H 1
+#endif
+#define _LIBGETTEXT_H 1
+
+/* We define an additional symbol to signal that we use the GNU
+ implementation of gettext. */
+#define __USE_GNU_GETTEXT 1
+
+#include <sys/types.h>
+
+#if HAVE_LOCALE_H
+# include <locale.h>
+#endif
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* @@ end of prolog @@ */
+
+#ifndef PARAMS
+# if __STDC__ || defined __cplusplus
+# define PARAMS(args) args
+# else
+# define PARAMS(args) ()
+# endif
+#endif
+
+#ifndef NULL
+# if !defined __cplusplus || defined __GNUC__
+# define NULL ((void *) 0)
+# else
+# define NULL (0)
+# endif
+#endif
+
+#if !HAVE_LC_MESSAGES
+/* This value determines the behaviour of the gettext() and dgettext()
+ function. But some system does not have this defined. Define it
+ to a default value. */
+# define LC_MESSAGES (-1)
+#endif
+
+
+/* Declarations for gettext-using-catgets interface. Derived from
+ Jim Meyering's libintl.h. */
+struct _msg_ent
+{
+ const char *_msg;
+ int _msg_number;
+};
+
+
+#if HAVE_CATGETS
+/* These two variables are defined in the automatically by po-to-tbl.sed
+ generated file `cat-id-tbl.c'. */
+extern const struct _msg_ent _msg_tbl[];
+extern int _msg_tbl_length;
+#endif
+
+
+/* For automatical extraction of messages sometimes no real
+ translation is needed. Instead the string itself is the result. */
+#define gettext_noop(Str) (Str)
+
+/* Look up MSGID in the current default message catalog for the current
+ LC_MESSAGES locale. If not found, returns MSGID itself (the default
+ text). */
+extern char *gettext PARAMS ((const char *__msgid));
+extern char *gettext__ PARAMS ((const char *__msgid));
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current
+ LC_MESSAGES locale. */
+extern char *dgettext PARAMS ((const char *__domainname, const char *__msgid));
+extern char *dgettext__ PARAMS ((const char *__domainname,
+ const char *__msgid));
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
+ locale. */
+extern char *dcgettext PARAMS ((const char *__domainname, const char *__msgid,
+ int __category));
+extern char *dcgettext__ PARAMS ((const char *__domainname,
+ const char *__msgid, int __category));
+
+
+/* Set the current default message catalog to DOMAINNAME.
+ If DOMAINNAME is null, return the current default.
+ If DOMAINNAME is "", reset to the default of "messages". */
+extern char *textdomain PARAMS ((const char *__domainname));
+extern char *textdomain__ PARAMS ((const char *__domainname));
+
+/* Specify that the DOMAINNAME message catalog will be found
+ in DIRNAME rather than in the system locale data base. */
+extern char *bindtextdomain PARAMS ((const char *__domainname,
+ const char *__dirname));
+extern char *bindtextdomain__ PARAMS ((const char *__domainname,
+ const char *__dirname));
+
+#if ENABLE_NLS
+
+/* Solaris 2.3 has the gettext function but dcgettext is missing.
+ So we omit this optimization for Solaris 2.3. BTW, Solaris 2.4
+ has dcgettext. */
+# if !HAVE_CATGETS && (!HAVE_GETTEXT || HAVE_DCGETTEXT)
+
+# define gettext(Msgid) \
+ dgettext (NULL, Msgid)
+
+# define dgettext(Domainname, Msgid) \
+ dcgettext (Domainname, Msgid, LC_MESSAGES)
+
+# if defined __GNUC__ && __GNUC__ == 2 && __GNUC_MINOR__ >= 7
+/* This global variable is defined in loadmsgcat.c. We need a sign,
+ whether a new catalog was loaded, which can be associated with all
+ translations. */
+extern int _nl_msg_cat_cntr;
+
+# define dcgettext(Domainname, Msgid, Category) \
+ (__extension__ \
+ ({ \
+ char *__result; \
+ if (__builtin_constant_p (Msgid)) \
+ { \
+ static char *__translation__; \
+ static int __catalog_counter__; \
+ if (! __translation__ || __catalog_counter__ != _nl_msg_cat_cntr) \
+ { \
+ __translation__ = \
+ dcgettext__ (Domainname, Msgid, Category); \
+ __catalog_counter__ = _nl_msg_cat_cntr; \
+ } \
+ __result = __translation__; \
+ } \
+ else \
+ __result = dcgettext__ (Domainname, Msgid, Category); \
+ __result; \
+ }))
+# endif
+# endif
+
+#else
+
+# define gettext(Msgid) (Msgid)
+# define dgettext(Domainname, Msgid) (Msgid)
+# define dcgettext(Domainname, Msgid, Category) (Msgid)
+# define textdomain(Domainname) ((char *) Domainname)
+# define bindtextdomain(Domainname, Dirname) ((char *) Dirname)
+
+#endif
+
+/* @@ begin of epilog @@ */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/apps/X11/InstallMgr/intl/linux-msg.sed b/apps/X11/InstallMgr/intl/linux-msg.sed
new file mode 100644
index 0000000..5918e72
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/linux-msg.sed
@@ -0,0 +1,100 @@
+# po2msg.sed - Convert Uniforum style .po file to Linux style .msg file
+# Copyright (C) 1995 Free Software Foundation, Inc.
+# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+#
+# 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, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#
+# The first directive in the .msg should be the definition of the
+# message set number. We use always set number 1.
+#
+1 {
+ i\
+$set 1 # Automatically created by po2msg.sed
+ h
+ s/.*/0/
+ x
+}
+#
+# Mitch's old catalog format does not allow comments.
+#
+# We copy the original message as a comment into the .msg file.
+#
+/^msgid/ {
+ s/msgid[ ]*"//
+#
+# This does not work now with the new format.
+# /"$/! {
+# s/\\$//
+# s/$/ ... (more lines following)"/
+# }
+ x
+# The following nice solution is by
+# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
+ td
+# Increment a decimal number in pattern space.
+# First hide trailing `9' digits.
+ :d
+ s/9\(_*\)$/_\1/
+ td
+# Assure at least one digit is available.
+ s/^\(_*\)$/0\1/
+# Increment the last digit.
+ s/8\(_*\)$/9\1/
+ s/7\(_*\)$/8\1/
+ s/6\(_*\)$/7\1/
+ s/5\(_*\)$/6\1/
+ s/4\(_*\)$/5\1/
+ s/3\(_*\)$/4\1/
+ s/2\(_*\)$/3\1/
+ s/1\(_*\)$/2\1/
+ s/0\(_*\)$/1\1/
+# Convert the hidden `9' digits to `0's.
+ s/_/0/g
+ x
+ G
+ s/\(.*\)"\n\([0-9]*\)/$ #\2 Original Message:(\1)/p
+}
+#
+# The .msg file contains, other then the .po file, only the translations
+# but each given a unique ID. Starting from 1 and incrementing by 1 for
+# each message we assign them to the messages.
+# It is important that the .po file used to generate the cat-id-tbl.c file
+# (with po-to-tbl) is the same as the one used here. (At least the order
+# of declarations must not be changed.)
+#
+/^msgstr/ {
+ s/msgstr[ ]*"\(.*\)"/# \1/
+# Clear substitution flag.
+ tb
+# Append the next line.
+ :b
+ N
+# Look whether second part is continuation line.
+ s/\(.*\n\)"\(.*\)"/\1\2/
+# Yes, then branch.
+ ta
+ P
+ D
+# Note that D includes a jump to the start!!
+# We found a continuation line. But before printing insert '\'.
+ :a
+ s/\(.*\)\(\n.*\)/\1\\\2/
+ P
+# We cannot use D here.
+ s/.*\n\(.*\)/\1/
+ tb
+}
+d
diff --git a/apps/X11/InstallMgr/intl/loadinfo.h b/apps/X11/InstallMgr/intl/loadinfo.h
new file mode 100644
index 0000000..f4ebf6d
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/loadinfo.h
@@ -0,0 +1,76 @@
+/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
+
+ 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, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifndef PARAMS
+# if __STDC__
+# define PARAMS(args) args
+# else
+# define PARAMS(args) ()
+# endif
+#endif
+
+/* Encoding of locale name parts. */
+#define CEN_REVISION 1
+#define CEN_SPONSOR 2
+#define CEN_SPECIAL 4
+#define XPG_NORM_CODESET 8
+#define XPG_CODESET 16
+#define TERRITORY 32
+#define CEN_AUDIENCE 64
+#define XPG_MODIFIER 128
+
+#define CEN_SPECIFIC (CEN_REVISION|CEN_SPONSOR|CEN_SPECIAL|CEN_AUDIENCE)
+#define XPG_SPECIFIC (XPG_CODESET|XPG_NORM_CODESET|XPG_MODIFIER)
+
+
+struct loaded_l10nfile
+{
+ const char *filename;
+ int decided;
+
+ const void *data;
+
+ struct loaded_l10nfile *next;
+ struct loaded_l10nfile *successor[1];
+};
+
+
+extern const char *_nl_normalize_codeset PARAMS ((const unsigned char *codeset,
+ size_t name_len));
+
+extern struct loaded_l10nfile *
+_nl_make_l10nflist PARAMS ((struct loaded_l10nfile **l10nfile_list,
+ const char *dirlist, size_t dirlist_len, int mask,
+ const char *language, const char *territory,
+ const char *codeset,
+ const char *normalized_codeset,
+ const char *modifier, const char *special,
+ const char *sponsor, const char *revision,
+ const char *filename, int do_allocate));
+
+
+extern const char *_nl_expand_alias PARAMS ((const char *name));
+
+extern int _nl_explode_name PARAMS ((char *name, const char **language,
+ const char **modifier,
+ const char **territory,
+ const char **codeset,
+ const char **normalized_codeset,
+ const char **special,
+ const char **sponsor,
+ const char **revision));
diff --git a/apps/X11/InstallMgr/intl/loadmsgcat.c b/apps/X11/InstallMgr/intl/loadmsgcat.c
new file mode 100644
index 0000000..515892d
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/loadmsgcat.c
@@ -0,0 +1,222 @@
+/* Load needed message catalogs.
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+
+ 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, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#if defined STDC_HEADERS || defined _LIBC
+# include <stdlib.h>
+#endif
+
+#if defined HAVE_UNISTD_H || defined _LIBC
+# include <unistd.h>
+#endif
+
+#if (defined HAVE_MMAP && defined HAVE_MUNMAP) || defined _LIBC
+# include <sys/mman.h>
+#endif
+
+#include "gettext.h"
+#include "gettextP.h"
+
+/* @@ end of prolog @@ */
+
+#ifdef _LIBC
+/* Rename the non ISO C functions. This is required by the standard
+ because some ISO C functions will require linking with this object
+ file and the name space must not be polluted. */
+# define open __open
+# define close __close
+# define read __read
+# define mmap __mmap
+# define munmap __munmap
+#endif
+
+/* We need a sign, whether a new catalog was loaded, which can be associated
+ with all translations. This is important if the translations are
+ cached by one of GCC's features. */
+int _nl_msg_cat_cntr = 0;
+
+
+/* Load the message catalogs specified by FILENAME. If it is no valid
+ message catalog do nothing. */
+void
+internal_function
+_nl_load_domain (domain_file)
+ struct loaded_l10nfile *domain_file;
+{
+ int fd;
+ size_t size;
+ struct stat st;
+ struct mo_file_header *data = (struct mo_file_header *) -1;
+#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
+ || defined _LIBC
+ int use_mmap = 0;
+#endif
+ struct loaded_domain *domain;
+
+ domain_file->decided = 1;
+ domain_file->data = NULL;
+
+ /* If the record does not represent a valid locale the FILENAME
+ might be NULL. This can happen when according to the given
+ specification the locale file name is different for XPG and CEN
+ syntax. */
+ if (domain_file->filename == NULL)
+ return;
+
+ /* Try to open the addressed file. */
+ fd = open (domain_file->filename, O_RDONLY);
+ if (fd == -1)
+ return;
+
+ /* We must know about the size of the file. */
+ if (fstat (fd, &st) != 0
+ || (size = (size_t) st.st_size) != st.st_size
+ || size < sizeof (struct mo_file_header))
+ {
+ /* Something went wrong. */
+ close (fd);
+ return;
+ }
+
+#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
+ || defined _LIBC
+ /* Now we are ready to load the file. If mmap() is available we try
+ this first. If not available or it failed we try to load it. */
+ data = (struct mo_file_header *) mmap (NULL, size, PROT_READ,
+ MAP_PRIVATE, fd, 0);
+
+ if (data != (struct mo_file_header *) -1)
+ {
+ /* mmap() call was successful. */
+ close (fd);
+ use_mmap = 1;
+ }
+#endif
+
+ /* If the data is not yet available (i.e. mmap'ed) we try to load
+ it manually. */
+ if (data == (struct mo_file_header *) -1)
+ {
+ size_t to_read;
+ char *read_ptr;
+
+ data = (struct mo_file_header *) malloc (size);
+ if (data == NULL)
+ return;
+
+ to_read = size;
+ read_ptr = (char *) data;
+ do
+ {
+ long int nb = (long int) read (fd, read_ptr, to_read);
+ if (nb == -1)
+ {
+ close (fd);
+ return;
+ }
+
+ read_ptr += nb;
+ to_read -= nb;
+ }
+ while (to_read > 0);
+
+ close (fd);
+ }
+
+ /* Using the magic number we can test whether it really is a message
+ catalog file. */
+ if (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED)
+ {
+ /* The magic number is wrong: not a message catalog file. */
+#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
+ || defined _LIBC
+ if (use_mmap)
+ munmap ((caddr_t) data, size);
+ else
+#endif
+ free (data);
+ return;
+ }
+
+ domain_file->data
+ = (struct loaded_domain *) malloc (sizeof (struct loaded_domain));
+ if (domain_file->data == NULL)
+ return;
+
+ domain = (struct loaded_domain *) domain_file->data;
+ domain->data = (char *) data;
+#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
+ || defined _LIBC
+ domain->use_mmap = use_mmap;
+#endif
+ domain->mmap_size = size;
+ domain->must_swap = data->magic != _MAGIC;
+
+ /* Fill in the information about the available tables. */
+ switch (W (domain->must_swap, data->revision))
+ {
+ case 0:
+ domain->nstrings = W (domain->must_swap, data->nstrings);
+ domain->orig_tab = (struct string_desc *)
+ ((char *) data + W (domain->must_swap, data->orig_tab_offset));
+ domain->trans_tab = (struct string_desc *)
+ ((char *) data + W (domain->must_swap, data->trans_tab_offset));
+ domain->hash_size = W (domain->must_swap, data->hash_tab_size);
+ domain->hash_tab = (nls_uint32 *)
+ ((char *) data + W (domain->must_swap, data->hash_tab_offset));
+ break;
+ default:
+ /* This is an illegal revision. */
+#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
+ || defined _LIBC
+ if (use_mmap)
+ munmap ((caddr_t) data, size);
+ else
+#endif
+ free (data);
+ free (domain);
+ domain_file->data = NULL;
+ return;
+ }
+
+ /* Show that one domain is changed. This might make some cached
+ translations invalid. */
+ ++_nl_msg_cat_cntr;
+}
+
+
+#ifdef _LIBC
+void
+internal_function
+_nl_unload_domain (domain)
+ struct loaded_domain *domain;
+{
+ if (domain->use_mmap)
+ munmap ((caddr_t) domain->data, domain->mmap_size);
+ else
+ free ((void *) domain->data);
+
+ free (domain);
+}
+#endif
diff --git a/apps/X11/InstallMgr/intl/localealias.c b/apps/X11/InstallMgr/intl/localealias.c
new file mode 100644
index 0000000..bca555a
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/localealias.c
@@ -0,0 +1,424 @@
+/* Handle aliases for locale names.
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+
+ 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, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <ctype.h>
+#include <stdio.h>
+#include <sys/types.h>
+
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+# define HAVE_ALLOCA 1
+#else
+# if defined HAVE_ALLOCA_H || defined _LIBC
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca
+char *alloca ();
+# endif
+# endif
+# endif
+#endif
+
+#if defined STDC_HEADERS || defined _LIBC
+# include <stdlib.h>
+#else
+char *getenv ();
+# ifdef HAVE_MALLOC_H
+# include <malloc.h>
+# else
+void free ();
+# endif
+#endif
+
+#if defined HAVE_STRING_H || defined _LIBC
+# ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+# endif
+# include <string.h>
+#else
+# include <strings.h>
+# ifndef memcpy
+# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
+# endif
+#endif
+#if !HAVE_STRCHR && !defined _LIBC
+# ifndef strchr
+# define strchr index
+# endif
+#endif
+
+#include "gettext.h"
+#include "gettextP.h"
+
+/* @@ end of prolog @@ */
+
+#ifdef _LIBC
+/* Rename the non ANSI C functions. This is required by the standard
+ because some ANSI C functions will require linking with this object
+ file and the name space must not be polluted. */
+# define strcasecmp __strcasecmp
+
+# define mempcpy __mempcpy
+# define HAVE_MEMPCPY 1
+
+/* We need locking here since we can be called from different places. */
+# include <bits/libc-lock.h>
+
+__libc_lock_define_initialized (static, lock);
+#endif
+
+
+/* For those loosing systems which don't have `alloca' we have to add
+ some additional code emulating it. */
+#ifdef HAVE_ALLOCA
+/* Nothing has to be done. */
+# define ADD_BLOCK(list, address) /* nothing */
+# define FREE_BLOCKS(list) /* nothing */
+#else
+struct block_list
+{
+ void *address;
+ struct block_list *next;
+};
+# define ADD_BLOCK(list, addr) \
+ do { \
+ struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \
+ /* If we cannot get a free block we cannot add the new element to \
+ the list. */ \
+ if (newp != NULL) { \
+ newp->address = (addr); \
+ newp->next = (list); \
+ (list) = newp; \
+ } \
+ } while (0)
+# define FREE_BLOCKS(list) \
+ do { \
+ while (list != NULL) { \
+ struct block_list *old = list; \
+ list = list->next; \
+ free (old); \
+ } \
+ } while (0)
+# undef alloca
+# define alloca(size) (malloc (size))
+#endif /* have alloca */
+
+
+struct alias_map
+{
+ const char *alias;
+ const char *value;
+};
+
+
+static char *string_space = NULL;
+static size_t string_space_act = 0;
+static size_t string_space_max = 0;
+static struct alias_map *map;
+static size_t nmap = 0;
+static size_t maxmap = 0;
+
+
+/* Prototypes for local functions. */
+static size_t read_alias_file PARAMS ((const char *fname, int fname_len))
+ internal_function;
+static void extend_alias_table PARAMS ((void));
+static int alias_compare PARAMS ((const struct alias_map *map1,
+ const struct alias_map *map2));
+
+
+const char *
+_nl_expand_alias (name)
+ const char *name;
+{
+ static const char *locale_alias_path = LOCALE_ALIAS_PATH;
+ struct alias_map *retval;
+ const char *result = NULL;
+ size_t added;
+
+#ifdef _LIBC
+ __libc_lock_lock (lock);
+#endif
+
+ do
+ {
+ struct alias_map item;
+
+ item.alias = name;
+
+ if (nmap > 0)
+ retval = (struct alias_map *) bsearch (&item, map, nmap,
+ sizeof (struct alias_map),
+ (int (*) PARAMS ((const void *,
+ const void *))
+ ) alias_compare);
+ else
+ retval = NULL;
+
+ /* We really found an alias. Return the value. */
+ if (retval != NULL)
+ {
+ result = retval->value;
+ break;
+ }
+
+ /* Perhaps we can find another alias file. */
+ added = 0;
+ while (added == 0 && locale_alias_path[0] != '\0')
+ {
+ const char *start;
+
+ while (locale_alias_path[0] == ':')
+ ++locale_alias_path;
+ start = locale_alias_path;
+
+ while (locale_alias_path[0] != '\0' && locale_alias_path[0] != ':')
+ ++locale_alias_path;
+
+ if (start < locale_alias_path)
+ added = read_alias_file (start, locale_alias_path - start);
+ }
+ }
+ while (added != 0);
+
+#ifdef _LIBC
+ __libc_lock_unlock (lock);
+#endif
+
+ return result;
+}
+
+
+static size_t
+internal_function
+read_alias_file (fname, fname_len)
+ const char *fname;
+ int fname_len;
+{
+#ifndef HAVE_ALLOCA
+ struct block_list *block_list = NULL;
+#endif
+ FILE *fp;
+ char *full_fname;
+ size_t added;
+ static const char aliasfile[] = "/locale.alias";
+
+ full_fname = (char *) alloca (fname_len + sizeof aliasfile);
+ ADD_BLOCK (block_list, full_fname);
+#ifdef HAVE_MEMPCPY
+ mempcpy (mempcpy (full_fname, fname, fname_len),
+ aliasfile, sizeof aliasfile);
+#else
+ memcpy (full_fname, fname, fname_len);
+ memcpy (&full_fname[fname_len], aliasfile, sizeof aliasfile);
+#endif
+
+ fp = fopen (full_fname, "r");
+ if (fp == NULL)
+ {
+ FREE_BLOCKS (block_list);
+ return 0;
+ }
+
+ added = 0;
+ while (!feof (fp))
+ {
+ /* It is a reasonable approach to use a fix buffer here because
+ a) we are only interested in the first two fields
+ b) these fields must be usable as file names and so must not
+ be that long
+ */
+ unsigned char buf[BUFSIZ];
+ unsigned char *alias;
+ unsigned char *value;
+ unsigned char *cp;
+
+ if (fgets (buf, sizeof buf, fp) == NULL)
+ /* EOF reached. */
+ break;
+
+ /* Possibly not the whole line fits into the buffer. Ignore
+ the rest of the line. */
+ if (strchr (buf, '\n') == NULL)
+ {
+ char altbuf[BUFSIZ];
+ do
+ if (fgets (altbuf, sizeof altbuf, fp) == NULL)
+ /* Make sure the inner loop will be left. The outer loop
+ will exit at the `feof' test. */
+ break;
+ while (strchr (altbuf, '\n') == NULL);
+ }
+
+ cp = buf;
+ /* Ignore leading white space. */
+ while (isspace (cp[0]))
+ ++cp;
+
+ /* A leading '#' signals a comment line. */
+ if (cp[0] != '\0' && cp[0] != '#')
+ {
+ alias = cp++;
+ while (cp[0] != '\0' && !isspace (cp[0]))
+ ++cp;
+ /* Terminate alias name. */
+ if (cp[0] != '\0')
+ *cp++ = '\0';
+
+ /* Now look for the beginning of the value. */
+ while (isspace (cp[0]))
+ ++cp;
+
+ if (cp[0] != '\0')
+ {
+ size_t alias_len;
+ size_t value_len;
+
+ value = cp++;
+ while (cp[0] != '\0' && !isspace (cp[0]))
+ ++cp;
+ /* Terminate value. */
+ if (cp[0] == '\n')
+ {
+ /* This has to be done to make the following test
+ for the end of line possible. We are looking for
+ the terminating '\n' which do not overwrite here. */
+ *cp++ = '\0';
+ *cp = '\n';
+ }
+ else if (cp[0] != '\0')
+ *cp++ = '\0';
+
+ if (nmap >= maxmap)
+ extend_alias_table ();
+
+ alias_len = strlen (alias) + 1;
+ value_len = strlen (value) + 1;
+
+ if (string_space_act + alias_len + value_len > string_space_max)
+ {
+ /* Increase size of memory pool. */
+ size_t new_size = (string_space_max
+ + (alias_len + value_len > 1024
+ ? alias_len + value_len : 1024));
+ char *new_pool = (char *) realloc (string_space, new_size);
+ if (new_pool == NULL)
+ {
+ FREE_BLOCKS (block_list);
+ return added;
+ }
+ string_space = new_pool;
+ string_space_max = new_size;
+ }
+
+ map[nmap].alias = memcpy (&string_space[string_space_act],
+ alias, alias_len);
+ string_space_act += alias_len;
+
+ map[nmap].value = memcpy (&string_space[string_space_act],
+ value, value_len);
+ string_space_act += value_len;
+
+ ++nmap;
+ ++added;
+ }
+ }
+ }
+
+ /* Should we test for ferror()? I think we have to silently ignore
+ errors. --drepper */
+ fclose (fp);
+
+ if (added > 0)
+ qsort (map, nmap, sizeof (struct alias_map),
+ (int (*) PARAMS ((const void *, const void *))) alias_compare);
+
+ FREE_BLOCKS (block_list);
+ return added;
+}
+
+
+static void
+extend_alias_table ()
+{
+ size_t new_size;
+ struct alias_map *new_map;
+
+ new_size = maxmap == 0 ? 100 : 2 * maxmap;
+ new_map = (struct alias_map *) realloc (map, (new_size
+ * sizeof (struct alias_map)));
+ if (new_map == NULL)
+ /* Simply don't extend: we don't have any more core. */
+ return;
+
+ map = new_map;
+ maxmap = new_size;
+}
+
+
+#ifdef _LIBC
+static void __attribute__ ((unused))
+free_mem (void)
+{
+ if (string_space != NULL)
+ free (string_space);
+ if (map != NULL)
+ free (map);
+}
+text_set_element (__libc_subfreeres, free_mem);
+#endif
+
+
+static int
+alias_compare (map1, map2)
+ const struct alias_map *map1;
+ const struct alias_map *map2;
+{
+#if defined _LIBC || defined HAVE_STRCASECMP
+ return strcasecmp (map1->alias, map2->alias);
+#else
+ const unsigned char *p1 = (const unsigned char *) map1->alias;
+ const unsigned char *p2 = (const unsigned char *) map2->alias;
+ unsigned char c1, c2;
+
+ if (p1 == p2)
+ return 0;
+
+ do
+ {
+ /* I know this seems to be odd but the tolower() function in
+ some systems libc cannot handle nonalpha characters. */
+ c1 = isupper (*p1) ? tolower (*p1) : *p1;
+ c2 = isupper (*p2) ? tolower (*p2) : *p2;
+ if (c1 == '\0')
+ break;
+ ++p1;
+ ++p2;
+ }
+ while (c1 == c2);
+
+ return c1 - c2;
+#endif
+}
diff --git a/apps/X11/InstallMgr/intl/po2tbl.sed b/apps/X11/InstallMgr/intl/po2tbl.sed
new file mode 100644
index 0000000..93c0435
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/po2tbl.sed
@@ -0,0 +1,60 @@
+1 {
+ i\
+/* Automatically generated by po2tbl.sed from @PACKAGE NAME@.pot. */\
+\
+#if HAVE_CONFIG_H\
+# include <config.h>\
+#endif\
+\
+#include "libgettext.h"\
+\
+const struct _msg_ent _msg_tbl[] = {
+ h
+ s/.*/0/
+ x
+}
+/^msgid/ {
+ s/msgid[ ]*\(".*"\)/ {\1/
+ tb
+ :b
+ N
+ s/\(.*\)"\(\n\)"\(.*"\)/\1\2\3/
+ ta
+ s/\(.*\)\n.*/\1/
+ bc
+ :a
+ s/\(.*\)\(\n.*\)/\1\\\2/
+ P
+ s/.*\n\(.*\)/\1/
+ tb
+ :c
+ x
+ td
+ :d
+ s/9\(_*\)$/_\1/
+ td
+ s/^\(_*\)$/0\1/
+ s/8\(_*\)$/9\1/
+ s/7\(_*\)$/8\1/
+ s/6\(_*\)$/7\1/
+ s/5\(_*\)$/6\1/
+ s/4\(_*\)$/5\1/
+ s/3\(_*\)$/4\1/
+ s/2\(_*\)$/3\1/
+ s/1\(_*\)$/2\1/
+ s/0\(_*\)$/1\1/
+ s/_/0/g
+ x
+ G
+ s/\(.*\)\n\([0-9]*\)/\1, \2},/
+ s/\(.*\)"$/\1/
+ p
+}
+$ {
+ i\
+};\
+
+ g
+ s/0*\(.*\)/int _msg_tbl_length = \1;/p
+}
+d
diff --git a/apps/X11/InstallMgr/intl/po2tbl.sed.in b/apps/X11/InstallMgr/intl/po2tbl.sed.in
new file mode 100644
index 0000000..b3bcca4
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/po2tbl.sed.in
@@ -0,0 +1,102 @@
+# po2tbl.sed - Convert Uniforum style .po file to lookup table for catgets
+# Copyright (C) 1995 Free Software Foundation, Inc.
+# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+#
+# 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, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+1 {
+ i\
+/* Automatically generated by po2tbl.sed from @PACKAGE NAME@.pot. */\
+\
+#if HAVE_CONFIG_H\
+# include <config.h>\
+#endif\
+\
+#include "libgettext.h"\
+\
+const struct _msg_ent _msg_tbl[] = {
+ h
+ s/.*/0/
+ x
+}
+#
+# Write msgid entries in C array form.
+#
+/^msgid/ {
+ s/msgid[ ]*\(".*"\)/ {\1/
+ tb
+# Append the next line
+ :b
+ N
+# Look whether second part is continuation line.
+ s/\(.*\)"\(\n\)"\(.*"\)/\1\2\3/
+# Yes, then branch.
+ ta
+# Because we assume that the input file correctly formed the line
+# just read cannot be again be a msgid line. So it's safe to ignore
+# it.
+ s/\(.*\)\n.*/\1/
+ bc
+# We found a continuation line. But before printing insert '\'.
+ :a
+ s/\(.*\)\(\n.*\)/\1\\\2/
+ P
+# We cannot use D here.
+ s/.*\n\(.*\)/\1/
+# Some buggy seds do not clear the `successful substitution since last ``t'''
+# flag on `N', so we do a `t' here to clear it.
+ tb
+# Not reached
+ :c
+ x
+# The following nice solution is by
+# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
+ td
+# Increment a decimal number in pattern space.
+# First hide trailing `9' digits.
+ :d
+ s/9\(_*\)$/_\1/
+ td
+# Assure at least one digit is available.
+ s/^\(_*\)$/0\1/
+# Increment the last digit.
+ s/8\(_*\)$/9\1/
+ s/7\(_*\)$/8\1/
+ s/6\(_*\)$/7\1/
+ s/5\(_*\)$/6\1/
+ s/4\(_*\)$/5\1/
+ s/3\(_*\)$/4\1/
+ s/2\(_*\)$/3\1/
+ s/1\(_*\)$/2\1/
+ s/0\(_*\)$/1\1/
+# Convert the hidden `9' digits to `0's.
+ s/_/0/g
+ x
+ G
+ s/\(.*\)\n\([0-9]*\)/\1, \2},/
+ s/\(.*\)"$/\1/
+ p
+}
+#
+# Last line.
+#
+$ {
+ i\
+};\
+
+ g
+ s/0*\(.*\)/int _msg_tbl_length = \1;/p
+}
+d
diff --git a/apps/X11/InstallMgr/intl/textdomain.c b/apps/X11/InstallMgr/intl/textdomain.c
new file mode 100644
index 0000000..8855746
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/textdomain.c
@@ -0,0 +1,108 @@
+/* Implementation of the textdomain(3) function.
+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+
+ 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, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#if defined STDC_HEADERS || defined _LIBC
+# include <stdlib.h>
+#endif
+
+#if defined STDC_HEADERS || defined HAVE_STRING_H || defined _LIBC
+# include <string.h>
+#else
+# include <strings.h>
+# ifndef memcpy
+# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
+# endif
+#endif
+
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgettext.h"
+#endif
+
+/* @@ end of prolog @@ */
+
+/* Name of the default text domain. */
+extern const char _nl_default_default_domain[];
+
+/* Default text domain in which entries for gettext(3) are to be found. */
+extern const char *_nl_current_default_domain;
+
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define TEXTDOMAIN __textdomain
+# ifndef strdup
+# define strdup(str) __strdup (str)
+# endif
+#else
+# define TEXTDOMAIN textdomain__
+#endif
+
+/* Set the current default message catalog to DOMAINNAME.
+ If DOMAINNAME is null, return the current default.
+ If DOMAINNAME is "", reset to the default of "messages". */
+char *
+TEXTDOMAIN (domainname)
+ const char *domainname;
+{
+ char *old;
+
+ /* A NULL pointer requests the current setting. */
+ if (domainname == NULL)
+ return (char *) _nl_current_default_domain;
+
+ old = (char *) _nl_current_default_domain;
+
+ /* If domain name is the null string set to default domain "messages". */
+ if (domainname[0] == '\0'
+ || strcmp (domainname, _nl_default_default_domain) == 0)
+ _nl_current_default_domain = _nl_default_default_domain;
+ else
+ {
+ /* If the following malloc fails `_nl_current_default_domain'
+ will be NULL. This value will be returned and so signals we
+ are out of core. */
+#if defined _LIBC || defined HAVE_STRDUP
+ _nl_current_default_domain = strdup (domainname);
+#else
+ size_t len = strlen (domainname) + 1;
+ char *cp = (char *) malloc (len);
+ if (cp != NULL)
+ memcpy (cp, domainname, len);
+ _nl_current_default_domain = cp;
+#endif
+ }
+
+ if (old != _nl_default_default_domain)
+ free (old);
+
+ return (char *) _nl_current_default_domain;
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__textdomain, textdomain);
+#endif
diff --git a/apps/X11/InstallMgr/intl/xopen-msg.sed b/apps/X11/InstallMgr/intl/xopen-msg.sed
new file mode 100644
index 0000000..b19c0bb
--- /dev/null
+++ b/apps/X11/InstallMgr/intl/xopen-msg.sed
@@ -0,0 +1,104 @@
+# po2msg.sed - Convert Uniforum style .po file to X/Open style .msg file
+# Copyright (C) 1995 Free Software Foundation, Inc.
+# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+#
+# 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, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#
+# The first directive in the .msg should be the definition of the
+# message set number. We use always set number 1.
+#
+1 {
+ i\
+$set 1 # Automatically created by po2msg.sed
+ h
+ s/.*/0/
+ x
+}
+#
+# We copy all comments into the .msg file. Perhaps they can help.
+#
+/^#/ s/^#[ ]*/$ /p
+#
+# We copy the original message as a comment into the .msg file.
+#
+/^msgid/ {
+# Does not work now
+# /"$/! {
+# s/\\$//
+# s/$/ ... (more lines following)"/
+# }
+ s/^msgid[ ]*"\(.*\)"$/$ Original Message: \1/
+ p
+}
+#
+# The .msg file contains, other then the .po file, only the translations
+# but each given a unique ID. Starting from 1 and incrementing by 1 for
+# each message we assign them to the messages.
+# It is important that the .po file used to generate the cat-id-tbl.c file
+# (with po-to-tbl) is the same as the one used here. (At least the order
+# of declarations must not be changed.)
+#
+/^msgstr/ {
+ s/msgstr[ ]*"\(.*\)"/\1/
+ x
+# The following nice solution is by
+# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
+ td
+# Increment a decimal number in pattern space.
+# First hide trailing `9' digits.
+ :d
+ s/9\(_*\)$/_\1/
+ td
+# Assure at least one digit is available.
+ s/^\(_*\)$/0\1/
+# Increment the last digit.
+ s/8\(_*\)$/9\1/
+ s/7\(_*\)$/8\1/
+ s/6\(_*\)$/7\1/
+ s/5\(_*\)$/6\1/
+ s/4\(_*\)$/5\1/
+ s/3\(_*\)$/4\1/
+ s/2\(_*\)$/3\1/
+ s/1\(_*\)$/2\1/
+ s/0\(_*\)$/1\1/
+# Convert the hidden `9' digits to `0's.
+ s/_/0/g
+ x
+# Bring the line in the format `<number> <message>'
+ G
+ s/^[^\n]*$/& /
+ s/\(.*\)\n\([0-9]*\)/\2 \1/
+# Clear flag from last substitution.
+ tb
+# Append the next line.
+ :b
+ N
+# Look whether second part is a continuation line.
+ s/\(.*\n\)"\(.*\)"/\1\2/
+# Yes, then branch.
+ ta
+ P
+ D
+# Note that `D' includes a jump to the start!!
+# We found a continuation line. But before printing insert '\'.
+ :a
+ s/\(.*\)\(\n.*\)/\1\\\2/
+ P
+# We cannot use the sed command `D' here
+ s/.*\n\(.*\)/\1/
+ tb
+}
+d
diff --git a/apps/X11/InstallMgr/macros/Makefile b/apps/X11/InstallMgr/macros/Makefile
new file mode 100644
index 0000000..dd4dfe8
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/Makefile
@@ -0,0 +1,255 @@
+# Generated automatically from Makefile.in by configure.
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = ..
+prefix = /usr/local
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/lib
+infodir = ${prefix}/info
+mandir = ${prefix}/man
+includedir = ${prefix}/include
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/installmgr
+pkglibdir = $(libdir)/installmgr
+pkgincludedir = $(includedir)/installmgr
+
+top_builddir = ..
+
+ACLOCAL = aclocal -I macros
+AUTOCONF = autoconf
+AUTOMAKE = automake
+AUTOHEADER = autoheader
+
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL} $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_SCRIPT = ${INSTALL_PROGRAM}
+transform = s,x,x,
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+CATALOGS =
+CATOBJEXT = .gmo
+CC = gcc
+CXX = c++
+DATADIRNAME = share
+GENCAT =
+GMOFILES =
+GMSGFMT = /usr/bin/msgfmt
+GNOMEGNORBA_LIBS = -rdynamic -lgnorba -lORBitCosNaming -lORBit -lIIOP -lORBitutil -lnsl -lgnomeui -lart_lgpl -lgdk_imlib -lSM -lICE -lgtk -lgdk -lgmodule -lXi -lXext -lX11 -lgnome -lgnomesupport -lesd -laudiofile -lm -ldb1 -lglib -ldl
+GNOMEUI_LIBS = -rdynamic -lgnomeui -lart_lgpl -lgdk_imlib -lSM -lICE -lgtk -lgdk -lgmodule -lXi -lXext -lX11 -lgnome -lgnomesupport -lesd -laudiofile -lm -ldb1 -lglib -ldl
+GNOME_APPLETS_LIBS =
+GNOME_CAPPLET_LIBS =
+GNOME_CONFIG = /usr/bin/gnome-config
+GNOME_INCLUDEDIR = -I/usr/include -DNEED_GNOMESUPPORT_H -I/usr/lib/gnome-libs/include -I/usr/lib/glib/include -I/usr/X11R6/include
+GNOME_LIBDIR = -rdynamic -L/usr/lib -L/usr/X11R6/lib
+GNOME_LIBS = -lgnome -lgnomesupport -lesd -laudiofile -lm -ldb1 -lglib -ldl
+GNORBA_CFLAGS = -I/usr/include -DNEED_GNOMESUPPORT_H -I/usr/lib/gnome-libs/include -I/usr/lib/glib/include -I/usr/X11R6/include
+GNORBA_LIBS = -rdynamic -L/usr/lib -L/usr/X11R6/lib -lgnorba -lORBitCosNaming -lORBit -lIIOP -lORBitutil -lnsl -lgnomeui -lart_lgpl -lgdk_imlib -lSM -lICE -lgtk -lgdk -lgmodule -lXi -lXext -lX11 -lgnome -lgnomesupport -lesd -laudiofile -lm -ldb1 -lglib -ldl
+GTKXMHTML_LIBS = -rdynamic -lgtkxmhtml -lXpm -ljpeg -lpng -lz -lSM -lICE -lgtk -lgdk -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm
+GTK_CFLAGS = -I/usr/lib/glib/include -I/usr/X11R6/include
+GTK_CONFIG = /usr/bin/gtk-config
+GTK_LIBS = -lSM -lICE -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm
+GT_NO =
+GT_YES = #YES#
+INCLUDE_LOCALE_H = #include <locale.h>
+INSTOBJEXT = .mo
+INTLDEPS =
+INTLLIBS =
+INTLOBJS =
+MAKEINFO = makeinfo
+MKINSTALLDIRS = ./mkinstalldirs
+MSGFMT = /usr/bin/msgfmt
+ORBIT_CFLAGS = -I/usr/lib/glib/include -I/usr/include
+ORBIT_CONFIG = /usr/bin/orbit-config
+ORBIT_IDL = /usr/bin/orbit-idl
+ORBIT_LIBS = -L/usr/lib -lORBitCosNaming -lORBit -lIIOP -lORBitutil -lglib -lnsl -lm
+PACKAGE = installmgr
+PACKAGE_PIXMAPS_DIR = /usr/share/pixmaps/installmgr
+POFILES =
+POSUB = po
+PTHREAD_LIB = -lpthread
+RANLIB = ranlib
+USE_INCLUDED_LIBINTL = no
+USE_NLS = yes
+VERSION = 0.1
+XPM_LIBS = -lXpm
+ZVT_LIBS = -rdynamic -lzvt -lutil -lSM -lICE -lgtk -lgdk -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm
+cflags_set = yes
+cxxflags_set = @cxxflags_set@
+l =
+
+MACROS = aclocal-include.m4 compiler-flags.m4 curses.m4 gnome-bonobo-check.m4 gnome-fileutils.m4 gnome-gettext.m4 gnome-ghttp-check.m4 gnome-gnorba-check.m4 gnome-guile-checks.m4 gnome-libgtop-check.m4 gnome-objc-checks.m4 gnome-orbit-check.m4 gnome-print-check.m4 gnome-pthread-check.m4 gnome-support.m4 gnome-undelfs.m4 gnome-vfs.m4 gnome-x-checks.m4 gnome-xml-check.m4 gnome.m4 linger.m4 need-declaration.m4
+
+
+EXTRA_DIST = $(MACROS) gnome-common.m4 autogen.sh
+MAINTAINERCLEANFILES = macros.dep
+
+#gnome_aclocaldir = $(datadir)/aclocal/gnome
+
+#gnome_aclocal_DATA = $(MACROS) gnome-macros.dep gnome-common.m4 autogen.sh
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES =
+DATA = $(gnome_aclocal_DATA)
+
+DIST_COMMON = Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu macros/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+install-gnome_aclocalDATA: $(gnome_aclocal_DATA)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(gnome_aclocaldir)
+ @list='$(gnome_aclocal_DATA)'; for p in $$list; do \
+ if test -f $(srcdir)/$$p; then \
+ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(gnome_aclocaldir)/$$p"; \
+ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(gnome_aclocaldir)/$$p; \
+ else if test -f $$p; then \
+ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(gnome_aclocaldir)/$$p"; \
+ $(INSTALL_DATA) $$p $(DESTDIR)$(gnome_aclocaldir)/$$p; \
+ fi; fi; \
+ done
+
+uninstall-gnome_aclocalDATA:
+ @$(NORMAL_UNINSTALL)
+ list='$(gnome_aclocal_DATA)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(gnome_aclocaldir)/$$p; \
+ done
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = macros
+
+distdir: $(DISTFILES)
+ here=`cd $(top_builddir) && pwd`; \
+ top_distdir=`cd $(top_distdir) && pwd`; \
+ distdir=`cd $(distdir) && pwd`; \
+ cd $(top_srcdir) \
+ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu macros/Makefile
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am: install-gnome_aclocalDATA
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-gnome_aclocalDATA
+uninstall: uninstall-am
+all-am: Makefile $(DATA)
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(gnome_aclocaldir)
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-generic clean-am
+
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-generic distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: uninstall-gnome_aclocalDATA install-gnome_aclocalDATA tags \
+distdir info-am info dvi-am dvi check check-am installcheck-am \
+installcheck install-exec-am install-exec install-data-am install-data \
+install-am install uninstall-am uninstall all-redirect all-am all \
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+macros.dep: Makefile.am
+ @echo '$$(top_srcdir)/aclocal.m4: $(MACROS:%=macros/%)' > $@
+
+#gnome-macros.dep: Makefile.am
+# @echo '$$(top_srcdir)/aclocal.m4: $(MACROS:%=$(gnome_aclocaldir)/%)' > $@
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/apps/X11/InstallMgr/macros/Makefile.am b/apps/X11/InstallMgr/macros/Makefile.am
new file mode 100644
index 0000000..e03dbee
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/Makefile.am
@@ -0,0 +1,40 @@
+## Please update this variable if any new macros are created
+MACROS= \
+ aclocal-include.m4 \
+ compiler-flags.m4 \
+ curses.m4 \
+ gnome-bonobo-check.m4 \
+ gnome-fileutils.m4 \
+ gnome-gettext.m4 \
+ gnome-ghttp-check.m4 \
+ gnome-gnorba-check.m4 \
+ gnome-guile-checks.m4 \
+ gnome-libgtop-check.m4 \
+ gnome-objc-checks.m4 \
+ gnome-orbit-check.m4 \
+ gnome-print-check.m4 \
+ gnome-pthread-check.m4 \
+ gnome-support.m4 \
+ gnome-undelfs.m4 \
+ gnome-vfs.m4 \
+ gnome-x-checks.m4 \
+ gnome-xml-check.m4 \
+ gnome.m4 \
+ linger.m4 \
+ need-declaration.m4
+
+EXTRA_DIST=$(MACROS) gnome-common.m4 autogen.sh
+MAINTAINERCLEANFILES=macros.dep
+
+@MAINT@macros.dep: Makefile.am
+@MAINT@ @echo '$$(top_srcdir)/aclocal.m4: $(MACROS:%=macros/%)' > $@
+
+if INSIDE_GNOME_COMMON
+gnome_aclocaldir = $(datadir)/aclocal/gnome
+
+gnome-macros.dep: Makefile.am
+ @echo '$$(top_srcdir)/aclocal.m4: $(MACROS:%=$(gnome_aclocaldir)/%)' > $@
+
+gnome_aclocal_DATA = $(MACROS) gnome-macros.dep gnome-common.m4 autogen.sh
+
+endif
diff --git a/apps/X11/InstallMgr/macros/Makefile.in b/apps/X11/InstallMgr/macros/Makefile.in
new file mode 100644
index 0000000..6b477be
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/Makefile.in
@@ -0,0 +1,255 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CXX = @CXX@
+DATADIRNAME = @DATADIRNAME@
+GENCAT = @GENCAT@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNOMEGNORBA_LIBS = @GNOMEGNORBA_LIBS@
+GNOMEUI_LIBS = @GNOMEUI_LIBS@
+GNOME_APPLETS_LIBS = @GNOME_APPLETS_LIBS@
+GNOME_CAPPLET_LIBS = @GNOME_CAPPLET_LIBS@
+GNOME_CONFIG = @GNOME_CONFIG@
+GNOME_INCLUDEDIR = @GNOME_INCLUDEDIR@
+GNOME_LIBDIR = @GNOME_LIBDIR@
+GNOME_LIBS = @GNOME_LIBS@
+GNORBA_CFLAGS = @GNORBA_CFLAGS@
+GNORBA_LIBS = @GNORBA_LIBS@
+GTKXMHTML_LIBS = @GTKXMHTML_LIBS@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_CONFIG = @GTK_CONFIG@
+GTK_LIBS = @GTK_LIBS@
+GT_NO = @GT_NO@
+GT_YES = @GT_YES@
+INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
+INSTOBJEXT = @INSTOBJEXT@
+INTLDEPS = @INTLDEPS@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+ORBIT_CFLAGS = @ORBIT_CFLAGS@
+ORBIT_CONFIG = @ORBIT_CONFIG@
+ORBIT_IDL = @ORBIT_IDL@
+ORBIT_LIBS = @ORBIT_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_PIXMAPS_DIR = @PACKAGE_PIXMAPS_DIR@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PTHREAD_LIB = @PTHREAD_LIB@
+RANLIB = @RANLIB@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XPM_LIBS = @XPM_LIBS@
+ZVT_LIBS = @ZVT_LIBS@
+cflags_set = @cflags_set@
+cxxflags_set = @cxxflags_set@
+l = @l@
+
+MACROS = aclocal-include.m4 compiler-flags.m4 curses.m4 gnome-bonobo-check.m4 gnome-fileutils.m4 gnome-gettext.m4 gnome-ghttp-check.m4 gnome-gnorba-check.m4 gnome-guile-checks.m4 gnome-libgtop-check.m4 gnome-objc-checks.m4 gnome-orbit-check.m4 gnome-print-check.m4 gnome-pthread-check.m4 gnome-support.m4 gnome-undelfs.m4 gnome-vfs.m4 gnome-x-checks.m4 gnome-xml-check.m4 gnome.m4 linger.m4 need-declaration.m4
+
+
+EXTRA_DIST = $(MACROS) gnome-common.m4 autogen.sh
+MAINTAINERCLEANFILES = macros.dep
+
+@INSIDE_GNOME_COMMON_TRUE@gnome_aclocaldir = $(datadir)/aclocal/gnome
+
+@INSIDE_GNOME_COMMON_TRUE@gnome_aclocal_DATA = $(MACROS) gnome-macros.dep gnome-common.m4 autogen.sh
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES =
+DATA = $(gnome_aclocal_DATA)
+
+DIST_COMMON = Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu macros/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+install-gnome_aclocalDATA: $(gnome_aclocal_DATA)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(gnome_aclocaldir)
+ @list='$(gnome_aclocal_DATA)'; for p in $$list; do \
+ if test -f $(srcdir)/$$p; then \
+ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(gnome_aclocaldir)/$$p"; \
+ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(gnome_aclocaldir)/$$p; \
+ else if test -f $$p; then \
+ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(gnome_aclocaldir)/$$p"; \
+ $(INSTALL_DATA) $$p $(DESTDIR)$(gnome_aclocaldir)/$$p; \
+ fi; fi; \
+ done
+
+uninstall-gnome_aclocalDATA:
+ @$(NORMAL_UNINSTALL)
+ list='$(gnome_aclocal_DATA)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(gnome_aclocaldir)/$$p; \
+ done
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = macros
+
+distdir: $(DISTFILES)
+ here=`cd $(top_builddir) && pwd`; \
+ top_distdir=`cd $(top_distdir) && pwd`; \
+ distdir=`cd $(distdir) && pwd`; \
+ cd $(top_srcdir) \
+ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu macros/Makefile
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am: install-gnome_aclocalDATA
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-gnome_aclocalDATA
+uninstall: uninstall-am
+all-am: Makefile $(DATA)
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(gnome_aclocaldir)
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-generic clean-am
+
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-generic distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: uninstall-gnome_aclocalDATA install-gnome_aclocalDATA tags \
+distdir info-am info dvi-am dvi check check-am installcheck-am \
+installcheck install-exec-am install-exec install-data-am install-data \
+install-am install uninstall-am uninstall all-redirect all-am all \
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+macros.dep: Makefile.am
+ @echo '$$(top_srcdir)/aclocal.m4: $(MACROS:%=macros/%)' > $@
+
+@INSIDE_GNOME_COMMON_TRUE@gnome-macros.dep: Makefile.am
+@INSIDE_GNOME_COMMON_TRUE@ @echo '$$(top_srcdir)/aclocal.m4: $(MACROS:%=$(gnome_aclocaldir)/%)' > $@
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/apps/X11/InstallMgr/macros/aclocal-include.m4 b/apps/X11/InstallMgr/macros/aclocal-include.m4
new file mode 100644
index 0000000..abf6533
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/aclocal-include.m4
@@ -0,0 +1,16 @@
+# aclocal-include.m4
+#
+# This macro adds the name macrodir to the set of directories
+# that `aclocal' searches for macros.
+
+# serial 1
+
+dnl AM_ACLOCAL_INCLUDE(macrodir)
+AC_DEFUN([AM_ACLOCAL_INCLUDE],
+[
+ AM_CONDITIONAL(INSIDE_GNOME_COMMON, test x = y)
+
+ test -n "$ACLOCAL_FLAGS" && ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
+
+ for k in $1 ; do ACLOCAL="$ACLOCAL -I $k" ; done
+])
diff --git a/apps/X11/InstallMgr/macros/autogen.sh b/apps/X11/InstallMgr/macros/autogen.sh
new file mode 100644
index 0000000..7027391
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/autogen.sh
@@ -0,0 +1,145 @@
+#!/bin/sh
+# Run this to generate all the initial makefiles, etc.
+
+DIE=0
+
+(autoconf --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "**Error**: You must have \`autoconf' installed to compile Gnome."
+ echo "Download the appropriate package for your distribution,"
+ echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
+ DIE=1
+}
+
+(grep "^AM_PROG_LIBTOOL" $srcdir/configure.in >/dev/null) && {
+ (libtool --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "**Error**: You must have \`libtool' installed to compile Gnome."
+ echo "Get ftp://ftp.gnu.org/pub/gnu/libtool-1.2d.tar.gz"
+ echo "(or a newer version if it is available)"
+ DIE=1
+ }
+}
+
+grep "^AM_GNU_GETTEXT" $srcdir/configure.in >/dev/null && {
+ grep "sed.*POTFILES" $srcdir/configure.in >/dev/null || \
+ (gettext --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "**Error**: You must have \`gettext' installed to compile Gnome."
+ echo "Get ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz"
+ echo "(or a newer version if it is available)"
+ DIE=1
+ }
+}
+
+grep "^AM_GNOME_GETTEXT" $srcdir/configure.in >/dev/null && {
+ grep "sed.*POTFILES" $srcdir/configure.in >/dev/null || \
+ (gettext --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "**Error**: You must have \`gettext' installed to compile Gnome."
+ echo "Get ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz"
+ echo "(or a newer version if it is available)"
+ DIE=1
+ }
+}
+
+(automake --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "**Error**: You must have \`automake' installed to compile Gnome."
+ echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz"
+ echo "(or a newer version if it is available)"
+ DIE=1
+ NO_AUTOMAKE=yes
+}
+
+
+# if no automake, don't bother testing for aclocal
+test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "**Error**: Missing \`aclocal'. The version of \`automake'"
+ echo "installed doesn't appear recent enough."
+ echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz"
+ echo "(or a newer version if it is available)"
+ DIE=1
+}
+
+if test "$DIE" -eq 1; then
+ exit 1
+fi
+
+if test -z "$*"; then
+ echo "**Warning**: I am going to run \`configure' with no arguments."
+ echo "If you wish to pass any to it, please specify them on the"
+ echo \`$0\'" command line."
+ echo
+fi
+
+case $CC in
+xlc )
+ am_opt=--include-deps;;
+esac
+
+for coin in `find $srcdir -name configure.in -print`
+do
+ dr=`dirname $coin`
+ if test -f $dr/NO-AUTO-GEN; then
+ echo skipping $dr -- flagged as no auto-gen
+ else
+ echo processing $dr
+ macrodirs=`sed -n -e 's,AM_ACLOCAL_INCLUDE(\(.*\)),\1,gp' < $coin`
+ ( cd $dr
+ aclocalinclude="$ACLOCAL_FLAGS"
+ for k in $macrodirs; do
+ if test -d $k; then
+ aclocalinclude="$aclocalinclude -I $k"
+ ##else
+ ## echo "**Warning**: No such directory \`$k'. Ignored."
+ fi
+ done
+ if grep "^AM_GNU_GETTEXT" configure.in >/dev/null; then
+ if grep "sed.*POTFILES" configure.in >/dev/null; then
+ : do nothing -- we still have an old unmodified configure.in
+ else
+ echo "Creating $dr/aclocal.m4 ..."
+ test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
+ echo "Running gettextize... Ignore non-fatal messages."
+ echo "no" | gettextize --force --copy
+ echo "Making $dr/aclocal.m4 writable ..."
+ test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
+ fi
+ fi
+ if grep "^AM_GNOME_GETTEXT" configure.in >/dev/null; then
+ echo "Creating $dr/aclocal.m4 ..."
+ test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
+ echo "Running gettextize... Ignore non-fatal messages."
+ echo "no" | gettextize --force --copy
+ echo "Making $dr/aclocal.m4 writable ..."
+ test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
+ fi
+ if grep "^AM_PROG_LIBTOOL" configure.in >/dev/null; then
+ echo "Running libtoolize..."
+ libtoolize --force --copy
+ fi
+ echo "Running aclocal $aclocalinclude ..."
+ aclocal $aclocalinclude
+ if grep "^AM_CONFIG_HEADER" configure.in >/dev/null; then
+ echo "Running autoheader..."
+ autoheader
+ fi
+ echo "Running automake --gnu $am_opt ..."
+ automake --add-missing --gnu $am_opt
+ echo "Running autoconf ..."
+ autoconf
+ )
+ fi
+done
+
+conf_flags="--enable-maintainer-mode --enable-compile-warnings" #--enable-iso-c
+
+if test x$NOCONFIGURE = x; then
+ echo Running $srcdir/configure $conf_flags "$@" ...
+ $srcdir/configure $conf_flags "$@" \
+ && echo Now type \`make\' to compile $PKG_NAME || exit 1
+else
+ echo Skipping configure process.
+fi
diff --git a/apps/X11/InstallMgr/macros/compiler-flags.m4 b/apps/X11/InstallMgr/macros/compiler-flags.m4
new file mode 100644
index 0000000..63f8e2e
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/compiler-flags.m4
@@ -0,0 +1,109 @@
+dnl GNOME_COMPILE_WARNINGS
+dnl Turn on many useful compiler warnings
+dnl For now, only works on GCC
+AC_DEFUN([GNOME_COMPILE_WARNINGS],[
+ AC_ARG_ENABLE(compile-warnings,
+ [ --enable-compile-warnings=[no/minimum/yes] Turn on compiler warnings.],,enable_compile_warnings=minimum)
+
+ AC_MSG_CHECKING(what warning flags to pass to the C compiler)
+ warnCFLAGS=
+ if test "x$GCC" != xyes; then
+ enable_compile_warnings=no
+ fi
+
+ if test "x$enable_compile_warnings" != "xno"; then
+ if test "x$GCC" = "xyes"; then
+ case " $CFLAGS " in
+ *[\ \ ]-Wall[\ \ ]*) ;;
+ *) warnCFLAGS="-Wall -Wunused" ;;
+ esac
+
+ ## -W is not all that useful. And it cannot be controlled
+ ## with individual -Wno-xxx flags, unlike -Wall
+ if test "x$enable_compile_warnings" = "xyes"; then
+ warnCFLAGS="$warnCFLAGS -Wmissing-prototypes -Wmissing-declarations"
+ fi
+ fi
+ fi
+ AC_MSG_RESULT($warnCFLAGS)
+
+ AC_ARG_ENABLE(iso-c,
+ [ --enable-iso-c Try to warn if code is not ISO C ],,
+ enable_iso_c=no)
+
+ AC_MSG_CHECKING(what language compliance flags to pass to the C compiler)
+ complCFLAGS=
+ if test "x$enable_iso_c" != "xno"; then
+ if test "x$GCC" = "xyes"; then
+ case " $CFLAGS " in
+ *[\ \ ]-ansi[\ \ ]*) ;;
+ *) complCFLAGS="$complCFLAGS -ansi" ;;
+ esac
+
+ case " $CFLAGS " in
+ *[\ \ ]-pedantic[\ \ ]*) ;;
+ *) complCFLAGS="$complCFLAGS -pedantic" ;;
+ esac
+ fi
+ fi
+ AC_MSG_RESULT($complCFLAGS)
+ if test "x$cflags_set" != "xyes"; then
+ CFLAGS="$CFLAGS $warnCFLAGS $complCFLAGS"
+ cflags_set=yes
+ AC_SUBST(cflags_set)
+ fi
+])
+
+dnl For C++, do basically the same thing.
+
+AC_DEFUN([GNOME_CXX_WARNINGS],[
+ AC_ARG_ENABLE(cxx-warnings,
+ [ --enable-cxx-warnings=[no/minimum/yes] Turn on compiler warnings.],,enable_cxx_warnings=minimum)
+
+ AC_MSG_CHECKING(what warning flags to pass to the C++ compiler)
+ warnCXXFLAGS=
+ if test "x$GCC" != xyes; then
+ enable_compile_warnings=no
+ fi
+ if test "x$enable_cxx_warnings" != "xno"; then
+ if test "x$GCC" = "xyes"; then
+ case " $CXXFLAGS " in
+ *[\ \ ]-Wall[\ \ ]*) ;;
+ *) warnCXXFLAGS="-Wall -Wno-unused" ;;
+ esac
+
+ ## -W is not all that useful. And it cannot be controlled
+ ## with individual -Wno-xxx flags, unlike -Wall
+ if test "x$enable_cxx_warnings" = "xyes"; then
+ warnCXXFLAGS="$warnCXXFLAGS -Wmissing-prototypes -Wmissing-declarations -Wshadow -Woverloaded-virtual"
+ fi
+ fi
+ fi
+ AC_MSG_RESULT($warnCXXFLAGS)
+
+ AC_ARG_ENABLE(iso-cxx,
+ [ --enable-iso-cxx Try to warn if code is not ISO C++ ],,
+ enable_iso_cxx=no)
+
+ AC_MSG_CHECKING(what language compliance flags to pass to the C++ compiler)
+ complCXXFLAGS=
+ if test "x$enable_iso_cxx" != "xno"; then
+ if test "x$GCC" = "xyes"; then
+ case " $CXXFLAGS " in
+ *[\ \ ]-ansi[\ \ ]*) ;;
+ *) complCXXFLAGS="$complCXXFLAGS -ansi" ;;
+ esac
+
+ case " $CXXFLAGS " in
+ *[\ \ ]-pedantic[\ \ ]*) ;;
+ *) complCXXFLAGS="$complCXXFLAGS -pedantic" ;;
+ esac
+ fi
+ fi
+ AC_MSG_RESULT($complCXXFLAGS)
+ if test "x$cxxflags_set" != "xyes"; then
+ CXXFLAGS="$CXXFLAGS $warnCXXFLAGS $complCXXFLAGS"
+ cxxflags_set=yes
+ AC_SUBST(cxxflags_set)
+ fi
+])
diff --git a/apps/X11/InstallMgr/macros/curses.m4 b/apps/X11/InstallMgr/macros/curses.m4
new file mode 100644
index 0000000..3dd4ffa
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/curses.m4
@@ -0,0 +1,318 @@
+dnl Curses detection: Munged from Midnight Commander's configure.in
+dnl
+dnl What it does:
+dnl =============
+dnl
+dnl - Determine which version of curses is installed on your system
+dnl and set the -I/-L/-l compiler entries and add a few preprocessor
+dnl symbols
+dnl - Do an AC_SUBST on the CURSES_INCLUDEDIR and CURSES_LIBS so that
+dnl @CURSES_INCLUDEDIR@ and @CURSES_LIBS@ will be available in
+dnl Makefile.in's
+dnl - Modify the following configure variables (these are the only
+dnl curses.m4 variables you can access from within configure.in)
+dnl CURSES_INCLUDEDIR - contains -I's and possibly -DRENAMED_CURSES if
+dnl an ncurses.h that's been renamed to curses.h
+dnl is found.
+dnl CURSES_LIBS - sets -L and -l's appropriately
+dnl CFLAGS - if --with-sco, add -D_SVID3
+dnl has_curses - exports result of tests to rest of configure
+dnl
+dnl Usage:
+dnl ======
+dnl 1) Add lines indicated below to acconfig.h
+dnl 2) call AC_CHECK_CURSES after AC_PROG_CC in your configure.in
+dnl 3) Instead of #include <curses.h> you should use the following to
+dnl properly locate ncurses or curses header file
+dnl
+dnl #if defined(USE_NCURSES) && !defined(RENAMED_NCURSES)
+dnl #include <ncurses.h>
+dnl #else
+dnl #include <curses.h>
+dnl #endif
+dnl
+dnl 4) Make sure to add @CURSES_INCLUDEDIR@ to your preprocessor flags
+dnl 5) Make sure to add @CURSES_LIBS@ to your linker flags or LIBS
+dnl
+dnl Notes with automake:
+dnl - call AM_CONDITIONAL(HAS_CURSES, test "$has_curses" = true) from
+dnl configure.in
+dnl - your Makefile.am can look something like this
+dnl -----------------------------------------------
+dnl INCLUDES= blah blah blah $(CURSES_INCLUDEDIR)
+dnl if HAS_CURSES
+dnl CURSES_TARGETS=name_of_curses_prog
+dnl endif
+dnl bin_PROGRAMS = other_programs $(CURSES_TARGETS)
+dnl other_programs_SOURCES = blah blah blah
+dnl name_of_curses_prog_SOURCES = blah blah blah
+dnl other_programs_LDADD = blah
+dnl name_of_curses_prog_LDADD = blah $(CURSES_LIBS)
+dnl -----------------------------------------------
+dnl
+dnl
+dnl The following lines should be added to acconfig.h:
+dnl ==================================================
+dnl
+dnl /*=== Curses version detection defines ===*/
+dnl /* Found some version of curses that we're going to use */
+dnl #undef HAS_CURSES
+dnl
+dnl /* Use SunOS SysV curses? */
+dnl #undef USE_SUNOS_CURSES
+dnl
+dnl /* Use old BSD curses - not used right now */
+dnl #undef USE_BSD_CURSES
+dnl
+dnl /* Use SystemV curses? */
+dnl #undef USE_SYSV_CURSES
+dnl
+dnl /* Use Ncurses? */
+dnl #undef USE_NCURSES
+dnl
+dnl /* If you Curses does not have color define this one */
+dnl #undef NO_COLOR_CURSES
+dnl
+dnl /* Define if you want to turn on SCO-specific code */
+dnl #undef SCO_FLAVOR
+dnl
+dnl /* Set to reflect version of ncurses *
+dnl * 0 = version 1.*
+dnl * 1 = version 1.9.9g
+dnl * 2 = version 4.0/4.1 */
+dnl #undef NCURSES_970530
+dnl
+dnl /*=== End new stuff for acconfig.h ===*/
+dnl
+
+
+AC_DEFUN(AC_CHECK_CURSES,[
+ search_ncurses=true
+ screen_manager=""
+ has_curses=false
+
+ CFLAGS=${CFLAGS--O}
+
+ AC_SUBST(CURSES_LIBS)
+ AC_SUBST(CURSES_INCLUDEDIR)
+
+ AC_ARG_WITH(sco,
+ [ --with-sco Use this to turn on SCO-specific code],[
+ if test x$withval = xyes; then
+ AC_DEFINE(SCO_FLAVOR)
+ CFLAGS="$CFLAGS -D_SVID3"
+ fi
+ ])
+
+ AC_ARG_WITH(sunos-curses,
+ [ --with-sunos-curses Used to force SunOS 4.x curses],[
+ if test x$withval = xyes; then
+ AC_USE_SUNOS_CURSES
+ fi
+ ])
+
+ AC_ARG_WITH(osf1-curses,
+ [ --with-osf1-curses Used to force OSF/1 curses],[
+ if test x$withval = xyes; then
+ AC_USE_OSF1_CURSES
+ fi
+ ])
+
+ AC_ARG_WITH(vcurses,
+ [ --with-vcurses[=incdir] Used to force SysV curses],
+ if test x$withval != xyes; then
+ CURSES_INCLUDEDIR="-I$withval"
+ fi
+ AC_USE_SYSV_CURSES
+ )
+
+ AC_ARG_WITH(ncurses,
+ [ --with-ncurses[=dir] Compile with ncurses/locate base dir],
+ if test x$withval = xno ; then
+ search_ncurses=false
+ elif test x$withval != xyes ; then
+ CURSES_LIBS="$LIBS -L$withval/lib -lncurses"
+ CURSES_INCLUDEDIR="-I$withval/include"
+ search_ncurses=false
+ screen_manager="ncurses"
+ AC_DEFINE(USE_NCURSES)
+ AC_DEFINE(HAS_CURSES)
+ has_curses=true
+ fi
+ )
+
+ if $search_ncurses
+ then
+ AC_SEARCH_NCURSES()
+ fi
+
+
+])
+
+
+AC_DEFUN(AC_USE_SUNOS_CURSES, [
+ search_ncurses=false
+ screen_manager="SunOS 4.x /usr/5include curses"
+ AC_MSG_RESULT(Using SunOS 4.x /usr/5include curses)
+ AC_DEFINE(USE_SUNOS_CURSES)
+ AC_DEFINE(HAS_CURSES)
+ has_curses=true
+ AC_DEFINE(NO_COLOR_CURSES)
+ AC_DEFINE(USE_SYSV_CURSES)
+ CURSES_INCLUDEDIR="-I/usr/5include"
+ CURSES_LIBS="/usr/5lib/libcurses.a /usr/5lib/libtermcap.a"
+ AC_MSG_RESULT(Please note that some screen refreshs may fail)
+])
+
+AC_DEFUN(AC_USE_OSF1_CURSES, [
+ AC_MSG_RESULT(Using OSF1 curses)
+ search_ncurses=false
+ screen_manager="OSF1 curses"
+ AC_DEFINE(HAS_CURSES)
+ has_curses=true
+ AC_DEFINE(NO_COLOR_CURSES)
+ AC_DEFINE(USE_SYSV_CURSES)
+ CURSES_LIBS="-lcurses"
+])
+
+AC_DEFUN(AC_USE_SYSV_CURSES, [
+ AC_MSG_RESULT(Using SysV curses)
+ AC_DEFINE(HAS_CURSES)
+ has_curses=true
+ AC_DEFINE(USE_SYSV_CURSES)
+ search_ncurses=false
+ screen_manager="SysV/curses"
+ CURSES_LIBS="-lcurses"
+])
+
+dnl AC_ARG_WITH(bsd-curses,
+dnl [--with-bsd-curses Used to compile with bsd curses, not very fancy],
+dnl search_ncurses=false
+dnl screen_manager="Ultrix/cursesX"
+dnl if test $system = ULTRIX
+dnl then
+dnl THIS_CURSES=cursesX
+dnl else
+dnl THIS_CURSES=curses
+dnl fi
+dnl
+dnl CURSES_LIBS="-l$THIS_CURSES -ltermcap"
+dnl AC_DEFINE(HAS_CURSES)
+dnl has_curses=true
+dnl AC_DEFINE(USE_BSD_CURSES)
+dnl AC_MSG_RESULT(Please note that some screen refreshs may fail)
+dnl AC_WARN(Use of the bsdcurses extension has some)
+dnl AC_WARN(display/input problems.)
+dnl AC_WARN(Reconsider using xcurses)
+dnl)
+
+
+dnl
+dnl Parameters: directory filename cureses_LIBS curses_INCLUDEDIR nicename
+dnl
+AC_DEFUN(AC_NCURSES, [
+ if $search_ncurses
+ then
+ if test -f $1/$2
+ then
+ AC_MSG_RESULT(Found ncurses on $1/$2)
+ CURSES_LIBS="$3"
+ CURSES_INCLUDEDIR="$4"
+ search_ncurses=false
+ screen_manager=$5
+ AC_DEFINE(HAS_CURSES)
+ has_curses=true
+ AC_DEFINE(USE_NCURSES)
+ fi
+ fi
+])
+
+AC_DEFUN(AC_SEARCH_NCURSES, [
+ AC_CHECKING("location of ncurses.h file")
+
+ AC_NCURSES(/usr/include, ncurses.h, -lncurses,, "ncurses on /usr/include")
+ AC_NCURSES(/usr/include/ncurses, ncurses.h, -lncurses, -I/usr/include/ncurses, "ncurses on /usr/include/ncurses")
+ AC_NCURSES(/usr/local/include, ncurses.h, -L/usr/local/lib -lncurses, -I/usr/local/include, "ncurses on /usr/local")
+ AC_NCURSES(/usr/local/include/ncurses, ncurses.h, -L/usr/local/lib -L/usr/local/lib/ncurses -lncurses, -I/usr/local/include/ncurses, "ncurses on /usr/local/include/ncurses")
+
+ AC_NCURSES(/usr/local/include/ncurses, curses.h, -L/usr/local/lib -lncurses, -I/usr/local/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/local/.../ncurses")
+
+ AC_NCURSES(/usr/include/ncurses, curses.h, -lncurses, -I/usr/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/include/ncurses")
+
+ dnl
+ dnl We couldn't find ncurses, try SysV curses
+ dnl
+ if $search_ncurses
+ then
+ AC_EGREP_HEADER(init_color, /usr/include/curses.h,
+ AC_USE_SYSV_CURSES)
+ AC_EGREP_CPP(USE_NCURSES,[
+#include <curses.h>
+#ifdef __NCURSES_H
+#undef USE_NCURSES
+USE_NCURSES
+#endif
+],[
+ CURSES_INCLUDEDIR="$CURSES_INCLUDEDIR -DRENAMED_NCURSES"
+ AC_DEFINE(HAS_CURSES)
+ has_curses=true
+ AC_DEFINE(USE_NCURSES)
+ search_ncurses=false
+ screen_manager="ncurses installed as curses"
+])
+ fi
+
+ dnl
+ dnl Try SunOS 4.x /usr/5{lib,include} ncurses
+ dnl The flags USE_SUNOS_CURSES, USE_BSD_CURSES and BUGGY_CURSES
+ dnl should be replaced by a more fine grained selection routine
+ dnl
+ if $search_ncurses
+ then
+ if test -f /usr/5include/curses.h
+ then
+ AC_USE_SUNOS_CURSES
+ fi
+ else
+ # check for ncurses version, to properly ifdef mouse-fix
+ AC_MSG_CHECKING(for ncurses version)
+ ncurses_version=unknown
+cat > conftest.$ac_ext <<EOF
+[#]line __oline__ "configure"
+#include "confdefs.h"
+#ifdef RENAMED_NCURSES
+#include <curses.h>
+#else
+#include <ncurses.h>
+#endif
+#undef VERSION
+VERSION:NCURSES_VERSION
+EOF
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC |
+ egrep "VERSION:" >conftest.out 2>&1; then
+changequote(,)dnl
+ ncurses_version=`cat conftest.out|sed -e 's/^[^"]*"//' -e 's/".*//'`
+changequote([,])dnl
+ fi
+ rm -rf conftest*
+ AC_MSG_RESULT($ncurses_version)
+ case "$ncurses_version" in
+changequote(,)dnl
+ 4.[01])
+changequote([,])dnl
+ AC_DEFINE(NCURSES_970530,2)
+ ;;
+ 1.9.9g)
+ AC_DEFINE(NCURSES_970530,1)
+ ;;
+ 1*)
+ AC_DEFINE(NCURSES_970530,0)
+ ;;
+ esac
+ fi
+])
+
+
+
+
+
diff --git a/apps/X11/InstallMgr/macros/gnome-bonobo-check.m4 b/apps/X11/InstallMgr/macros/gnome-bonobo-check.m4
new file mode 100644
index 0000000..65e272c
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/gnome-bonobo-check.m4
@@ -0,0 +1,150 @@
+# Configure paths for Bonobo
+# Miguel de Icaza, 99-04-12
+# Stolen from Chris Lahey 99-2-5
+# stolen from Manish Singh again
+# stolen back from Frank Belew
+# stolen from Manish Singh
+# Shamelessly stolen from Owen Taylor
+
+dnl AM_PATH_BONOBO ([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for Bonobo, and define BONOBO_CFLAGS and BONOBO_LIBS
+dnl
+AC_DEFUN([AM_PATH_BONOBO],
+[
+dnl
+dnl Get the cflags and libraries from the gnome-config script
+dnl
+AC_ARG_WITH(bonobo-prefix,[ --with-bonobo-prefix=PFX Prefix where Bonobo is installed (optional)],
+ bonobo_prefix="$withval", bonobo_prefix="")
+AC_ARG_WITH(bonobo-exec-prefix,[ --with-bonobo-exec-prefix=PFX Exec prefix where Bonobo is installed (optional)],
+ bonobo_exec_prefix="$withval", bonobo_exec_prefix="")
+AC_ARG_ENABLE(bonobotest, [ --disable-bonobotest Do not try to compile and run a test Bonobo program],
+ , enable_bonobotest=yes)
+
+ if test x$bonobo_exec_prefix != x ; then
+ bonobo_args="$bonobo_args --exec-prefix=$bonobo_exec_prefix"
+ if test x${GNOME_CONFIG+set} != xset ; then
+ GNOME_CONFIG=$bonobo_exec_prefix/bin/gnome-config
+ fi
+ fi
+ if test x$bonobo_prefix != x ; then
+ bonobo_args="$bonobo_args --prefix=$bonobo_prefix"
+ if test x${GNOME_CONFIG+set} != xset ; then
+ GNOME_CONFIG=$bonobo_prefix/bin/gnome-config
+ fi
+ fi
+
+ AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
+ min_bonobo_version=ifelse([$1], ,0.1.0,$1)
+ AC_MSG_CHECKING(for BONOBO - version >= $min_bonobo_version)
+ no_bonobo=""
+ if test "$GNOME_CONFIG" = "no" ; then
+ no_bonobo=yes
+ else
+ BONOBO_CFLAGS=`$GNOME_CONFIG $bonoboconf_args --cflags bonobo`
+ BONOBO_LIBS=`$GNOME_CONFIG $bonoboconf_args --libs bonobo`
+
+ bonobo_major_version=`$GNOME_CONFIG $bonobo_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ bonobo_minor_version=`$GNOME_CONFIG $bonobo_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ bonobo_micro_version=`$GNOME_CONFIG $bonobo_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+ if test "x$enable_bonobotest" = "xyes" ; then
+ ac_save_CFLAGS="$CFLAGS"
+ ac_save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $BONOBO_CFLAGS"
+ LIBS="$LIBS $BONOBO_LIBS"
+dnl
+dnl Now check if the installed BONOBO is sufficiently new. (Also sanity
+dnl checks the results of gnome-config to some extent
+dnl
+ rm -f conf.bonobotest
+ AC_TRY_RUN([
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <bonobo/gnome-object.h>
+
+static char*
+my_strdup (char *str)
+{
+ char *new_str;
+
+ if (str)
+ {
+ new_str = malloc ((strlen (str) + 1) * sizeof(char));
+ strcpy (new_str, str);
+ }
+ else
+ new_str = NULL;
+
+ return new_str;
+}
+
+int main ()
+{
+ int major, minor, micro;
+ char *tmp_version;
+
+ system ("touch conf.bonobotest");
+ gnome_object_get_type ();
+ return 0;
+}
+
+],, no_bonobo=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ if test "x$no_bonobo" = x ; then
+ AC_MSG_RESULT(yes)
+ ifelse([$2], , :, [$2])
+ else
+ AC_MSG_RESULT(no)
+ if test "$GNOME_CONFIG" = "no" ; then
+ echo "*** The gnome-config script installed by GNOME-LIBS could not be found"
+ echo "*** If BONOBO was installed in PREFIX, make sure PREFIX/bin is in"
+ echo "*** your path, or set the GNOME_CONFIG environment variable to the"
+ echo "*** full path to gnome-config."
+ else
+ if test -f conf.bonobotest ; then
+ :
+ else
+ echo "*** Could not run BONOBO test program, checking why..."
+ CFLAGS="$CFLAGS $BONOBO_CFLAGS"
+ LIBS="$LIBS $BONOBO_LIBS"
+ AC_TRY_LINK([
+#include <stdio.h>
+#include <bonobo/gnome-object.h>
+], [ return 0; ],
+ [ echo "*** The test program compiled, but did not run. This usually means"
+ echo "*** that the run-time linker is not finding BONOBO or finding the wrong"
+ echo "*** version of BONOBO. If it is not finding BONOBO, you'll need to set your"
+ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+ echo "*** to the installed location Also, make sure you have run ldconfig if that"
+ echo "*** is required on your system"
+ echo "***"
+ echo "*** If you have an old version installed, it is best to remove it, although"
+ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
+ [ echo "*** The test program failed to compile or link. See the file config.log for the"
+ echo "*** exact error that occured. This usually means BONOBO was incorrectly installed"
+ echo "*** or that you have moved BONOBO since it was installed. In the latter case, you"
+ echo "*** may want to edit the gnome-config script: $GNOME_CONFIG" ])
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ BONOBO_CFLAGS=""
+ BONOBO_LIBS=""
+ ifelse([$3], , :, [$3])
+ fi
+ AC_SUBST(BONOBO_CFLAGS)
+ AC_SUBST(BONOBO_LIBS)
+ rm -f conf.bonobotest
+])
+
+AC_DEFUN([BONOBO_CHECK], [
+ AM_PATH_BONOBO(0.1.0,,[AC_MSG_ERROR(BONOBO not found)])
+])
+
diff --git a/apps/X11/InstallMgr/macros/gnome-common.m4 b/apps/X11/InstallMgr/macros/gnome-common.m4
new file mode 100644
index 0000000..b723829
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/gnome-common.m4
@@ -0,0 +1,14 @@
+# gnome-common.m4
+#
+# This only for packages that are not in the GNOME CVS tree.
+
+dnl GNOME_COMMON_INIT
+
+AC_DEFUN([GNOME_COMMON_INIT],
+[
+ GNOME_ACLOCAL_DIR=`$ACLOCAL --print-ac-dir`/gnome
+ AC_SUBST(GNOME_ACLOCAL_DIR)
+
+ ACLOCAL="$ACLOCAL -I $GNOME_ACLOCAL_DIR"
+])
+
diff --git a/apps/X11/InstallMgr/macros/gnome-fileutils.m4 b/apps/X11/InstallMgr/macros/gnome-fileutils.m4
new file mode 100644
index 0000000..7c11a78
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/gnome-fileutils.m4
@@ -0,0 +1,414 @@
+dnl
+dnl GNOME_FILEUTILS_CHECKS
+dnl
+dnl checks that are needed for the diskusage applet.
+dnl
+
+AC_DEFUN([GNOME_FILEUTILS_CHECKS],
+[
+AC_CHECK_HEADERS(fcntl.h sys/param.h sys/statfs.h sys/fstyp.h \
+mnttab.h mntent.h sys/statvfs.h sys/vfs.h sys/mount.h \
+sys/filsys.h sys/fs_types.h sys/fs/s5param.h)
+
+AC_CHECK_FUNCS(bcopy endgrent endpwent fchdir ftime ftruncate \
+getcwd getmntinfo gettimeofday isascii lchown \
+listmntent memcpy mkfifo strchr strerror strrchr vprintf)
+
+dnl Set some defaults when cross-compiling
+
+if test x$cross_compiling = xyes ; then
+ case "$host_os" in
+ linux*)
+ fu_cv_sys_mounted_getmntent1=yes
+ fu_cv_sys_stat_statfs2_bsize=yes
+ ;;
+ sunos*)
+ fu_cv_sys_stat_statfs4=yes
+ ;;
+ freebsd*)
+ fu_cv_sys_stat_statfs2_bsize=yes
+ ;;
+ osf*)
+ fu_cv_sys_stat_statfs3_osf1=yes
+ ;;
+ esac
+fi
+
+# Determine how to get the list of mounted filesystems.
+list_mounted_fs=
+
+# If the getmntent function is available but not in the standard library,
+# make sure LIBS contains -lsun (on Irix4) or -lseq (on PTX).
+AC_FUNC_GETMNTENT
+
+# This test must precede the ones for getmntent because Unicos-9 is
+# reported to have the getmntent function, but its support is incompatible
+# with other getmntent implementations.
+
+# NOTE: Normally, I wouldn't use a check for system type as I've done for
+# `CRAY' below since that goes against the whole autoconf philosophy. But
+# I think there is too great a chance that some non-Cray system has a
+# function named listmntent to risk the false positive.
+
+if test -z "$list_mounted_fs"; then
+# Cray UNICOS 9
+AC_MSG_CHECKING([for listmntent of Cray/Unicos-9])
+AC_CACHE_VAL(fu_cv_sys_mounted_cray_listmntent,
+[fu_cv_sys_mounted_cray_listmntent=no
+AC_EGREP_CPP(yes,
+[#ifdef _CRAY
+yes
+#endif
+], [test $ac_cv_func_listmntent = yes \
+&& fu_cv_sys_mounted_cray_listmntent=yes]
+)
+]
+)
+AC_MSG_RESULT($fu_cv_sys_mounted_cray_listmntent)
+if test $fu_cv_sys_mounted_cray_listmntent = yes; then
+list_mounted_fs=found
+AC_DEFINE(MOUNTED_LISTMNTENT)
+fi
+fi
+
+if test $ac_cv_func_getmntent = yes; then
+
+# This system has the getmntent function.
+# Determine whether it's the one-argument variant or the two-argument one.
+
+if test -z "$list_mounted_fs"; then
+# 4.3BSD, SunOS, HP-UX, Dynix, Irix
+AC_MSG_CHECKING([for one-argument getmntent function])
+AC_CACHE_VAL(fu_cv_sys_mounted_getmntent1,
+[test $ac_cv_header_mntent_h = yes \
+&& fu_cv_sys_mounted_getmntent1=yes \
+|| fu_cv_sys_mounted_getmntent1=no])
+AC_MSG_RESULT($fu_cv_sys_mounted_getmntent1)
+if test $fu_cv_sys_mounted_getmntent1 = yes; then
+list_mounted_fs=found
+AC_DEFINE(MOUNTED_GETMNTENT1)
+fi
+fi
+
+if test -z "$list_mounted_fs"; then
+# SVR4
+AC_MSG_CHECKING([for two-argument getmntent function])
+AC_CACHE_VAL(fu_cv_sys_mounted_getmntent2,
+[AC_EGREP_HEADER(getmntent, sys/mnttab.h,
+fu_cv_sys_mounted_getmntent2=yes,
+fu_cv_sys_mounted_getmntent2=no)])
+AC_MSG_RESULT($fu_cv_sys_mounted_getmntent2)
+if test $fu_cv_sys_mounted_getmntent2 = yes; then
+list_mounted_fs=found
+AC_DEFINE(MOUNTED_GETMNTENT2)
+fi
+fi
+
+if test -z "$list_mounted_fs"; then
+AC_MSG_ERROR([could not determine how to read list of mounted filesystems])
+fi
+
+fi
+
+if test -z "$list_mounted_fs"; then
+# DEC Alpha running OSF/1.
+AC_MSG_CHECKING([for getfsstat function])
+AC_CACHE_VAL(fu_cv_sys_mounted_getsstat,
+[AC_TRY_LINK([
+#include <sys/types.h>
+#include <sys/mount.h>
+#include <sys/fs_types.h>],
+[struct statfs *stats;
+int numsys = getfsstat ((struct statfs *)0, 0L, MNT_WAIT); ],
+fu_cv_sys_mounted_getsstat=yes,
+fu_cv_sys_mounted_getsstat=no)])
+AC_MSG_RESULT($fu_cv_sys_mounted_getsstat)
+if test $fu_cv_sys_mounted_getsstat = yes; then
+list_mounted_fs=found
+AC_DEFINE(MOUNTED_GETFSSTAT)
+fi
+fi
+
+if test -z "$list_mounted_fs"; then
+# AIX.
+AC_MSG_CHECKING([for mntctl function and struct vmount])
+AC_CACHE_VAL(fu_cv_sys_mounted_vmount,
+[AC_TRY_CPP([#include <fshelp.h>],
+fu_cv_sys_mounted_vmount=yes,
+fu_cv_sys_mounted_vmount=no)])
+AC_MSG_RESULT($fu_cv_sys_mounted_vmount)
+if test $fu_cv_sys_mounted_vmount = yes; then
+list_mounted_fs=found
+AC_DEFINE(MOUNTED_VMOUNT)
+fi
+fi
+
+if test -z "$list_mounted_fs"; then
+# SVR3
+AC_MSG_CHECKING([for FIXME existence of three headers])
+AC_CACHE_VAL(fu_cv_sys_mounted_fread_fstyp,
+[AC_TRY_CPP([
+#include <sys/statfs.h>
+#include <sys/fstyp.h>
+#include <mnttab.h>],
+fu_cv_sys_mounted_fread_fstyp=yes,
+fu_cv_sys_mounted_fread_fstyp=no)])
+AC_MSG_RESULT($fu_cv_sys_mounted_fread_fstyp)
+if test $fu_cv_sys_mounted_fread_fstyp = yes; then
+list_mounted_fs=found
+AC_DEFINE(MOUNTED_FREAD_FSTYP)
+fi
+fi
+
+if test -z "$list_mounted_fs"; then
+# 4.4BSD and DEC OSF/1.
+AC_MSG_CHECKING([for getmntinfo function])
+AC_CACHE_VAL(fu_cv_sys_mounted_getmntinfo,
+[
+ok=
+if test $ac_cv_func_getmntinfo = yes; then
+AC_EGREP_HEADER(f_type;, sys/mount.h,
+ok=yes)
+fi
+test -n "$ok" \
+&& fu_cv_sys_mounted_getmntinfo=yes \
+|| fu_cv_sys_mounted_getmntinfo=no
+])
+AC_MSG_RESULT($fu_cv_sys_mounted_getmntinfo)
+if test $fu_cv_sys_mounted_getmntinfo = yes; then
+list_mounted_fs=found
+AC_DEFINE(MOUNTED_GETMNTINFO)
+fi
+fi
+
+# FIXME: add a test for netbsd-1.1 here
+
+if test -z "$list_mounted_fs"; then
+# Ultrix
+AC_MSG_CHECKING([for getmnt function])
+AC_CACHE_VAL(fu_cv_sys_mounted_getmnt,
+[AC_TRY_CPP([
+#include <sys/fs_types.h>
+#include <sys/mount.h>],
+fu_cv_sys_mounted_getmnt=yes,
+fu_cv_sys_mounted_getmnt=no)])
+AC_MSG_RESULT($fu_cv_sys_mounted_getmnt)
+if test $fu_cv_sys_mounted_getmnt = yes; then
+list_mounted_fs=found
+AC_DEFINE(MOUNTED_GETMNT)
+fi
+fi
+
+if test -z "$list_mounted_fs"; then
+# SVR2
+AC_MSG_CHECKING([whether it is possible to resort to fread on /etc/mnttab])
+AC_CACHE_VAL(fu_cv_sys_mounted_fread,
+[AC_TRY_CPP([#include <mnttab.h>],
+fu_cv_sys_mounted_fread=yes,
+fu_cv_sys_mounted_fread=no)])
+AC_MSG_RESULT($fu_cv_sys_mounted_fread)
+if test $fu_cv_sys_mounted_fread = yes; then
+list_mounted_fs=found
+AC_DEFINE(MOUNTED_FREAD)
+fi
+fi
+
+if test -z "$list_mounted_fs"; then
+AC_MSG_ERROR([could not determine how to read list of mounted filesystems])
+# FIXME -- no need to abort building the whole package
+# Can't build mountlist.c or anything that needs its functions
+fi
+
+AC_CHECKING(how to get filesystem space usage)
+space=no
+
+# Perform only the link test since it seems there are no variants of the
+# statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
+# because that got a false positive on SCO OSR5. Adding the declaration
+# of a `struct statvfs' causes this test to fail (as it should) on such
+# systems. That system is reported to work fine with STAT_STATFS4 which
+# is what it gets when this test fails.
+if test $space = no; then
+# SVR4
+AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
+[AC_TRY_LINK([#include <sys/types.h>
+#include <sys/statvfs.h>],
+[struct statvfs fsd; statvfs (0, &fsd);],
+fu_cv_sys_stat_statvfs=yes,
+fu_cv_sys_stat_statvfs=no)])
+if test $fu_cv_sys_stat_statvfs = yes; then
+space=yes
+AC_DEFINE(STAT_STATVFS)
+fi
+fi
+
+if test $space = no; then
+# DEC Alpha running OSF/1
+AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
+AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
+[AC_TRY_RUN([
+#include <sys/param.h>
+#include <sys/types.h>
+#include <sys/mount.h>
+main ()
+{
+struct statfs fsd;
+fsd.f_fsize = 0;
+exit (statfs (".", &fsd, sizeof (struct statfs)));
+}],
+fu_cv_sys_stat_statfs3_osf1=yes,
+fu_cv_sys_stat_statfs3_osf1=no,
+fu_cv_sys_stat_statfs3_osf1=no)])
+AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
+if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
+space=yes
+AC_DEFINE(STAT_STATFS3_OSF1)
+fi
+fi
+
+if test $space = no; then
+# AIX
+AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
+member (AIX, 4.3BSD)])
+AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
+[AC_TRY_RUN([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#ifdef HAVE_SYS_MOUNT_H
+#include <sys/mount.h>
+#endif
+#ifdef HAVE_SYS_VFS_H
+#include <sys/vfs.h>
+#endif
+main ()
+{
+struct statfs fsd;
+fsd.f_bsize = 0;
+exit (statfs (".", &fsd));
+}],
+fu_cv_sys_stat_statfs2_bsize=yes,
+fu_cv_sys_stat_statfs2_bsize=no,
+fu_cv_sys_stat_statfs2_bsize=no)])
+AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
+if test $fu_cv_sys_stat_statfs2_bsize = yes; then
+space=yes
+AC_DEFINE(STAT_STATFS2_BSIZE)
+fi
+fi
+
+if test $space = no; then
+# SVR3
+AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
+AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
+[AC_TRY_RUN([#include <sys/types.h>
+#include <sys/statfs.h>
+main ()
+{
+struct statfs fsd;
+exit (statfs (".", &fsd, sizeof fsd, 0));
+}],
+fu_cv_sys_stat_statfs4=yes,
+fu_cv_sys_stat_statfs4=no,
+fu_cv_sys_stat_statfs4=no)])
+AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
+if test $fu_cv_sys_stat_statfs4 = yes; then
+space=yes
+AC_DEFINE(STAT_STATFS4)
+fi
+fi
+
+if test $space = no; then
+# 4.4BSD and NetBSD
+AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
+member (4.4BSD and NetBSD)])
+AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
+[AC_TRY_RUN([#include <sys/types.h>
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#ifdef HAVE_SYS_MOUNT_H
+#include <sys/mount.h>
+#endif
+main ()
+{
+struct statfs fsd;
+fsd.f_fsize = 0;
+exit (statfs (".", &fsd));
+}],
+fu_cv_sys_stat_statfs2_fsize=yes,
+fu_cv_sys_stat_statfs2_fsize=no,
+fu_cv_sys_stat_statfs2_fsize=no)])
+AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
+if test $fu_cv_sys_stat_statfs2_fsize = yes; then
+space=yes
+AC_DEFINE(STAT_STATFS2_FSIZE)
+fi
+fi
+
+if test $space = no; then
+# Ultrix
+AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
+AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
+[AC_TRY_RUN([#include <sys/types.h>
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#ifdef HAVE_SYS_MOUNT_H
+#include <sys/mount.h>
+#endif
+#ifdef HAVE_SYS_FS_TYPES_H
+#include <sys/fs_types.h>
+#endif
+main ()
+{
+struct fs_data fsd;
+/* Ultrix's statfs returns 1 for success,
+0 for not mounted, -1 for failure. */
+exit (statfs (".", &fsd) != 1);
+}],
+fu_cv_sys_stat_fs_data=yes,
+fu_cv_sys_stat_fs_data=no,
+fu_cv_sys_stat_fs_data=no)])
+AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
+if test $fu_cv_sys_stat_fs_data = yes; then
+space=yes
+AC_DEFINE(STAT_STATFS2_FS_DATA)
+fi
+fi
+
+if test $space = no; then
+# SVR2
+AC_TRY_CPP([#include <sys/filsys.h>],
+AC_DEFINE(STAT_READ_FILSYS) space=yes)
+fi
+
+if test -n "$list_mounted_fs" && test $space != no; then
+DF_PROG="df"
+# LIBOBJS="$LIBOBJS fsusage.o"
+# LIBOBJS="$LIBOBJS mountlist.o"
+fi
+
+# Check for SunOS statfs brokenness wrt partitions 2GB and larger.
+# If <sys/vfs.h> exists and struct statfs has a member named f_spare,
+# enable the work-around code in fsusage.c.
+AC_MSG_CHECKING([for statfs that truncates block counts])
+AC_CACHE_VAL(fu_cv_sys_truncating_statfs,
+[AC_TRY_COMPILE([
+#if !defined(sun) && !defined(__sun)
+choke -- this is a workaround for a Sun-specific problem
+#endif
+#include <sys/types.h>
+#include <sys/vfs.h>],
+[struct statfs t; long c = *(t.f_spare);],
+fu_cv_sys_truncating_statfs=yes,
+fu_cv_sys_truncating_statfs=no,
+)])
+if test $fu_cv_sys_truncating_statfs = yes; then
+AC_DEFINE(STATFS_TRUNCATES_BLOCK_COUNTS)
+fi
+AC_MSG_RESULT($fu_cv_sys_truncating_statfs)
+
+AC_CHECKING(for AFS)
+test -d /afs && AC_DEFINE(AFS)
+])
diff --git a/apps/X11/InstallMgr/macros/gnome-gettext.m4 b/apps/X11/InstallMgr/macros/gnome-gettext.m4
new file mode 100644
index 0000000..1dac989
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/gnome-gettext.m4
@@ -0,0 +1,336 @@
+# Macro to add for using GNU gettext.
+# Ulrich Drepper <drepper@cygnus.com>, 1995.
+#
+# Modified to never use included libintl.
+# Owen Taylor <otaylor@redhat.com>, 12/15/1998
+#
+#
+# This file can be copied and used freely without restrictions. It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+# Please note that the actual code is *not* freely available.
+
+# serial 5
+
+AC_DEFUN(AM_GNOME_WITH_NLS,
+ [AC_MSG_CHECKING([whether NLS is requested])
+ dnl Default is enabled NLS
+ AC_ARG_ENABLE(nls,
+ [ --disable-nls do not use Native Language Support],
+ USE_NLS=$enableval, USE_NLS=yes)
+ AC_MSG_RESULT($USE_NLS)
+ AC_SUBST(USE_NLS)
+
+ USE_INCLUDED_LIBINTL=no
+
+ dnl If we use NLS figure out what method
+ if test "$USE_NLS" = "yes"; then
+ AC_DEFINE(ENABLE_NLS)
+# AC_MSG_CHECKING([whether included gettext is requested])
+# AC_ARG_WITH(included-gettext,
+# [ --with-included-gettext use the GNU gettext library included here],
+# nls_cv_force_use_gnu_gettext=$withval,
+# nls_cv_force_use_gnu_gettext=no)
+# AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
+ nls_cv_force_use_gnu_gettext="no"
+
+ nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+ if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
+ dnl User does not insist on using GNU NLS library. Figure out what
+ dnl to use. If gettext or catgets are available (in this order) we
+ dnl use this. Else we have to fall back to GNU NLS library.
+ dnl catgets is only used if permitted by option --with-catgets.
+ nls_cv_header_intl=
+ nls_cv_header_libgt=
+ CATOBJEXT=NONE
+
+ AC_CHECK_HEADER(libintl.h,
+ [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
+ [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
+ gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
+
+ if test "$gt_cv_func_gettext_libc" != "yes"; then
+ AC_CHECK_LIB(intl, bindtextdomain,
+ [AC_CACHE_CHECK([for gettext in libintl],
+ gt_cv_func_gettext_libintl,
+ [AC_CHECK_LIB(intl, gettext,
+ gt_cv_func_gettext_libintl=yes,
+ gt_cv_func_gettext_libintl=no)],
+ gt_cv_func_gettext_libintl=no)])
+ fi
+
+ if test "$gt_cv_func_gettext_libc" = "yes" \
+ || test "$gt_cv_func_gettext_libintl" = "yes"; then
+ AC_DEFINE(HAVE_GETTEXT)
+ AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
+ if test "$MSGFMT" != "no"; then
+ AC_CHECK_FUNCS(dcgettext)
+ AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+ AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
+ AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
+ return _nl_msg_cat_cntr],
+ [CATOBJEXT=.gmo
+ DATADIRNAME=share],
+ [CATOBJEXT=.mo
+ DATADIRNAME=lib])
+ INSTOBJEXT=.mo
+ fi
+ fi
+
+ # Added by Martin Baulig 12/15/98 for libc5 systems
+ if test "$gt_cv_func_gettext_libc" != "yes" \
+ && test "$gt_cv_func_gettext_libintl" = "yes"; then
+ INTLLIBS=-lintl
+ LIBS=`echo $LIBS | sed -e 's/-lintl//'`
+ fi
+ ])
+
+ if test "$CATOBJEXT" = "NONE"; then
+ AC_MSG_CHECKING([whether catgets can be used])
+ AC_ARG_WITH(catgets,
+ [ --with-catgets use catgets functions if available],
+ nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
+ AC_MSG_RESULT($nls_cv_use_catgets)
+
+ if test "$nls_cv_use_catgets" = "yes"; then
+ dnl No gettext in C library. Try catgets next.
+ AC_CHECK_LIB(i, main)
+ AC_CHECK_FUNC(catgets,
+ [AC_DEFINE(HAVE_CATGETS)
+ INTLOBJS="\$(CATOBJS)"
+ AC_PATH_PROG(GENCAT, gencat, no)dnl
+# if test "$GENCAT" != "no"; then
+# AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
+# if test "$GMSGFMT" = "no"; then
+# AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
+# [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
+# fi
+# AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+# [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
+# USE_INCLUDED_LIBINTL=yes
+# CATOBJEXT=.cat
+# INSTOBJEXT=.cat
+# DATADIRNAME=lib
+# INTLDEPS='$(top_builddir)/intl/libintl.a'
+# INTLLIBS=$INTLDEPS
+# LIBS=`echo $LIBS | sed -e 's/-lintl//'`
+# nls_cv_header_intl=intl/libintl.h
+# nls_cv_header_libgt=intl/libgettext.h
+# fi
+ ])
+ fi
+ fi
+
+ if test "$CATOBJEXT" = "NONE"; then
+ dnl Neither gettext nor catgets in included in the C library.
+ dnl Fall back on GNU gettext library.
+ nls_cv_use_gnu_gettext=yes
+ fi
+ fi
+
+ if test "$nls_cv_use_gnu_gettext" != "yes"; then
+ AC_DEFINE(ENABLE_NLS)
+ else
+ # Unset this variable since we use the non-zero value as a flag.
+ CATOBJEXT=
+# dnl Mark actions used to generate GNU NLS library.
+# INTLOBJS="\$(GETTOBJS)"
+# AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+# [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
+# AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+# AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+# [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
+# AC_SUBST(MSGFMT)
+# USE_INCLUDED_LIBINTL=yes
+# CATOBJEXT=.gmo
+# INSTOBJEXT=.mo
+# DATADIRNAME=share
+# INTLDEPS='$(top_builddir)/intl/libintl.a'
+# INTLLIBS=$INTLDEPS
+# LIBS=`echo $LIBS | sed -e 's/-lintl//'`
+# nls_cv_header_intl=intl/libintl.h
+# nls_cv_header_libgt=intl/libgettext.h
+ fi
+
+ dnl Test whether we really found GNU xgettext.
+ if test "$XGETTEXT" != ":"; then
+ dnl If it is no GNU xgettext we define it as : so that the
+ dnl Makefiles still can work.
+ if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
+ : ;
+ else
+ AC_MSG_RESULT(
+ [found xgettext program is not GNU xgettext; ignore it])
+ XGETTEXT=":"
+ fi
+ fi
+
+ # We need to process the po/ directory.
+ POSUB=po
+ else
+ DATADIRNAME=share
+ nls_cv_header_intl=intl/libintl.h
+ nls_cv_header_libgt=intl/libgettext.h
+ fi
+ AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
+ AC_OUTPUT_COMMANDS(
+ [case "$CONFIG_FILES" in *po/Makefile.in*)
+ sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
+ esac])
+
+
+# # If this is used in GNU gettext we have to set USE_NLS to `yes'
+# # because some of the sources are only built for this goal.
+# if test "$PACKAGE" = gettext; then
+# USE_NLS=yes
+# USE_INCLUDED_LIBINTL=yes
+# fi
+
+ dnl These rules are solely for the distribution goal. While doing this
+ dnl we only have to keep exactly one list of the available catalogs
+ dnl in configure.in.
+ for lang in $ALL_LINGUAS; do
+ GMOFILES="$GMOFILES $lang.gmo"
+ POFILES="$POFILES $lang.po"
+ done
+
+ dnl Make all variables we use known to autoconf.
+ AC_SUBST(USE_INCLUDED_LIBINTL)
+ AC_SUBST(CATALOGS)
+ AC_SUBST(CATOBJEXT)
+ AC_SUBST(DATADIRNAME)
+ AC_SUBST(GMOFILES)
+ AC_SUBST(INSTOBJEXT)
+ AC_SUBST(INTLDEPS)
+ AC_SUBST(INTLLIBS)
+ AC_SUBST(INTLOBJS)
+ AC_SUBST(POFILES)
+ AC_SUBST(POSUB)
+ ])
+
+AC_DEFUN(AM_GNOME_GETTEXT,
+ [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+ AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AC_PROG_RANLIB])dnl
+ AC_REQUIRE([AC_ISC_POSIX])dnl
+ AC_REQUIRE([AC_HEADER_STDC])dnl
+ AC_REQUIRE([AC_C_CONST])dnl
+ AC_REQUIRE([AC_C_INLINE])dnl
+ AC_REQUIRE([AC_TYPE_OFF_T])dnl
+ AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+ AC_REQUIRE([AC_FUNC_ALLOCA])dnl
+ AC_REQUIRE([AC_FUNC_MMAP])dnl
+
+ AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
+unistd.h sys/param.h])
+ AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
+strdup __argz_count __argz_stringify __argz_next])
+
+ if test "${ac_cv_func_stpcpy+set}" != "set"; then
+ AC_CHECK_FUNCS(stpcpy)
+ fi
+ if test "${ac_cv_func_stpcpy}" = "yes"; then
+ AC_DEFINE(HAVE_STPCPY)
+ fi
+
+ AM_LC_MESSAGES
+ AM_GNOME_WITH_NLS
+
+ if test "x$CATOBJEXT" != "x"; then
+ if test "x$ALL_LINGUAS" = "x"; then
+ LINGUAS=
+ else
+ AC_MSG_CHECKING(for catalogs to be installed)
+ NEW_LINGUAS=
+ if test "x$LINGUAS" = "x"; then
+ LINGUAS=$ALL_LINGUAS
+ fi
+ for lang in $LINGUAS; do
+ case "$ALL_LINGUAS" in
+ *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
+ esac
+ done
+ LINGUAS=$NEW_LINGUAS
+ AC_MSG_RESULT($LINGUAS)
+ fi
+
+ dnl Construct list of names of catalog files to be constructed.
+ if test -n "$LINGUAS"; then
+ for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
+ fi
+ fi
+
+ dnl The reference to <locale.h> in the installed <libintl.h> file
+ dnl must be resolved because we cannot expect the users of this
+ dnl to define HAVE_LOCALE_H.
+ if test $ac_cv_header_locale_h = yes; then
+ INCLUDE_LOCALE_H="#include <locale.h>"
+ else
+ INCLUDE_LOCALE_H="\
+/* The system does not provide the header <locale.h>. Take care yourself. */"
+ fi
+ AC_SUBST(INCLUDE_LOCALE_H)
+
+ dnl Determine which catalog format we have (if any is needed)
+ dnl For now we know about two different formats:
+ dnl Linux libc-5 and the normal X/Open format
+ test -d intl || mkdir intl
+ if test "$CATOBJEXT" = ".cat"; then
+ AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
+
+ dnl Transform the SED scripts while copying because some dumb SEDs
+ dnl cannot handle comments.
+ sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
+ fi
+ dnl po2tbl.sed is always needed.
+ sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
+ $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
+
+ dnl In the intl/Makefile.in we have a special dependency which makes
+ dnl only sense for gettext. We comment this out for non-gettext
+ dnl packages.
+ if test "$PACKAGE" = "gettext"; then
+ GT_NO="#NO#"
+ GT_YES=
+ else
+ GT_NO=
+ GT_YES="#YES#"
+ fi
+ AC_SUBST(GT_NO)
+ AC_SUBST(GT_YES)
+
+ dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
+ dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
+ dnl Try to locate is.
+ MKINSTALLDIRS=
+ if test -n "$ac_aux_dir"; then
+ MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
+ fi
+ if test -z "$MKINSTALLDIRS"; then
+ MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+ fi
+ AC_SUBST(MKINSTALLDIRS)
+
+ dnl *** For now the libtool support in intl/Makefile is not for real.
+ l=
+ AC_SUBST(l)
+
+ dnl Generate list of files to be processed by xgettext which will
+ dnl be included in po/Makefile.
+ test -d po || mkdir po
+ if test "x$srcdir" != "x."; then
+ if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
+ posrcprefix="$srcdir/"
+ else
+ posrcprefix="../$srcdir/"
+ fi
+ else
+ posrcprefix="../"
+ fi
+ rm -f po/POTFILES
+ sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
+ < $srcdir/po/POTFILES.in > po/POTFILES
+ ])
+
diff --git a/apps/X11/InstallMgr/macros/gnome-ghttp-check.m4 b/apps/X11/InstallMgr/macros/gnome-ghttp-check.m4
new file mode 100644
index 0000000..0ecacaa
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/gnome-ghttp-check.m4
@@ -0,0 +1,14 @@
+AC_DEFUN([GNOME_GHTTP_CHECK],[
+ AC_REQUIRE([GNOME_INIT_HOOK])
+ GHTTP_LIB=
+ AC_CHECK_FUNC(connect,,[
+ AC_CHECK_LIB(socket,connect,
+ GHTTP_LIB="-lsocket $GHTTP_LIB",,$GHTTP_LIB)])
+ AC_CHECK_FUNC(gethostbyname,,[
+ AC_CHECK_LIB(nsl,gethostbyname,
+ GHTTP_LIB="-lnsl $GHTTP_LIB",,$GHTTP_LIB)])
+ AC_CHECK_LIB(ghttp, ghttp_request_new,
+ GHTTP_LIB="-lghttp $GHTTP_LIB",GHTTP_LIB="",-L$gnome_prefix $GHTTP_LIB)
+ AC_SUBST(GHTTP_LIB)
+ AC_PROVIDE([GNOME_GHTTP_CHECK])
+])
diff --git a/apps/X11/InstallMgr/macros/gnome-gnorba-check.m4 b/apps/X11/InstallMgr/macros/gnome-gnorba-check.m4
new file mode 100644
index 0000000..dbac0a6
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/gnome-gnorba-check.m4
@@ -0,0 +1,35 @@
+dnl
+dnl GNOME_GNORBA_HOOK (script-if-gnorba-found, failflag)
+dnl
+dnl if failflag is "failure" it aborts if gnorba is not found.
+dnl
+
+AC_DEFUN([GNOME_GNORBA_HOOK],[
+ GNOME_ORBIT_HOOK([],$2)
+ AC_CACHE_CHECK([for gnorba libraries],gnome_cv_gnorba_found,[
+ gnome_cv_gnorba_found=no
+ if test x$gnome_cv_orbit_found = xyes; then
+ GNORBA_CFLAGS="`gnome-config --cflags gnorba gnomeui`"
+ GNORBA_LIBS="`gnome-config --libs gnorba gnomeui`"
+ if test -n "$GNORBA_LIBS"; then
+ gnome_cv_gnorba_found=yes
+ fi
+ fi
+ ])
+ AM_CONDITIONAL(HAVE_GNORBA, test x$gnome_cv_gnorba_found = xyes)
+ if test x$gnome_cv_orbit_found = xyes; then
+ $1
+ GNORBA_CFLAGS="`gnome-config --cflags gnorba gnomeui`"
+ GNORBA_LIBS="`gnome-config --libs gnorba gnomeui`"
+ AC_SUBST(GNORBA_CFLAGS)
+ AC_SUBST(GNORBA_LIBS)
+ else
+ if test x$2 = xfailure; then
+ AC_MSG_ERROR(gnorba library not installed or installation problem)
+ fi
+ fi
+])
+
+AC_DEFUN([GNOME_GNORBA_CHECK], [
+ GNOME_GNORBA_HOOK([],failure)
+])
diff --git a/apps/X11/InstallMgr/macros/gnome-guile-checks.m4 b/apps/X11/InstallMgr/macros/gnome-guile-checks.m4
new file mode 100644
index 0000000..1086d30
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/gnome-guile-checks.m4
@@ -0,0 +1,119 @@
+dnl
+dnl GNOME_CHECK_GUILE (failflag)
+dnl
+dnl if failflag is "fail" then GNOME_CHECK_GUILE will abort if guile is not found.
+dnl
+
+AC_DEFUN([GNOME_CHECK_GUILE],
+[
+ saved_ldflags="$LDFLAGS"
+ saved_cppflags="$CPPFLAGS"
+ LDFLAGS="$LDFLAGS $GNOME_LIBDIR"
+
+ AC_CHECK_LIB(qthreads,qt_null,[
+ QTTHREADS_LIB="-lqthreads"
+ ],[
+ AC_CHECK_LIB(qt, qt_null, QTTHREADS_LIB="-lqt")
+ ],$LIBS)
+ AC_SUBST(QTTHREADS_LIB)
+
+ AC_CHECK_LIB(termcap,main,TERMCAP_LIB="-ltermcap")
+ AC_CHECK_LIB(readline,main,READLINE_LIB="-lreadline",,$TERMCAP_LIB)
+
+ AC_SUBST(TERMCAP_LIB)
+ AC_SUBST(READLINE_LIB)
+
+ if test "x$cross_compiling" = "xyes" ; then
+ name_build_guile="$target_alias-guile-config"
+ else
+ name_build_guile="guile-config"
+ fi
+
+ AC_CHECK_PROG(BUILD_GUILE, $name_build_guile, yes, no)
+
+ if test "x$BUILD_GUILE" = "xyes"; then
+ AC_MSG_CHECKING(whether $name_build_guile works)
+ if test x`$name_build_guile --version >/dev/null 2>&1 || \
+ echo no` = xno; then
+ BUILD_GUILE=no
+ fi
+ AC_MSG_RESULT($BUILD_GUILE)
+ else
+
+ if test "x$cross_compiling" = "xyes" ; then
+ name_build_guile="$target_alias-build-guile"
+ else
+ name_build_guile="build-guile"
+ fi
+
+ AC_CHECK_PROG(BUILD_GUILE, $name_build_guile, yes, no)
+
+ if test "x$BUILD_GUILE" = "xyes"; then
+ AC_MSG_CHECKING(whether $name_build_guile works)
+ if test x`$name_build_guile --version >/dev/null 2>&1 || \
+ echo no` = xno; then
+ BUILD_GUILE=no
+ fi
+ AC_MSG_RESULT($BUILD_GUILE)
+ fi
+ fi
+
+ AC_CHECK_LIB(m, sin)
+
+ if test "x$BUILD_GUILE" = "xyes"; then
+ AC_MSG_CHECKING(for guile libraries)
+ GUILE_LIBS="`$name_build_guile link`"
+ AC_MSG_RESULT($GUILE_LIBS)
+ AC_MSG_CHECKING(for guile headers)
+ GUILE_INCS="`$name_build_guile compile`"
+ AC_MSG_RESULT($GUILE_INCS)
+ else
+ GUILE_LIBS="$GNOME_LIBDIR"
+ GUILE_INCS="$GNOME_INCLUDEDIR"
+ AC_CHECK_LIB(rx, main, GUILE_LIBS="-lrx $GUILE_LIBS")
+ AC_CHECK_LIB(qt, qt_null, GUILE_LIBS="-lqt $GUILE_LIBS")
+ AC_CHECK_LIB(dl, dlopen, GUILE_LIBS="-ldl $GUILE_LIBS")
+ AC_CHECK_LIB(nsl, t_accept, GUILE_LIBS="$GUILE_LIBS -lnsl")
+ AC_CHECK_LIB(socket, socket, GUILE_LIBS="$GUILE_LIBS -lsocket")
+ GUILE_LIBS="-lguile $GUILE_LIBS $QTTHREADS_LIB $READLINE_LIB $TERMCAP_LIB"
+ fi
+
+ AC_SUBST(GUILE_LIBS)
+ AC_SUBST(GUILE_INCS)
+
+ saved_LIBS="$LIBS"
+ LIBS="$LIBS $GUILE_LIBS"
+ CPPFLAGS="$saved_cppflags $GUILE_INCS"
+
+ AC_MSG_CHECKING(whether guile works)
+ AC_TRY_LINK([
+ #include <libguile.h>
+ #include <guile/gh.h>
+ ],[
+ gh_eval_str("(newline)");
+ scm_boot_guile(0,NULL,NULL,NULL);
+ ],[
+ ac_cv_guile_found=yes
+ AC_DEFINE(HAVE_GUILE)
+ ],[
+ ac_cv_guile_found=no
+ ])
+ AC_MSG_RESULT($ac_cv_guile_found)
+
+ if test x$ac_cv_guile_found = xno ; then
+ if test x$1 = xfail ; then
+ AC_MSG_ERROR(Can not find Guile on this system)
+ else
+ AC_MSG_WARN(Can not find Guile on this system)
+ fi
+ ac_cv_guile_found=no
+ GUILE_LIBS= GUILE_INCS=
+ fi
+
+ LIBS="$saved_LIBS"
+ LDFLAGS="$saved_ldflags"
+ CPPFLAGS="$saved_cppflags"
+
+ AC_SUBST(GUILE_LIBS)
+ AM_CONDITIONAL(GUILE, test x$ac_cv_guile_found = xyes)
+])
diff --git a/apps/X11/InstallMgr/macros/gnome-libgtop-check.m4 b/apps/X11/InstallMgr/macros/gnome-libgtop-check.m4
new file mode 100644
index 0000000..81fbb60
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/gnome-libgtop-check.m4
@@ -0,0 +1,182 @@
+dnl
+dnl GNOME_LIBGTOP_TYPES
+dnl
+dnl some typechecks for libgtop.
+dnl
+
+AC_DEFUN([GNOME_LIBGTOP_TYPES],
+[
+ AC_CHECK_TYPE(u_int64_t, unsigned long long int)
+ AC_CHECK_TYPE(int64_t, long long int)
+])
+
+dnl
+dnl GNOME_LIBGTOP_HOOK (minversion, script-if-libgtop-enabled, failflag)
+dnl
+dnl if failflag is "fail" then GNOME_LIBGTOP_HOOK will abort if LibGTop
+dnl is not found.
+dnl
+
+AC_DEFUN([GNOME_LIBGTOP_HOOK],
+[
+ AC_REQUIRE([GNOME_LIBGTOP_TYPES])
+
+ AC_SUBST(LIBGTOP_LIBDIR)
+ AC_SUBST(LIBGTOP_INCLUDEDIR)
+ AC_SUBST(LIBGTOP_EXTRA_LIBS)
+ AC_SUBST(LIBGTOP_LIBS)
+ AC_SUBST(LIBGTOP_INCS)
+ AC_SUBST(LIBGTOP_NAMES_LIBS)
+ AC_SUBST(LIBGTOP_NAMES_INCS)
+ AC_SUBST(LIBGTOP_GUILE_INCS)
+ AC_SUBST(LIBGTOP_GUILE_LIBS)
+ AC_SUBST(LIBGTOP_GUILE_NAMES_INCS)
+ AC_SUBST(LIBGTOP_GUILE_NAMES_LIBS)
+ AC_SUBST(LIBGTOP_MAJOR_VERSION)
+ AC_SUBST(LIBGTOP_MINOR_VERSION)
+ AC_SUBST(LIBGTOP_MICRO_VERSION)
+ AC_SUBST(LIBGTOP_VERSION)
+ AC_SUBST(LIBGTOP_VERSION_CODE)
+ AC_SUBST(LIBGTOP_SERVER_VERSION)
+ AC_SUBST(LIBGTOP_INTERFACE_AGE)
+ AC_SUBST(LIBGTOP_BINARY_AGE)
+ AC_SUBST(LIBGTOP_BINDIR)
+ AC_SUBST(LIBGTOP_SERVER)
+
+ dnl Get the cflags and libraries from the libgtop-config script
+ dnl
+ AC_ARG_WITH(libgtop,
+ [ --with-libgtop=PFX Prefix where LIBGTOP is installed (optional)],
+ libgtop_config_prefix="$withval", libgtop_config_prefix="")
+ AC_ARG_WITH(libgtop-exec,
+ [ --with-libgtop-exec=PFX Exec prefix where LIBGTOP is installed (optional)],
+ libgtop_config_exec_prefix="$withval", libgtop_config_exec_prefix="")
+
+ if test x$libgtop_config_exec_prefix != x ; then
+ libgtop_config_args="$libgtop_config_args --exec-prefix=$libgtop_config_exec_prefix"
+ if test x${LIBGTOP_CONFIG+set} != xset ; then
+ LIBGTOP_CONFIG=$libgtop_config_exec_prefix/bin/libgtop-config
+ fi
+ fi
+ if test x$libgtop_config_prefix != x ; then
+ libgtop_config_args="$libgtop_config_args --prefix=$libgtop_config_prefix"
+ if test x${LIBGTOP_CONFIG+set} != xset ; then
+ LIBGTOP_CONFIG=$libgtop_config_prefix/bin/libgtop-config
+ fi
+ fi
+
+ AC_PATH_PROG(LIBGTOP_CONFIG, libgtop-config, no)
+ dnl IMPORTANT NOTICE:
+ dnl If you increase this number here, this means that *ALL*
+ dnl modules will require the new version, even if they explicitly
+ dnl give a lower number in their `configure.in' !!!
+ real_min_libgtop_version=1.0.0
+ min_libgtop_version=ifelse([$1], ,$real_min_libgtop_version,$1)
+ dnl I know, the following code looks really ugly, but if you want
+ dnl to make changes, please test it with a brain-dead /bin/sh and
+ dnl with a brain-dead /bin/test (not all shells/tests support the
+ dnl `<' operator to compare strings, that's why I convert everything
+ dnl into numbers and test them).
+ min_libgtop_major=`echo $min_libgtop_version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ min_libgtop_minor=`echo $min_libgtop_version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ min_libgtop_micro=`echo $min_libgtop_version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+ test x$min_libgtop_micro = x && min_libgtop_micro=0
+ real_min_libgtop_major=`echo $real_min_libgtop_version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ real_min_libgtop_minor=`echo $real_min_libgtop_version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ real_min_libgtop_micro=`echo $real_min_libgtop_version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+ test x$real_min_libgtop_micro = x && real_min_libgtop_micro=0
+ dnl You cannot require a version less then $real_min_libgtop_version,
+ dnl so you don't need to update each `configure.in' when it's increased.
+ if test $real_min_libgtop_major -gt $min_libgtop_major ; then
+ min_libgtop_major=$real_min_libgtop_major
+ min_libgtop_minor=$real_min_libgtop_minor
+ min_libgtop_micro=$real_min_libgtop_micro
+ elif test $real_min_libgtop_major = $min_libgtop_major ; then
+ if test $real_min_libgtop_minor -gt $min_libgtop_minor ; then
+ min_libgtop_minor=$real_min_libgtop_minor
+ min_libgtop_micro=$real_min_libgtop_micro
+ elif test $real_min_libgtop_minor = $min_libgtop_minor ; then
+ if test $real_min_libgtop_micro -gt $min_libgtop_micro ; then
+ min_libgtop_micro=$real_min_libgtop_micro
+ fi
+ fi
+ fi
+ min_libgtop_version="$min_libgtop_major.$min_libgtop_minor.$min_libgtop_micro"
+ AC_MSG_CHECKING(for libgtop - version >= $min_libgtop_version)
+ no_libgtop=""
+ if test "$LIBGTOP_CONFIG" = "no" ; then
+ no_libgtop=yes
+ else
+ configfile=`$LIBGTOP_CONFIG --config`
+ libgtop_major_version=`$LIBGTOP_CONFIG --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ libgtop_minor_version=`$LIBGTOP_CONFIG --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ libgtop_micro_version=`$LIBGTOP_CONFIG --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+ test $libgtop_major_version != $min_libgtop_major && no_libgtop=yes
+ test $libgtop_minor_version -lt $min_libgtop_minor && no_libgtop=yes
+ if test $libgtop_minor_version = $min_libgtop_minor ; then
+ test $libgtop_micro_version -lt $min_libgtop_micro && no_libgtop=yes
+ fi
+ . $configfile
+ fi
+ if test x$no_libgtop = x ; then
+ AC_DEFINE(HAVE_LIBGTOP)
+ AC_DEFINE_UNQUOTED(LIBGTOP_VERSION, "$LIBGTOP_VERSION")
+ AC_DEFINE_UNQUOTED(LIBGTOP_VERSION_CODE, $LIBGTOP_VERSION_CODE)
+ AC_DEFINE_UNQUOTED(LIBGTOP_MAJOR_VERSION, $LIBGTOP_MAJOR_VERSION)
+ AC_DEFINE_UNQUOTED(LIBGTOP_MINOR_VERSION, $LIBGTOP_MINOR_VERSION)
+ AC_DEFINE_UNQUOTED(LIBGTOP_MICRO_VERSION, $LIBGTOP_MICRO_VERSION)
+ AC_DEFINE_UNQUOTED(LIBGTOP_SERVER_VERSION, $LIBGTOP_SERVER_VERSION)
+ AC_MSG_RESULT(yes)
+ dnl Note that an empty true branch is not valid sh syntax.
+ ifelse([$2], [], :, [$2])
+ else
+ AC_MSG_RESULT(no)
+ if test "x$3" = "xfail"; then
+ AC_MSG_ERROR(LibGTop >= $min_libgtop_version not found)
+ else
+ AC_MSG_WARN(LibGTop >= $min_libgtop_version not found)
+ fi
+ fi
+
+ AM_CONDITIONAL(HAVE_LIBGTOP, test x$no_libgtop != xyes)
+])
+
+AC_DEFUN([GNOME_INIT_LIBGTOP],[
+ GNOME_LIBGTOP_HOOK($1,[ifelse([$3], [], :, [$3])],$2)
+])
+
+dnl
+dnl GNOME_LIBGTOP_DOCU
+dnl
+dnl checks whether the documentation of LibGTop is installed
+dnl
+
+AC_DEFUN([GNOME_LIBGTOP_DOCU],
+[
+ AC_REQUIRE([GNOME_LIBGTOP_HOOK])
+
+ helpdir="$LIBGTOP_DATADIR/gnome/help/libgtop"
+
+ AC_MSG_CHECKING(whether you have the LibGTop Documentation)
+
+ if test -f "$helpdir/C/topic.dat" ; then
+ have_libgtop_docu=yes
+ AC_DEFINE(HAVE_LIBGTOP_DOCU)
+ else
+ have_libgtop_docu=no
+ fi
+
+ AC_MSG_RESULT($have_libgtop_docu)
+
+ AM_CONDITIONAL(HAVE_LIBGTOP_DOCU, test x$have_libgtop_docu = xyes)
+])
+
diff --git a/apps/X11/InstallMgr/macros/gnome-objc-checks.m4 b/apps/X11/InstallMgr/macros/gnome-objc-checks.m4
new file mode 100644
index 0000000..dc9691c
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/gnome-objc-checks.m4
@@ -0,0 +1,79 @@
+AC_DEFUN([GNOME_CHECK_OBJC],
+[
+dnl Look for an ObjC compiler.
+dnl FIXME: extend list of possible names of ObjC compilers.
+ AC_CHECK_PROGS(OBJC, $OBJC egcs, "")
+ if test "x$OBJC" = "x" ; then
+ AC_CHECK_PROGS(OBJC, $OBJC egcc, "")
+ if test "x$OBJC" = "x" ; then
+ AC_CHECK_PROGS(OBJC, $OBJC gcc, "")
+ fi
+ fi
+
+ AC_REQUIRE([GNOME_PTHREAD_CHECK])
+
+ OBJC_LIBS="-lobjc $PTHREAD_LIB"
+ AC_CHECK_FUNC(sched_yield,,[
+ AC_CHECK_LIB(posix4,sched_yield,
+ OBJC_LIBS="$OBJC_LIBS -lposix4",, $OBJC_LIBS)])
+ AC_SUBST(OBJC_LIBS)
+
+ AC_CACHE_CHECK([if Objective C compiler ($OBJC) works],
+ ac_cv_prog_objc_works, [
+ if test -n "$OBJC"; then
+ cat > conftest.m <<EOF
+#include <objc/Object.h>
+@interface myRandomObj : Object
+{
+}
+@end
+@implementation myRandomObj
+@end
+int main () {
+ /* No, you are not seeing double. Remember that square brackets
+ are the autoconf m4 quotes. */
+ id myid = [[myRandomObj alloc]];
+ [[myid free]];
+ return 0;
+}
+EOF
+
+ $OBJC $CFLAGS -o conftest $LDFLAGS conftest.m $OBJC_LIBS 1>&AC_FD_CC 2>&1
+ result=$?
+ rm -f conftest*
+
+ if test $result -eq 0; then
+ ac_cv_prog_objc_works=yes
+ fi
+ else
+ ac_cv_prog_objc_works=no
+ fi
+ ])
+
+ AM_CONDITIONAL(OBJECTIVE_C, test x$ac_cv_prog_objc_works = xyes)
+ dnl Also set the shell variable OBJECTIVE_C to "yes" or "no".
+ OBJECTIVE_C=$ac_cv_prog_objc_works
+])
+
+AC_DEFUN([GNOME_INIT_OBJC],
+[
+ AC_MSG_CHECKING(for an obGnomeConf.sh)
+ my_gnome_libdir=`$GNOME_CONFIG --libdir`
+ if test -f $my_gnome_libdir/obGnomeConf.sh; then
+ . $my_gnome_libdir/obGnomeConf.sh
+ AC_MSG_RESULT(found $my_gnome_libdir)
+ ac_cv_have_gnome_objc=yes
+ else
+ AC_MSG_RESULT(not found)
+ AC_MSG_WARN(Could not find the obGnomeConf.sh file that is generated by gnome-objc install)
+ ac_cv_have_gnome_objc=no
+ fi
+
+ dnl Add a conditional on whether or not we have gnome-objc
+ AM_CONDITIONAL(HAVE_GNOME_OBJC, test x$ac_cv_have_gnome_objc = xyes)
+ HAVE_GNOME_OBJC=$ac_cv_have_gnome_objc
+
+ AC_SUBST(OBGNOME_INCLUDEDIR)
+ AC_SUBST(OBGNOME_LIBS)
+ AC_SUBST(OBGTK_LIBS)
+])
diff --git a/apps/X11/InstallMgr/macros/gnome-orbit-check.m4 b/apps/X11/InstallMgr/macros/gnome-orbit-check.m4
new file mode 100644
index 0000000..54bf33a
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/gnome-orbit-check.m4
@@ -0,0 +1,33 @@
+dnl
+dnl GNOME_ORBIT_HOOK (script-if-orbit-found, failflag)
+dnl
+dnl if failflag is "failure" it aborts if orbit is not found.
+dnl
+
+AC_DEFUN([GNOME_ORBIT_HOOK],[
+ AC_PATH_PROG(ORBIT_CONFIG,orbit-config,no)
+ AC_PATH_PROG(ORBIT_IDL,orbit-idl,no)
+ AC_CACHE_CHECK([for working ORBit environment],gnome_cv_orbit_found,[
+ if test x$ORBIT_CONFIG = xno -o x$ORBIT_IDL = xno; then
+ gnome_cv_orbit_found=no
+ else
+ gnome_cv_orbit_found=yes
+ fi
+ ])
+ AM_CONDITIONAL(HAVE_ORBIT, test x$gnome_cv_orbit_found = xyes)
+ if test x$gnome_cv_orbit_found = xyes; then
+ $1
+ ORBIT_CFLAGS=`orbit-config --cflags client server`
+ ORBIT_LIBS=`orbit-config --use-service=name --libs client server`
+ AC_SUBST(ORBIT_CFLAGS)
+ AC_SUBST(ORBIT_LIBS)
+ else
+ if test x$2 = xfailure; then
+ AC_MSG_ERROR(ORBit not installed or installation problem)
+ fi
+ fi
+])
+
+AC_DEFUN([GNOME_ORBIT_CHECK], [
+ GNOME_ORBIT_HOOK([],failure)
+])
diff --git a/apps/X11/InstallMgr/macros/gnome-print-check.m4 b/apps/X11/InstallMgr/macros/gnome-print-check.m4
new file mode 100644
index 0000000..7d98281
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/gnome-print-check.m4
@@ -0,0 +1,171 @@
+# Configure paths for GNOME-PRINT
+# Chris Lahey 99-2-5
+# stolen from Manish Singh again
+# stolen back from Frank Belew
+# stolen from Manish Singh
+# Shamelessly stolen from Owen Taylor
+
+dnl AM_PATH_GNOME_PRINT([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for GNOME-PRINT, and define GNOME_PRINT_CFLAGS and GNOME_PRINT_LIBS
+dnl
+AC_DEFUN(AM_PATH_GNOME_PRINT,
+[dnl
+dnl Get the cflags and libraries from the gnome-config script
+dnl
+AC_ARG_WITH(gnome-print-prefix,[ --with-gnome-print-prefix=PFX Prefix where GNOME-PRINT is installed (optional)],
+ gnome_print_prefix="$withval", gnome_print_prefix="")
+AC_ARG_WITH(gnome-print-exec-prefix,[ --with-gnome-print-exec-prefix=PFX Exec prefix where GNOME-PRINT is installed (optional)],
+ gnome_print_exec_prefix="$withval", gnome_print_exec_prefix="")
+AC_ARG_ENABLE(gnome-printtest, [ --disable-gnome-printtest Do not try to compile and run a test GNOME-PRINT program],
+ , enable_gnome_printtest=yes)
+
+ if test x$gnome_print_exec_prefix != x ; then
+ gnome_print_args="$gnome_print_args --exec-prefix=$gnome_print_exec_prefix"
+ if test x${GNOME_CONFIG+set} != xset ; then
+ GNOME_CONFIG=$gnome_print_exec_prefix/bin/gnome-config
+ fi
+ fi
+ if test x$gnome_print_prefix != x ; then
+ gnome_print_args="$gnome_print_args --prefix=$gnome_print_prefix"
+ if test x${GNOME_CONFIG+set} != xset ; then
+ GNOME_CONFIG=$gnome_print_prefix/bin/gnome-config
+ fi
+ fi
+
+ AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
+ min_gnome_print_version=ifelse([$1], ,0.1.0,$1)
+ AC_MSG_CHECKING(for GNOME-PRINT - version >= $min_gnome_print_version)
+ no_gnome_print=""
+ if test "$GNOME_CONFIG" = "no" ; then
+ no_gnome_print=yes
+ else
+ GNOME_PRINT_CFLAGS=`$GNOME_CONFIG $gnome_printconf_args --cflags print`
+ GNOME_PRINT_LIBS=`$GNOME_CONFIG $gnome_printconf_args --libs print`
+
+ gnome_print_major_version=`$GNOME_CONFIG $gnome_print_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ gnome_print_minor_version=`$GNOME_CONFIG $gnome_print_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ gnome_print_micro_version=`$GNOME_CONFIG $gnome_print_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+ if test "x$enable_gnome_printtest" = "xyes" ; then
+ ac_save_CFLAGS="$CFLAGS"
+ ac_save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $GNOME_PRINT_CFLAGS"
+ LIBS="$LIBS $GNOME_PRINT_LIBS"
+dnl
+dnl Now check if the installed GNOME-PRINT is sufficiently new. (Also sanity
+dnl checks the results of gnome-config to some extent
+dnl
+ rm -f conf.gnome_printtest
+ AC_TRY_RUN([
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <libgnomeprint/gnome-print.h>
+
+static char*
+my_strdup (char *str)
+{
+ char *new_str;
+
+ if (str)
+ {
+ new_str = malloc ((strlen (str) + 1) * sizeof(char));
+ strcpy (new_str, str);
+ }
+ else
+ new_str = NULL;
+
+ return new_str;
+}
+
+int main ()
+{
+ int major, minor, micro;
+ char *tmp_version;
+
+ system ("touch conf.gnome_printtest");
+
+ /* HP/UX 9 (%@#!) writes to sscanf strings */
+ tmp_version = my_strdup("$min_gnome_print_version");
+ if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+ printf("%s, bad version string\n", "$min_gnome_print_version");
+ exit(1);
+ }
+ return 0;
+#if 0
+ if (($gnome_print_major_version > major) ||
+ (($gnome_print_major_version == major) && ($gnome_print_minor_version > minor)) ||
+ (($gnome_print_major_version == major) && ($gnome_print_minor_version == minor) && ($gnome_print_micro_version >= micro)))
+ {
+ return 0;
+ }
+ else
+ {
+ printf("\n*** 'gnome-config print --version' returned %d.%d.%d, but the minimum version\n", $gnome_print_major_version, $gnome_print_minor_version, $gnome_print_micro_version);
+ printf("*** of GNOME-PRINT required is %d.%d.%d. If gnome-config is correct, then it is\n", major, minor, micro);
+ printf("*** best to upgrade to the required version.\n");
+ printf("*** If gnome-config was wrong, set the environment variable GNOME_CONFIG\n");
+ printf("*** to point to the correct copy of gnome-config, and remove the file\n");
+ printf("*** config.cache before re-running configure\n");
+ return 1;
+ }
+#endif
+}
+
+],, no_gnome_print=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ if test "x$no_gnome_print" = x ; then
+ AC_MSG_RESULT(yes)
+ ifelse([$2], , :, [$2])
+ else
+ AC_MSG_RESULT(no)
+ if test "$GNOME_CONFIG" = "no" ; then
+ echo "*** The gnome-config script installed by GNOME-LIBS could not be found"
+ echo "*** If GNOME-PRINT was installed in PREFIX, make sure PREFIX/bin is in"
+ echo "*** your path, or set the GNOME_CONFIG environment variable to the"
+ echo "*** full path to gnome-config."
+ else
+ if test -f conf.gnome_printtest ; then
+ :
+ else
+ echo "*** Could not run GNOME-PRINT test program, checking why..."
+ CFLAGS="$CFLAGS $GNOME_PRINT_CFLAGS"
+ LIBS="$LIBS $GNOME_PRINT_LIBS"
+ AC_TRY_LINK([
+#include <stdio.h>
+#include <libgnomeprint/gnome-print.h>
+], [ return 0; ],
+ [ echo "*** The test program compiled, but did not run. This usually means"
+ echo "*** that the run-time linker is not finding GNOME-PRINT or finding the wrong"
+ echo "*** version of GNOME-PRINT. If it is not finding GNOME-PRINT, you'll need to set your"
+ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+ echo "*** to the installed location Also, make sure you have run ldconfig if that"
+ echo "*** is required on your system"
+ echo "***"
+ echo "*** If you have an old version installed, it is best to remove it, although"
+ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
+ [ echo "*** The test program failed to compile or link. See the file config.log for the"
+ echo "*** exact error that occured. This usually means GNOME-PRINT was incorrectly installed"
+ echo "*** or that you have moved GNOME-PRINT since it was installed. In the latter case, you"
+ echo "*** may want to edit the gnome-config script: $GNOME_CONFIG" ])
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ GNOME_PRINT_CFLAGS=""
+ GNOME_PRINT_LIBS=""
+ ifelse([$3], , :, [$3])
+ fi
+ AC_SUBST(GNOME_PRINT_CFLAGS)
+ AC_SUBST(GNOME_PRINT_LIBS)
+ rm -f conf.gnome_printtest
+])
+
+AC_DEFUN([GNOME_PRINT_CHECK], [
+ AM_PATH_GNOME_PRINT(0.1.0,,[AC_MSG_ERROR(GNOME-PRINT not found)])
+])
diff --git a/apps/X11/InstallMgr/macros/gnome-pthread-check.m4 b/apps/X11/InstallMgr/macros/gnome-pthread-check.m4
new file mode 100644
index 0000000..a4eb3b4
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/gnome-pthread-check.m4
@@ -0,0 +1,16 @@
+dnl
+dnl And better, use gthreads instead...
+dnl
+
+AC_DEFUN([GNOME_PTHREAD_CHECK],[
+ PTHREAD_LIB=""
+ AC_CHECK_LIB(pthread, pthread_create, PTHREAD_LIB="-lpthread",
+ [AC_CHECK_LIB(pthreads, pthread_create, PTHREAD_LIB="-lpthreads",
+ [AC_CHECK_LIB(c_r, pthread_create, PTHREAD_LIB="-lc_r",
+ [AC_CHECK_FUNC(pthread_create)]
+ )]
+ )]
+ )
+ AC_SUBST(PTHREAD_LIB)
+ AC_PROVIDE([GNOME_PTHREAD_CHECK])
+])
diff --git a/apps/X11/InstallMgr/macros/gnome-support.m4 b/apps/X11/InstallMgr/macros/gnome-support.m4
new file mode 100644
index 0000000..2c1d049
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/gnome-support.m4
@@ -0,0 +1,68 @@
+dnl GNOME_SUPPORT_CHECKS
+dnl Check for various support functions needed by the standard
+dnl Gnome libraries. Sets LIBOBJS, might define some macros.
+dnl This should only be used when building the Gnome libs;
+dnl Gnome clients should not need this macro.
+AC_DEFUN([GNOME_SUPPORT_CHECKS],[
+ # we need an `awk' to build `gnomesupport.h'
+ AC_REQUIRE([AC_PROG_AWK])
+
+ # this should go away soon
+ need_gnome_support=yes
+
+ save_LIBOBJS="$LIBOBJS"
+ LIBOBJS=
+
+ AC_CHECK_FUNCS(getopt_long,,LIBOBJS="$LIBOBJS getopt.o getopt1.o")
+
+ # for `scandir'
+ AC_HEADER_DIRENT
+
+ # copied from `configure.in' of `libiberty'
+ vars="program_invocation_short_name program_invocation_name sys_errlist"
+ for v in $vars; do
+ AC_MSG_CHECKING([for $v])
+ AC_CACHE_VAL(gnome_cv_var_$v,
+ [AC_TRY_LINK([int *p;], [extern int $v; p = &$v;],
+ [eval "gnome_cv_var_$v=yes"],
+ [eval "gnome_cv_var_$v=no"])])
+ if eval "test \"`echo '$gnome_cv_var_'$v`\" = yes"; then
+ AC_MSG_RESULT(yes)
+ n=HAVE_`echo $v | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ AC_DEFINE_UNQUOTED($n)
+ else
+ AC_MSG_RESULT(no)
+ fi
+ done
+
+ AC_REPLACE_FUNCS(memmove mkstemp scandir strcasecmp strerror strndup strnlen)
+ AC_REPLACE_FUNCS(strtok_r strtod strtol strtoul vasprintf vsnprintf)
+
+ AC_CHECK_FUNCS(realpath,,LIBOBJS="$LIBOBJS canonicalize.o")
+
+ # to include `error.c' error.c has some HAVE_* checks
+ AC_CHECK_FUNCS(vprintf doprnt strerror_r)
+ AM_FUNC_ERROR_AT_LINE
+
+ # This is required if we declare setreuid () and setregid ().
+ AC_TYPE_UID_T
+
+ # see if we need to declare some functions. Solaris is notorious for
+ # putting functions into the `libc' but not listing them in the headers
+ AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h dirent.h)
+ GCC_NEED_DECLARATIONS(gethostname setreuid setregid getpagesize)
+ GCC_NEED_DECLARATION(scandir,[
+#ifdef HAVE_DIRENT_H
+#include <dirent.h>
+#endif
+])
+
+ # Turn our LIBOBJS into libtool objects. This is gross, but it
+ # requires changes to autoconf before it goes away.
+ LTLIBOBJS=`echo "$LIBOBJS" | sed 's/\.o/.lo/g'`
+ AC_SUBST(need_gnome_support)
+ AC_SUBST(LTLIBOBJS)
+
+ LIBOBJS="$save_LIBOBJS"
+ AM_CONDITIONAL(BUILD_GNOME_SUPPORT, test "$need_gnome_support" = yes)
+])
diff --git a/apps/X11/InstallMgr/macros/gnome-undelfs.m4 b/apps/X11/InstallMgr/macros/gnome-undelfs.m4
new file mode 100644
index 0000000..c8ea6f4
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/gnome-undelfs.m4
@@ -0,0 +1,20 @@
+dnl GNOME_UNDELFS_CHECKS
+dnl Check for ext2fs undel support.
+dnl Set shell variable ext2fs_undel to "yes" if we have it,
+dnl "no" otherwise. May define USE_EXT2FSLIB for cpp.
+dnl Will set EXT2FS_UNDEL_LIBS to required libraries.
+
+AC_DEFUN([GNOME_UNDELFS_CHECKS], [
+ AC_CHECK_HEADERS(ext2fs/ext2fs.h linux/ext2_fs.h)
+ ext2fs_undel=no
+ EXT2FS_UNDEL_LIBS=
+ if test x$ac_cv_header_ext2fs_ext2fs_h = xyes
+ then
+ if test x$ac_cv_header_linux_ext2_fs_h = xyes
+ then
+ AC_DEFINE(USE_EXT2FSLIB)
+ ext2fs_undel=yes
+ EXT2FS_UNDEL_LIBS="-lext2fs -lcom_err"
+ fi
+ fi
+])
diff --git a/apps/X11/InstallMgr/macros/gnome-vfs.m4 b/apps/X11/InstallMgr/macros/gnome-vfs.m4
new file mode 100644
index 0000000..137a39d
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/gnome-vfs.m4
@@ -0,0 +1,120 @@
+dnl GNOME_VFS_CHECKS
+dnl Check for various functions needed by libvfs.
+dnl This has various effects:
+dnl Sets GNOME_VFS_LIBS to libraries required
+dnl Sets termnet to true or false depending on whether it is required.
+dnl If yes, defines USE_TERMNET.
+dnl Sets vfs_flags to "pretty" list of vfs implementations we include.
+dnl Sets shell variable use_vfs to yes (default, --with-vfs) or
+dnl "no" (--without-vfs).
+dnl Calls AC_SUBST(mcserv), which is either empty or "mcserv".
+
+dnl Private define
+AC_DEFUN([GNOME_WITH_VFS],[
+ dnl FIXME: network checks should probably be in their own macro.
+ AC_CHECK_LIB(nsl, t_accept)
+ AC_CHECK_LIB(socket, socket)
+
+ have_socket=no
+ AC_CHECK_FUNCS(socket, have_socket=yes)
+ if test $have_socket = no; then
+ # socket is not in the default libraries. See if it's in some other.
+ for lib in bsd socket inet; do
+ AC_CHECK_LIB($lib, socket, [
+ LIBS="$LIBS -l$lib"
+ have_socket=yes
+ AC_DEFINE(HAVE_SOCKET)
+ break])
+ done
+ fi
+
+ have_gethostbyname=no
+ AC_CHECK_FUNC(gethostbyname, have_gethostbyname=yes)
+ if test $have_gethostbyname = no; then
+ # gethostbyname is not in the default libraries. See if it's in some other.
+ for lib in bsd socket inet; do
+ AC_CHECK_LIB($lib, gethostbyname, [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break])
+ done
+ fi
+
+ vfs_flags="tarfs"
+ use_net_code=false
+ if test $have_socket = yes; then
+ AC_STRUCT_LINGER
+ AC_CHECK_FUNCS(pmap_set, , [
+ AC_CHECK_LIB(rpc, pmap_set, [
+ LIBS="-lrpc $LIBS"
+ AC_DEFINE(HAVE_PMAP_SET)
+ ])])
+ AC_CHECK_FUNCS(pmap_getport pmap_getmaps rresvport)
+ dnl add for source routing support setsockopt
+ AC_CHECK_HEADERS(rpc/pmap_clnt.h)
+ vfs_flags="$vfs_flags, mcfs, ftpfs, fish"
+ use_net_code=true
+ fi
+
+ dnl
+ dnl Samba support
+ dnl
+ smbfs=""
+ SAMBAFILES=""
+ AC_ARG_WITH(samba,
+ [--with-samba Support smb virtual file system],[
+ if test "x$withval != xno"; then
+ AC_DEFINE(WITH_SMBFS)
+ vfs_flags="$vfs_flags, smbfs"
+ smbfs="smbfs.o"
+ SAMBAFILES="\$(SAMBAFILES)"
+ fi
+ ])
+ AC_SUBST(smbfs)
+ AC_SUBST(SAMBAFILES)
+
+ dnl
+ dnl The termnet support
+ dnl
+ termnet=false
+ AC_ARG_WITH(termnet,
+ [--with-termnet If you want a termified net support],[
+ if test x$withval = xyes; then
+ AC_DEFINE(USE_TERMNET)
+ termnet=true
+ fi
+ ])
+
+ TERMNET=""
+ AC_DEFINE(USE_VFS)
+ if $use_net_code; then
+ AC_DEFINE(USE_NETCODE)
+ fi
+ mcserv=
+ if test $have_socket = yes; then
+ mcserv="mcserv"
+ if $termnet; then
+ TERMNET="-ltermnet"
+ fi
+ fi
+
+ AC_SUBST(TERMNET)
+ AC_SUBST(mcserv)
+
+dnl FIXME:
+dnl GNOME_VFS_LIBS=
+
+])
+
+AC_DEFUN([GNOME_VFS_CHECKS],[
+ use_vfs=yes
+ AC_ARG_WITH(vfs,
+ [--with-vfs Compile with the VFS code],
+ use_vfs=$withval
+ )
+ case $use_vfs in
+ yes) GNOME_WITH_VFS;;
+ no) use_vfs=no;;
+ *) use_vfs=no;;
+ dnl Should we issue a warning?
+ esac
+])
+
+
diff --git a/apps/X11/InstallMgr/macros/gnome-x-checks.m4 b/apps/X11/InstallMgr/macros/gnome-x-checks.m4
new file mode 100644
index 0000000..1e397ef
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/gnome-x-checks.m4
@@ -0,0 +1,80 @@
+dnl GNOME_X_CHECKS
+dnl
+dnl Basic X11 related checks for X11. At the end, the following will be
+dnl defined/changed:
+dnl GTK_{CFLAGS,LIBS} From AM_PATH_GTK
+dnl CPPFLAGS Will include $X_CFLAGS
+dnl GNOME_HAVE_SM `true' or `false' depending on whether session
+dnl management is available. It is available if
+dnl both -lSM and X11/SM/SMlib.h exist. (Some
+dnl Solaris boxes have the library but not the header)
+dnl XPM_LIBS -lXpm if Xpm library is present, otherwise ""
+dnl
+dnl The following configure cache variables are defined (but not used):
+dnl gnome_cv_passdown_{x_libs,X_LIBS,X_CFLAGS}
+dnl
+AC_DEFUN([GNOME_X_CHECKS],
+[
+ AM_PATH_GTK(1.2.0,,AC_MSG_ERROR(GTK not installed, or gtk-config not in path))
+ dnl Hope that GTK_CFLAGS have only -I and -D. Otherwise, we could
+ dnl test -z "$x_includes" || CPPFLAGS="$CPPFLAGS -I$x_includes"
+ dnl
+ dnl Use CPPFLAGS instead of CFLAGS because AC_CHECK_HEADERS uses
+ dnl CPPFLAGS, not CFLAGS
+ CPPFLAGS="$CPPFLAGS $GTK_CFLAGS"
+
+ saved_ldflags="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $GTK_LIBS"
+
+ gnome_cv_passdown_x_libs="$GTK_LIBS"
+ gnome_cv_passdown_X_LIBS="$GTK_LIBS"
+ gnome_cv_passdown_X_CFLAGS="$GTK_CFLAGS"
+ gnome_cv_passdown_GTK_LIBS="$GTK_LIBS"
+
+ LDFLAGS="$saved_ldflags $GTK_LIBS"
+
+dnl We are requiring GTK >= 1.1.1, which means this will be fine anyhow.
+ USE_DEVGTK=true
+
+dnl AC_MSG_CHECKING([whether to use features from (unstable) GTK+ 1.1.x])
+dnl AC_EGREP_CPP(answer_affirmatively,
+dnl [#include <gtk/gtkfeatures.h>
+dnl #ifdef GTK_HAVE_FEATURES_1_1_0
+dnl answer_affirmatively
+dnl #endif
+dnl ], dev_gtk=yes, dev_gtk=no)
+dnl if test "$dev_gtk" = "yes"; then
+dnl USE_DEVGTK=true
+dnl fi
+dnl AC_MSG_RESULT("$dev_gtk")
+
+ GNOME_HAVE_SM=true
+ case "$GTK_LIBS" in
+ *-lSM*)
+ dnl Already found it.
+ ;;
+ *)
+ dnl Assume that if we have -lSM then we also have -lICE.
+ AC_CHECK_LIB(SM, SmcSaveYourselfDone,
+ [GTK_LIBS="-lSM -lICE $GTK_LIBS"],GNOME_HAVE_SM=false,
+ $x_libs -lICE)
+ ;;
+ esac
+
+ if test "$GNOME_HAVE_SM" = true; then
+ AC_CHECK_HEADERS(X11/SM/SMlib.h,,GNOME_HAVE_SM=false)
+ fi
+
+ if test "$GNOME_HAVE_SM" = true; then
+ AC_DEFINE(HAVE_LIBSM)
+ fi
+
+ XPM_LIBS=""
+ AC_CHECK_LIB(Xpm, XpmFreeXpmImage, [XPM_LIBS="-lXpm"], , $x_libs)
+ AC_SUBST(XPM_LIBS)
+
+ AC_REQUIRE([GNOME_PTHREAD_CHECK])
+ LDFLAGS="$saved_ldflags"
+
+ AC_PROVIDE([GNOME_X_CHECKS])
+])
diff --git a/apps/X11/InstallMgr/macros/gnome-xml-check.m4 b/apps/X11/InstallMgr/macros/gnome-xml-check.m4
new file mode 100644
index 0000000..2410f35
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/gnome-xml-check.m4
@@ -0,0 +1,30 @@
+dnl
+dnl GNOME_XML_HOOK (script-if-xml-found, failflag)
+dnl
+dnl If failflag is "failure", script aborts due to lack of XML
+dnl
+dnl Check for availability of the libxml library
+dnl the XML parser uses libz if available too
+dnl
+
+AC_DEFUN([GNOME_XML_HOOK],[
+ AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
+ if test "$GNOME_CONFIG" = no; then
+ if test x$2 = xfailure; then
+ AC_MSG_ERROR(Could not find gnome-config)
+ fi
+ fi
+ AC_CHECK_LIB(xml, xmlNewDoc, [
+ $1
+ AC_SUBST(GNOME_XML_LIB)
+ GNOME_XML_LIB=`$GNOME_CONFIG --libs xml`
+ ], [
+ if test x$2 = xfailure; then
+ AC_MSG_ERROR(Could not link sample xml program)
+ fi
+ ], `$GNOME_CONFIG --libs xml`)
+])
+
+AC_DEFUN([GNOME_XML_CHECK], [
+ GNOME_XML_HOOK([],failure)
+])
diff --git a/apps/X11/InstallMgr/macros/gnome.m4 b/apps/X11/InstallMgr/macros/gnome.m4
new file mode 100644
index 0000000..a3a9ca7
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/gnome.m4
@@ -0,0 +1,124 @@
+dnl
+dnl GNOME_INIT_HOOK (script-if-gnome-enabled, [failflag], [additional-inits])
+dnl
+dnl if failflag is "fail" then GNOME_INIT_HOOK will abort if gnomeConf.sh
+dnl is not found.
+dnl
+
+AC_DEFUN([GNOME_INIT_HOOK],[
+ AC_SUBST(GNOME_LIBS)
+ AC_SUBST(GNOMEUI_LIBS)
+ AC_SUBST(GNOMEGNORBA_LIBS)
+ AC_SUBST(GTKXMHTML_LIBS)
+ AC_SUBST(ZVT_LIBS)
+ AC_SUBST(GNOME_LIBDIR)
+ AC_SUBST(GNOME_INCLUDEDIR)
+
+ AC_ARG_WITH(gnome-includes,
+ [ --with-gnome-includes Specify location of GNOME headers],[
+ CFLAGS="$CFLAGS -I$withval"
+ ])
+
+ AC_ARG_WITH(gnome-libs,
+ [ --with-gnome-libs Specify location of GNOME libs],[
+ LDFLAGS="$LDFLAGS -L$withval"
+ gnome_prefix=$withval
+ ])
+
+ AC_ARG_WITH(gnome,
+ [ --with-gnome Specify prefix for GNOME files],
+ if test x$withval = xyes; then
+ want_gnome=yes
+ dnl Note that an empty true branch is not
+ dnl valid sh syntax.
+ ifelse([$1], [], :, [$1])
+ else
+ if test "x$withval" = xno; then
+ want_gnome=no
+ else
+ want_gnome=yes
+ LDFLAGS="$LDFLAGS -L$withval/lib"
+ CFLAGS="$CFLAGS -I$withval/include"
+ gnome_prefix=$withval/lib
+ fi
+ fi,
+ want_gnome=yes)
+
+ if test "x$want_gnome" = xyes; then
+
+ AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
+ if test "$GNOME_CONFIG" = "no"; then
+ no_gnome_config="yes"
+ else
+ AC_MSG_CHECKING(if $GNOME_CONFIG works)
+ if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then
+ AC_MSG_RESULT(yes)
+ GNOME_GNORBA_HOOK([],$2)
+ GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome`"
+ GNOMEUI_LIBS="`$GNOME_CONFIG --libs-only-l gnomeui`"
+ GNOMEGNORBA_LIBS="`$GNOME_CONFIG --libs-only-l gnorba gnomeui`"
+ GTKXMHTML_LIBS="`$GNOME_CONFIG --libs-only-l gtkxmhtml`"
+ ZVT_LIBS="`$GNOME_CONFIG --libs-only-l zvt`"
+ GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`"
+ GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`"
+ $1
+ else
+ AC_MSG_RESULT(no)
+ no_gnome_config="yes"
+ fi
+ fi
+
+ if test x$exec_prefix = xNONE; then
+ if test x$prefix = xNONE; then
+ gnome_prefix=$ac_default_prefix/lib
+ else
+ gnome_prefix=$prefix/lib
+ fi
+ else
+ gnome_prefix=`eval echo \`echo $libdir\``
+ fi
+
+ if test "$no_gnome_config" = "yes"; then
+ AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix)
+ if test -f $gnome_prefix/gnomeConf.sh; then
+ AC_MSG_RESULT(found)
+ echo "loading gnome configuration from" \
+ "$gnome_prefix/gnomeConf.sh"
+ . $gnome_prefix/gnomeConf.sh
+ $1
+ else
+ AC_MSG_RESULT(not found)
+ if test x$2 = xfail; then
+ AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install)
+ fi
+ fi
+ fi
+ fi
+
+ if test -n "$3"; then
+ n="$3"
+ for i in $n; do
+ AC_MSG_CHECKING(extra library \"$i\")
+ case $i in
+ applets)
+ AC_SUBST(GNOME_APPLETS_LIBS)
+ GNOME_APPLETS_LIBS=`$GNOME_CONFIG --libs-only-l applets`
+ AC_MSG_RESULT($GNOME_APPLETS_LIBS);;
+ capplet)
+ AC_SUBST(GNOME_CAPPLET_LIBS)
+ GNOME_CAPPLET_LIBS=`$GNOME_CONFIG --libs-only-l capplet`
+ AC_MSG_RESULT($GNOME_CAPPLET_LIBS);;
+ *)
+ AC_MSG_RESULT(unknown library)
+ esac
+ done
+ fi
+])
+
+dnl
+dnl GNOME_INIT ([additional-inits])
+dnl
+
+AC_DEFUN([GNOME_INIT],[
+ GNOME_INIT_HOOK([],fail,$1)
+])
diff --git a/apps/X11/InstallMgr/macros/linger.m4 b/apps/X11/InstallMgr/macros/linger.m4
new file mode 100644
index 0000000..dfa7c8a
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/linger.m4
@@ -0,0 +1,28 @@
+dnl
+dnl Check for struct linger
+dnl
+AC_DEFUN(AC_STRUCT_LINGER, [
+av_struct_linger=no
+AC_MSG_CHECKING(struct linger is available)
+AC_TRY_RUN([
+#include <sys/types.h>
+#include <sys/socket.h>
+
+struct linger li;
+
+main ()
+{
+ li.l_onoff = 1;
+ li.l_linger = 120;
+ exit (0);
+}
+],[
+AC_DEFINE(HAVE_STRUCT_LINGER)
+av_struct_linger=yes
+],[
+av_struct_linger=no
+],[
+av_struct_linger=no
+])
+AC_MSG_RESULT($av_struct_linger)
+])
diff --git a/apps/X11/InstallMgr/macros/need-declaration.m4 b/apps/X11/InstallMgr/macros/need-declaration.m4
new file mode 100644
index 0000000..d5b7bc6
--- /dev/null
+++ b/apps/X11/InstallMgr/macros/need-declaration.m4
@@ -0,0 +1,42 @@
+dnl See whether we need a declaration for a function.
+dnl GCC_NEED_DECLARATION(FUNCTION [, EXTRA-HEADER-FILES])
+AC_DEFUN(GCC_NEED_DECLARATION,
+[AC_MSG_CHECKING([whether $1 must be declared])
+AC_CACHE_VAL(gcc_cv_decl_needed_$1,
+[AC_TRY_COMPILE([
+#include <stdio.h>
+#ifdef HAVE_STRING_H
+#include <string.h>
+#else
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+$2],
+[char *(*pfn) = (char *(*)) $1],
+eval "gcc_cv_decl_needed_$1=no", eval "gcc_cv_decl_needed_$1=yes")])
+if eval "test \"`echo '$gcc_cv_decl_needed_'$1`\" = yes"; then
+ AC_MSG_RESULT(yes)
+ gcc_need_declarations="$gcc_need_declarations $1"
+ gcc_tr_decl=NEED_DECLARATION_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ AC_DEFINE_UNQUOTED($gcc_tr_decl)
+else
+ AC_MSG_RESULT(no)
+fi
+])dnl
+
+dnl Check multiple functions to see whether each needs a declaration.
+dnl GCC_NEED_DECLARATIONS(FUNCTION... [, EXTRA-HEADER-FILES])
+AC_DEFUN(GCC_NEED_DECLARATIONS,
+[for ac_func in $1
+do
+GCC_NEED_DECLARATION($ac_func, $2)
+done
+]
+)
diff --git a/apps/X11/InstallMgr/missing b/apps/X11/InstallMgr/missing
new file mode 100755
index 0000000..7789652
--- /dev/null
+++ b/apps/X11/InstallMgr/missing
@@ -0,0 +1,190 @@
+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+# Franc,ois Pinard <pinard@iro.umontreal.ca>, 1996.
+
+# 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, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+if test $# -eq 0; then
+ echo 1>&2 "Try \`$0 --help' for more information"
+ exit 1
+fi
+
+case "$1" in
+
+ -h|--h|--he|--hel|--help)
+ echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+ -h, --help display this help and exit
+ -v, --version output version information and exit
+
+Supported PROGRAM values:
+ aclocal touch file \`aclocal.m4'
+ autoconf touch file \`configure'
+ autoheader touch file \`config.h.in'
+ automake touch all \`Makefile.in' files
+ bison create \`y.tab.[ch]', if possible, from existing .[ch]
+ flex create \`lex.yy.c', if possible, from existing .c
+ lex create \`lex.yy.c', if possible, from existing .c
+ makeinfo touch the output file
+ yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
+ ;;
+
+ -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+ echo "missing - GNU libit 0.0"
+ ;;
+
+ -*)
+ echo 1>&2 "$0: Unknown \`$1' option"
+ echo 1>&2 "Try \`$0 --help' for more information"
+ exit 1
+ ;;
+
+ aclocal)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified \`acinclude.m4' or \`configure.in'. You might want
+ to install the \`Automake' and \`Perl' packages. Grab them from
+ any GNU archive site."
+ touch aclocal.m4
+ ;;
+
+ autoconf)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified \`configure.in'. You might want to install the
+ \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
+ archive site."
+ touch configure
+ ;;
+
+ autoheader)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified \`acconfig.h' or \`configure.in'. You might want
+ to install the \`Autoconf' and \`GNU m4' packages. Grab them
+ from any GNU archive site."
+ files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in`
+ test -z "$files" && files="config.h"
+ touch_files=
+ for f in $files; do
+ case "$f" in
+ *:*) touch_files="$touch_files "`echo "$f" |
+ sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+ *) touch_files="$touch_files $f.in";;
+ esac
+ done
+ touch $touch_files
+ ;;
+
+ automake)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
+ You might want to install the \`Automake' and \`Perl' packages.
+ Grab them from any GNU archive site."
+ find . -type f -name Makefile.am -print |
+ sed 's/\.am$/.in/' |
+ while read f; do touch "$f"; done
+ ;;
+
+ bison|yacc)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified a \`.y' file. You may need the \`Bison' package
+ in order for those modifications to take effect. You can get
+ \`Bison' from any GNU archive site."
+ rm -f y.tab.c y.tab.h
+ if [ $# -ne 1 ]; then
+ eval LASTARG="\${$#}"
+ case "$LASTARG" in
+ *.y)
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" y.tab.c
+ fi
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" y.tab.h
+ fi
+ ;;
+ esac
+ fi
+ if [ ! -f y.tab.h ]; then
+ echo >y.tab.h
+ fi
+ if [ ! -f y.tab.c ]; then
+ echo 'main() { return 0; }' >y.tab.c
+ fi
+ ;;
+
+ lex|flex)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified a \`.l' file. You may need the \`Flex' package
+ in order for those modifications to take effect. You can get
+ \`Flex' from any GNU archive site."
+ rm -f lex.yy.c
+ if [ $# -ne 1 ]; then
+ eval LASTARG="\${$#}"
+ case "$LASTARG" in
+ *.l)
+ SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" lex.yy.c
+ fi
+ ;;
+ esac
+ fi
+ if [ ! -f lex.yy.c ]; then
+ echo 'main() { return 0; }' >lex.yy.c
+ fi
+ ;;
+
+ makeinfo)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified a \`.texi' or \`.texinfo' file, or any other file
+ indirectly affecting the aspect of the manual. The spurious
+ call might also be the consequence of using a buggy \`make' (AIX,
+ DU, IRIX). You might want to install the \`Texinfo' package or
+ the \`GNU make' package. Grab either from any GNU archive site."
+ file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+ if test -z "$file"; then
+ file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+ file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
+ fi
+ touch $file
+ ;;
+
+ *)
+ echo 1>&2 "\
+WARNING: \`$1' is needed, and you do not seem to have it handy on your
+ system. You might have modified some files without having the
+ proper tools for further handling them. Check the \`README' file,
+ it often tells you about the needed prerequirements for installing
+ this package. You may also peek at any GNU archive site, in case
+ some other package would contain this missing \`$1' program."
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/apps/X11/InstallMgr/mkinstalldirs b/apps/X11/InstallMgr/mkinstalldirs
new file mode 100755
index 0000000..51d276b
--- /dev/null
+++ b/apps/X11/InstallMgr/mkinstalldirs
@@ -0,0 +1,40 @@
+#! /bin/sh
+# mkinstalldirs --- make directory hierarchy
+# Author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Public domain
+
+# $Id: mkinstalldirs,v 1.1 1999/12/21 08:19:13 scribe Exp $
+
+errstatus=0
+
+for file
+do
+ set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+ shift
+
+ pathcomp=
+ for d
+ do
+ pathcomp="$pathcomp$d"
+ case "$pathcomp" in
+ -* ) pathcomp=./$pathcomp ;;
+ esac
+
+ if test ! -d "$pathcomp"; then
+ echo "mkdir $pathcomp"
+
+ mkdir "$pathcomp" || lasterr=$?
+
+ if test ! -d "$pathcomp"; then
+ errstatus=$lasterr
+ fi
+ fi
+
+ pathcomp="$pathcomp/"
+ done
+done
+
+exit $errstatus
+
+# mkinstalldirs ends here
diff --git a/apps/X11/InstallMgr/pixmaps/arrow2r.xpm b/apps/X11/InstallMgr/pixmaps/arrow2r.xpm
new file mode 100644
index 0000000..e58b852
--- /dev/null
+++ b/apps/X11/InstallMgr/pixmaps/arrow2r.xpm
@@ -0,0 +1,25 @@
+/* XPM */
+static char * arrow2r_xpm[] = {
+"16 16 6 1",
+" c None",
+". c #0000FF",
+"+ c #D3D3DD",
+"@ c #FF0000",
+"# c #000080",
+"$ c #7F7F7F",
+"..++++++++++++++",
+"+...++++++++++++",
+"+.....++++++++++",
+"++......++++++++",
+"+++.......++++++",
+"+++.........++++",
+"++++..........++",
+"@@@@@@@@@@@@@@@@",
+"++++##########$+",
+"+++#########$+++",
+"++$#######$+++++",
+"++######$+++++++",
+"+#####$+++++++++",
+"$###$+++++++++++",
+"##$+++++++++++++",
+"++++++++++++++++"};
diff --git a/apps/X11/InstallMgr/pixmaps/filenew.xpm b/apps/X11/InstallMgr/pixmaps/filenew.xpm
new file mode 100644
index 0000000..2abd4bf
--- /dev/null
+++ b/apps/X11/InstallMgr/pixmaps/filenew.xpm
@@ -0,0 +1,25 @@
+/* XPM */
+static char * filenew_xpm[] = {
+"16 16 6 1",
+" c None",
+". c #FFFF00",
+"+ c #D3D3DD",
+"@ c #000000",
+"# c #FFFFFF",
+"$ c #7F7F7F",
+".++++++.+++++++.",
+"+..++++..++++..+",
+"++.@@@@@@+++..++",
+"+++@####@@+..+++",
+"+++@####@#@.++++",
+"+++@####@##@++++",
+"+++@####@@@@@+++",
+"+..@########@...",
+"...@########@..+",
+"+++@########@$++",
+"+++@########@$++",
+"+++@########@$++",
+"+++@########@$++",
+"++.@@@@@@@@@@.++",
+"+..+$$$..$$$$..+",
+"++++++++.++++++."};
diff --git a/apps/X11/InstallMgr/pixmaps/globe.xpm b/apps/X11/InstallMgr/pixmaps/globe.xpm
new file mode 100644
index 0000000..84f772f
--- /dev/null
+++ b/apps/X11/InstallMgr/pixmaps/globe.xpm
@@ -0,0 +1,24 @@
+/* XPM */
+static char * globe_xpm[] = {
+"16 16 5 1",
+" c None",
+". c #D3D3DD",
+"+ c #0000FF",
+"@ c #000080",
+"# c #808000",
+".....+@+++......",
+"...##++@+@++....",
+"..####++#+##+...",
+".@+#########++..",
+".+++++######@+..",
+"+++##++@###++@+.",
+"@++########+@+@.",
+"+@######+#+@+++.",
+"@++#####+++@@@+.",
+"+++++###+++@+@@.",
+".@+++###@@@@##..",
+".@+@+##@+@+@##..",
+"..@+@##@@@@@@...",
+"...@+@@@+@@@....",
+".....@@+@+......",
+"................"};
diff --git a/apps/X11/InstallMgr/pixmaps/sword.xpm b/apps/X11/InstallMgr/pixmaps/sword.xpm
new file mode 100644
index 0000000..7b4b67f
--- /dev/null
+++ b/apps/X11/InstallMgr/pixmaps/sword.xpm
@@ -0,0 +1,875 @@
+/* XPM */
+static char * sword_xpm[] = {
+"254 100 772 2",
+" c None",
+". c #CCCDCC",
+"+ c #CDCECD",
+"@ c #CECFCE",
+"# c #585858",
+"$ c #4A4A4A",
+"% c #919291",
+"& c #9A9B9A",
+"* c #040404",
+"= c #000000",
+"- c #1D1D1D",
+"; c #B7B8B7",
+"> c #CECECE",
+", c #8D8E8D",
+"' c #050505",
+") c #A5A6A5",
+"! c #757675",
+"~ c #444544",
+"{ c #373737",
+"] c #848584",
+"^ c #C8C9C8",
+"/ c #2D2D2D",
+"( c #0B0B0B",
+"_ c #AEAFAE",
+": c #A8A9A8",
+"< c #5A5B5A",
+"[ c #767676",
+"} c #121212",
+"| c #B8B9B8",
+"1 c #7B7C7B",
+"2 c #AFB0AF",
+"3 c #3A3B3A",
+"4 c #6D6D6D",
+"5 c #797A79",
+"6 c #121312",
+"7 c #BEBFBE",
+"8 c #A3A4A3",
+"9 c #1E1E1E",
+"0 c #5D5D5D",
+"a c #373837",
+"b c #060606",
+"c c #464746",
+"d c #404040",
+"e c #5C5C5C",
+"f c #7B7B7B",
+"g c #B6B7B6",
+"h c #323232",
+"i c #696969",
+"j c #C3C4C3",
+"k c #959595",
+"l c #232323",
+"m c #838383",
+"n c #B9BAB9",
+"o c #696A69",
+"p c #BBBCBB",
+"q c #8C8C8C",
+"r c #969796",
+"s c #707070",
+"t c #646464",
+"u c #6E6E6E",
+"v c #C4C5C4",
+"w c #A7A8A7",
+"x c #101010",
+"y c #4B4B4B",
+"z c #C7C8C7",
+"A c #131313",
+"B c #BDBEBD",
+"C c #2B2B2B",
+"D c #1F1F1F",
+"E c #8A8B8A",
+"F c #7F7F7F",
+"G c #242524",
+"H c #020202",
+"I c #828382",
+"J c #CDCFCD",
+"K c #494949",
+"L c #3B3B3B",
+"M c #535353",
+"N c #686968",
+"O c #161616",
+"P c #B0B1B0",
+"Q c #0F0F0F",
+"R c #9FA09F",
+"S c #4F4F4F",
+"T c #1B1B1B",
+"U c #B3B4B3",
+"V c #ADAEAD",
+"W c #0C0C0C",
+"X c #1A1A1A",
+"Y c #9B9B9B",
+"Z c #4C4C4C",
+"` c #505050",
+" . c #494A49",
+".. c #606060",
+"+. c #989998",
+"@. c #1C1C1C",
+"#. c #151515",
+"$. c #717171",
+"%. c #747574",
+"&. c #818281",
+"*. c #424242",
+"=. c #878787",
+"-. c #393A39",
+";. c #CACBCA",
+">. c #A0A1A0",
+",. c #070707",
+"'. c #292A29",
+"). c #9C9D9C",
+"!. c #090909",
+"~. c #222222",
+"{. c #B1B2B1",
+"]. c #787878",
+"^. c #414241",
+"/. c #414141",
+"(. c #717271",
+"_. c #B2B3B2",
+":. c #090A09",
+"<. c #BCBDBC",
+"[. c #171717",
+"}. c #565656",
+"|. c #C0C1C0",
+"1. c #939493",
+"2. c #393939",
+"3. c #C2C2C2",
+"4. c #797979",
+"5. c #A4A5A4",
+"6. c #636363",
+"7. c #525252",
+"8. c #C2C3C2",
+"9. c #6B6B6B",
+"0. c #898989",
+"a. c #A1A2A1",
+"b. c #505150",
+"c. c #8E8F8E",
+"d. c #272827",
+"e. c #010101",
+"f. c #9B9C9B",
+"g. c #515251",
+"h. c #121412",
+"i. c #939393",
+"j. c #949494",
+"k. c #3D3D3D",
+"l. c #4C4D4C",
+"m. c #080808",
+"n. c #2B2C2B",
+"o. c #BABABA",
+"p. c #B7B7B7",
+"q. c #ABACAB",
+"r. c #9FA19F",
+"s. c #B0B0B0",
+"t. c #707170",
+"u. c #BFC0BF",
+"v. c #878887",
+"w. c #565856",
+"x. c #323532",
+"y. c #303330",
+"z. c #333533",
+"A. c #383738",
+"B. c #3B3A3B",
+"C. c #3E3D3E",
+"D. c #373937",
+"E. c #393B39",
+"F. c #7E807E",
+"G. c #939593",
+"H. c #303030",
+"I. c #282728",
+"J. c #282828",
+"K. c #656765",
+"L. c #828482",
+"M. c #868886",
+"N. c #8A8A8A",
+"O. c #8A8C8A",
+"P. c #A0A2A0",
+"Q. c #969896",
+"R. c #8E908E",
+"S. c #929292",
+"T. c #939293",
+"U. c #949594",
+"V. c #979797",
+"W. c #BEBEBE",
+"X. c #838283",
+"Y. c #A09FA0",
+"Z. c #A0A0A0",
+"`. c #8C8A8C",
+" + c #A9ABA9",
+".+ c #9A9C9A",
+"++ c #909090",
+"@+ c #949294",
+"#+ c #949394",
+"$+ c #949694",
+"%+ c #9A999A",
+"&+ c #A7A6A7",
+"*+ c #CBCCCB",
+"=+ c #C0BFC0",
+"-+ c #C4C3C4",
+";+ c #C3C2C3",
+">+ c #BDBDBD",
+",+ c #C6C6C6",
+"'+ c #CBCBCB",
+")+ c #D0D0D0",
+"!+ c #D2D2D2",
+"~+ c #D2D3D2",
+"{+ c #D6D5D6",
+"]+ c #D6D6D6",
+"^+ c #D6D7D6",
+"/+ c #D7D8D7",
+"(+ c #E4E1E4",
+"_+ c #E6E2E6",
+":+ c #E6E5E6",
+"<+ c #E6E6E6",
+"[+ c #E9E6E9",
+"}+ c #E0DEE0",
+"|+ c #E0E0E0",
+"1+ c #D8D9D8",
+"2+ c #302F30",
+"3+ c #5F605F",
+"4+ c #676767",
+"5+ c #383838",
+"6+ c #383B38",
+"7+ c #7B7D7B",
+"8+ c #666866",
+"9+ c #434543",
+"0+ c #494849",
+"a+ c #494B49",
+"b+ c #494C49",
+"c+ c #4D4E4D",
+"d+ c #515051",
+"e+ c #515151",
+"f+ c #515451",
+"g+ c #7A7C7A",
+"h+ c #595C59",
+"i+ c #5B5D5B",
+"j+ c #626062",
+"k+ c #626162",
+"l+ c #626362",
+"m+ c #626462",
+"n+ c #666666",
+"o+ c #6A686A",
+"p+ c #6F6E6F",
+"q+ c #727072",
+"r+ c #727372",
+"s+ c #727472",
+"t+ c #7A787A",
+"u+ c #7A797A",
+"v+ c #7A7B7A",
+"w+ c #808180",
+"x+ c #A1A0A1",
+"y+ c #8C8B8C",
+"z+ c #8C8D8C",
+"A+ c #8C8E8C",
+"B+ c #9C9A9C",
+"C+ c #AAAAAA",
+"D+ c #B9BBB9",
+"E+ c #C9C9C9",
+"F+ c #ADABAD",
+"G+ c #ADADAD",
+"H+ c #B3B1B3",
+"I+ c #B5B2B5",
+"J+ c #B5B4B5",
+"K+ c #B5B6B5",
+"L+ c #BCB9BC",
+"M+ c #BDBABD",
+"N+ c #C1C0C1",
+"O+ c #C6C3C6",
+"P+ c #C7C4C7",
+"Q+ c #CDCDCD",
+"R+ c #D2D1D2",
+"S+ c #D6D3D6",
+"T+ c #D7D7D7",
+"U+ c #DDDADD",
+"V+ c #DEDBDE",
+"W+ c #DEDDDE",
+"X+ c #DEDFDE",
+"Y+ c #E2E0E2",
+"Z+ c #E7E3E7",
+"`+ c #E7E6E7",
+" @ c #E7E7E7",
+".@ c #ECE9EC",
+"+@ c #EFEBEF",
+"@@ c #EFECEF",
+"#@ c #EFEEEF",
+"$@ c #EFEFEF",
+"%@ c #E6E4E6",
+"&@ c #D5D5D5",
+"*@ c #B7B9B7",
+"=@ c #3F423F",
+"-@ c #2A2C2A",
+";@ c #484748",
+">@ c #989898",
+",@ c #C6C7C6",
+"'@ c #999A99",
+")@ c #1F1E1F",
+"!@ c #393839",
+"~@ c #9EA09E",
+"{@ c #4E504E",
+"]@ c #5C5E5C",
+"^@ c #6E706E",
+"/@ c #929492",
+"(@ c #ACADAC",
+"_@ c #C1C1C1",
+":@ c #C1C2C1",
+"<@ c #9B9D9B",
+"[@ c #747674",
+"}@ c #898889",
+"|@ c #8D8D8D",
+"1@ c #959795",
+"2@ c #A9AAA9",
+"3@ c #ADACAD",
+"4@ c #9C9C9C",
+"5@ c #A2A4A2",
+"6@ c #BBBDBB",
+"7@ c #C9CAC9",
+"8@ c #C0BEC0",
+"9@ c #C5C2C5",
+"0@ c #CFCFCF",
+"a@ c #D1D2D1",
+"b@ c #D3D4D3",
+"c@ c #D5D6D5",
+"d@ c #DADADA",
+"e@ c #DAD9DA",
+"f@ c #DBDADB",
+"g@ c #D8D8D8",
+"h@ c #DBDCDB",
+"i@ c #DCDCDC",
+"j@ c #EBE8EB",
+"k@ c #EEEAEE",
+"l@ c #F0EFF0",
+"m@ c #F4F0F4",
+"n@ c #E8E6E8",
+"o@ c #D4D4D4",
+"p@ c #3C3D3C",
+"q@ c #282B28",
+"r@ c #8B8D8B",
+"s@ c #4E4F4E",
+"t@ c #161716",
+"u@ c #3A393A",
+"v@ c #4A494A",
+"w@ c #AFB1AF",
+"x@ c #979897",
+"y@ c #807E80",
+"z@ c #848684",
+"A@ c #929192",
+"B@ c #AEAEAE",
+"C@ c #9C9B9C",
+"D@ c #9C9E9C",
+"E@ c #B2B4B2",
+"F@ c #C7C7C7",
+"G@ c #D5D4D5",
+"H@ c #D1D1D1",
+"I@ c #F6F2F6",
+"J@ c #F7F3F7",
+"K@ c #A3A3A3",
+"L@ c #282928",
+"M@ c #545354",
+"N@ c #AEB0AE",
+"O@ c #A9A9A9",
+"P@ c #A5A5A5",
+"Q@ c #918F91",
+"R@ c #848284",
+"S@ c #929392",
+"T@ c #BABBBA",
+"U@ c #A3A2A3",
+"V@ c #B3B5B3",
+"W@ c #CFD0CF",
+"X@ c #D9D9D9",
+"Y@ c #E8E7E8",
+"Z@ c #EEEBEE",
+"`@ c #292829",
+" # c #4D4C4D",
+".# c #858685",
+"+# c #838183",
+"@# c #848384",
+"## c #AFAEAF",
+"$# c #C9C8C9",
+"%# c #E1E0E1",
+"&# c #EEEEEE",
+"*# c #292C29",
+"=# c #262626",
+"-# c #2A292A",
+";# c #A2A2A2",
+"># c #8D8F8D",
+",# c #8F8F8F",
+"'# c #C7C9C7",
+")# c #5C5F5C",
+"!# c #B8B8B8",
+"~# c #595A59",
+"{# c #757475",
+"]# c #959695",
+"^# c #979597",
+"/# c #B7B6B7",
+"(# c #C7C5C7",
+"_# c #D3D1D3",
+":# c #212421",
+"<# c #6A6D6A",
+"[# c #414441",
+"}# c #8E8E8E",
+"|# c #7E7D7E",
+"1# c #595959",
+"2# c #747374",
+"3# c #7B797B",
+"4# c #B4B3B4",
+"5# c #B7B5B7",
+"6# c #C2C0C2",
+"7# c #CCCCCC",
+"8# c #252825",
+"9# c #202320",
+"0# c #686868",
+"a# c #595859",
+"b# c #818481",
+"c# c #6F706F",
+"d# c #7D7B7D",
+"e# c #888788",
+"f# c #7D7E7D",
+"g# c #A5A3A5",
+"h# c #A3A5A3",
+"i# c #ADAAAD",
+"j# c #E9E7E9",
+"k# c #F2EFF2",
+"l# c #474847",
+"m# c #505350",
+"n# c #525552",
+"o# c #BCBEBC",
+"p# c #B0B2B0",
+"q# c #6B6D6B",
+"r# c #6D6E6D",
+"s# c #9D9D9D",
+"t# c #A4A6A4",
+"u# c #8F8E8F",
+"v# c #9B9A9B",
+"w# c #D4D2D4",
+"x# c #202020",
+"y# c #434643",
+"z# c #A6A8A6",
+"A# c #868686",
+"B# c #5B5A5B",
+"C# c #6A6C6A",
+"D# c #7F807F",
+"E# c #737573",
+"F# c #AFAFAF",
+"G# c #A4A4A4",
+"H# c #B3B3B3",
+"I# c #ACA9AC",
+"J# c #D1D0D1",
+"K# c #565556",
+"L# c #201F20",
+"M# c #414041",
+"N# c #7C7E7C",
+"O# c #585B58",
+"P# c #5D605D",
+"Q# c #767576",
+"R# c #676967",
+"S# c #787778",
+"T# c #6A6B6A",
+"U# c #7E7F7E",
+"V# c #B4B4B4",
+"W# c #BEC0BE",
+"X# c #BCBCBC",
+"Y# c #A6A6A6",
+"Z# c #D9D8D9",
+"`# c #DFDEDF",
+" $ c #3A3C3A",
+".$ c #6C6B6C",
+"+$ c #595B59",
+"@$ c #C5C7C5",
+"#$ c #AAABAA",
+"$$ c #999B99",
+"%$ c #ADAFAD",
+"&$ c #6A696A",
+"*$ c #969596",
+"=$ c #727172",
+"-$ c #737373",
+";$ c #A4A2A4",
+">$ c #CACACA",
+",$ c #EAE6EA",
+"'$ c #E1E1E1",
+")$ c #575857",
+"!$ c #969696",
+"~$ c #B1B3B1",
+"{$ c #858585",
+"]$ c #616461",
+"^$ c #7C7C7C",
+"/$ c #696869",
+"($ c #6C6A6C",
+"_$ c #747274",
+":$ c #737173",
+"<$ c #9D9B9D",
+"[$ c #BFBFBF",
+"}$ c #CECCCE",
+"|$ c #CECDCE",
+"1$ c #E1DFE1",
+"2$ c #EAEAEA",
+"3$ c #BDBFBD",
+"4$ c #5C5B5C",
+"5$ c #ACACAC",
+"6$ c #484848",
+"7$ c #686768",
+"8$ c #909290",
+"9$ c #646564",
+"0$ c #B1B0B1",
+"a$ c #BDBCBD",
+"b$ c #CECBCE",
+"c$ c #1C1D1C",
+"d$ c #2E2D2E",
+"e$ c #5A5D5A",
+"f$ c #3F3F3F",
+"g$ c #424142",
+"h$ c #888888",
+"i$ c #B2B2B2",
+"j$ c #B1AFB1",
+"k$ c #A5A2A5",
+"l$ c #BDBBBD",
+"m$ c #EDEAED",
+"n$ c #EAE8EA",
+"o$ c #4B4C4B",
+"p$ c #232223",
+"q$ c #989A98",
+"r$ c #393C39",
+"s$ c #4C4F4C",
+"t$ c #5E5D5E",
+"u$ c #919091",
+"v$ c #626262",
+"w$ c #8D8C8D",
+"x$ c #B4B5B4",
+"y$ c #BAB9BA",
+"z$ c #B6B4B6",
+"A$ c #CDCACD",
+"B$ c #E0E1E0",
+"C$ c #EAE7EA",
+"D$ c #7A7A7A",
+"E$ c #848484",
+"F$ c #575657",
+"G$ c #575A57",
+"H$ c #6B696B",
+"I$ c #A4A1A4",
+"J$ c #212021",
+"K$ c #323132",
+"L$ c #C5C6C5",
+"M$ c #737473",
+"N$ c #AAACAA",
+"O$ c #616061",
+"P$ c #ABADAB",
+"Q$ c #9E9F9E",
+"R$ c #B9B9B9",
+"S$ c #3A3A3A",
+"T$ c #5A595A",
+"U$ c #8F908F",
+"V$ c #898A89",
+"W$ c #878987",
+"X$ c #605F60",
+"Y$ c #BBBBBB",
+"Z$ c #A1A1A1",
+"`$ c #CDCCCD",
+" % c #E3E3E3",
+".% c #C3C3C3",
+"+% c #424542",
+"@% c #5E615E",
+"#% c #6F6F6F",
+"$% c #717371",
+"%% c #767476",
+"&% c #C8C7C8",
+"*% c #2B2A2B",
+"=% c #535653",
+"-% c #9F9F9F",
+";% c #ABAAAB",
+">% c #C8C6C8",
+",% c #C6C4C6",
+"'% c #E0DFE0",
+")% c #6E6F6E",
+"!% c #6A6A6A",
+"~% c #807F80",
+"{% c #A9A8A9",
+"]% c #A7A7A7",
+"^% c #B5B3B5",
+"/% c #D0D1D0",
+"(% c #E2E1E2",
+"_% c #363636",
+":% c #3E413E",
+"<% c #5E5E5E",
+"[% c #7D7F7D",
+"}% c #5F5F5F",
+"|% c #979697",
+"1% c #919391",
+"2% c #BFBEBF",
+"3% c #C6C5C6",
+"4% c #D8D7D8",
+"5% c #C1C3C1",
+"6% c #4F504F",
+"7% c #818181",
+"8% c #636463",
+"9% c #5D5F5D",
+"0% c #ACAEAC",
+"a% c #808080",
+"b% c #636563",
+"c% c #A6A5A6",
+"d% c #AEABAE",
+"e% c #CAC9CA",
+"f% c #D7D6D7",
+"g% c #DEDEDE",
+"h% c #171817",
+"i% c #5B5B5B",
+"j% c #818381",
+"k% c #A7A9A7",
+"l% c #706E70",
+"m% c #939193",
+"n% c #A5A7A5",
+"o% c #B8B6B8",
+"p% c #DCD9DC",
+"q% c #D9DAD9",
+"r% c #111511",
+"s% c #0E0F0E",
+"t% c #8B8C8B",
+"u% c #767876",
+"v% c #757575",
+"w% c #626562",
+"x% c #666966",
+"y% c #828182",
+"z% c #8A898A",
+"A% c #A6A7A6",
+"B% c #DDDDDD",
+"C% c #080C08",
+"D% c #616361",
+"E% c #353635",
+"F% c #9D9F9D",
+"G% c #343534",
+"H% c #3C3C3C",
+"I% c #676A67",
+"J% c #888A88",
+"K% c #B1B1B1",
+"L% c #9F9E9F",
+"M% c #979997",
+"N% c #C1BFC1",
+"O% c #070B07",
+"P% c #303430",
+"Q% c #1C1E1C",
+"R% c #404340",
+"S% c #434243",
+"T% c #383938",
+"U% c #5A5A5A",
+"V% c #636263",
+"W% c #757775",
+"X% c #878587",
+"Y% c #A5A4A5",
+"Z% c #BCBBBC",
+"`% c #DCDADC",
+" & c #111211",
+".& c #2D302D",
+"+& c #181C18",
+"@& c #313431",
+"#& c #797C79",
+"$& c #4A4D4A",
+"%& c #868486",
+"&& c #B5B5B5",
+"*& c #AAA8AA",
+"=& c #111111",
+"-& c #070907",
+";& c #090C09",
+">& c #838483",
+",& c #171B17",
+"'& c #656465",
+")& c #8B8B8B",
+"!& c #A4A3A4",
+"~& c #BEBDBE",
+"{& c #353835",
+"]& c #353535",
+"^& c #191C19",
+"/& c #737673",
+"(& c #3D3F3D",
+"_& c #6C6D6C",
+":& c #7E7C7E",
+"<& c #969496",
+"[& c #AEACAE",
+"}& c #C0C0C0",
+"|& c #141514",
+"1& c #4E4E4E",
+"2& c #D5D2D5",
+"3& c #222522",
+"4& c #B4B6B4",
+"5& c #363936",
+"6& c #181818",
+"7& c #767776",
+"8& c #303230",
+"9& c #3E403E",
+"0& c #BABCBA",
+"a& c #999999",
+"b& c #7F817F",
+"c& c #919191",
+"d& c #C4C4C4",
+"e& c #B9B8B9",
+"f& c #141414",
+"g& c #464946",
+"h& c #040604",
+"i& c #252925",
+"j& c #585958",
+"k& c #0F130F",
+"l& c #121512",
+"m& c #464846",
+"n& c #707270",
+"o& c #706F70",
+"p& c #818081",
+"q& c #B4B1B4",
+"r& c #676567",
+"s& c #CBCACB",
+"t& c #C8C8C8",
+"u& c #484948",
+"v& c #0F100F",
+"w& c #0F120F",
+"x& c #202420",
+"y& c #B6B6B6",
+"z& c #6D6F6D",
+"A& c #A8AAA8",
+"B& c #444344",
+"C& c #444444",
+"D& c #464646",
+"E& c #555755",
+"F& c #393D39",
+"G& c #3A3D3A",
+"H& c #9A9A9A",
+"I& c #A2A3A2",
+"J& c #333433",
+"K& c #C5C5C5",
+"L& c #434343",
+"M& c #888988",
+"N& c #242424",
+"O& c #868786",
+"P& c #0C0D0C",
+"Q& c #2A2A2A",
+"R& c #1F201F",
+"S& c #606160",
+"T& c #5E5F5E",
+"U& c #323332",
+"V& c #6B6C6B",
+"W& c #656565",
+"X& c #2E2F2E",
+"Y& c #212221",
+"Z& c #909190",
+"`& c #0B0C0B",
+" * c #2C2C2C",
+".* c #0E0E0E",
+"+* c #ABABAB",
+"@* c #333333",
+"#* c #535453",
+"$* c #747474",
+"%* c #303130",
+"&* c #2F2F2F",
+"** c #525352",
+"=* c #262726",
+"-* c #575757",
+";* c #252525",
+">* c #343434",
+",* c #787978",
+"'* c #030303",
+")* c #1D1E1D",
+"!* c #777877",
+"~* c #5B5C5B",
+"{* c #424342",
+"]* c #191919",
+"^* c #616261",
+"/* c #0D0D0D",
+"(* c #292929",
+"_* c #2C2D2C",
+":* c #2A2B2A",
+"<* c #3D3E3D",
+"[* c #3E3F3E",
+"}* c #191A19",
+"|* c #4A4B4A",
+"1* c #0A0A0A",
+"2* c #9D9E9D",
+"3* c #727272",
+"4* c #4D4D4D",
+"5* c #6C6C6C",
+"6* c #3B3C3B",
+"7* c #2F302F",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + . . . . . . + + + + + . + + + + + + . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . + + + + + + + . + + + + + + + + . . . . + + + + + . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . + + + + + + + + + + + + + + + + + + + + + . . . . . + . . . . . . + + + + + . . + + + + + . . + + + + + . . + + + + + . + + + + + + + + + + . . + + + ",
+". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ",
+". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ",
+". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + # $ $ % + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ",
+". + + + + + + @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + & * = - ; + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ",
+". + + + + @ @ @ @ @ @ @ > @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + , = ' ) + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ + + + + ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ! = ~ + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ + + + + ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { = ] + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ^ / ( + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _ = ( + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + : = < + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + # = [ + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + } = | + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 = = | + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 + + 5 = 6 7 + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + 8 = = 9 0 0 0 0 0 a = = b b b b b b = c + + 5 = d + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + 8 = e + + + + + + f = = g + + + + . h c + + i = d + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + 8 = j + + + + + + f = = g + + + + + k c + + l = m + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + > @ @ @ @ @ @ @ @ @ + + + + + + + n o ^ + + + + + + f = = g + + + + + p q + + l = r + + + + ^ s t t u + + + + v w t x y q + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + + l = r + + + z $ = = = A + + + B C D E F G H I + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + J @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + + l = r + + + K L M = = A + + + N = [ + + j O b w + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + P Q * R + + S T U z = = A + + V = W + + + + X = R + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + Y = D + + V ( _ + ^ = = A + + V = Z + + + + X = R + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + Y = D + + ` .+ + ^ = = A + + ..= P + + + +.H = R + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + > > @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + Y = D + 5 @.7 + + ^ = = A + + ~ = n + + g S = = R + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + Y = D + #.$.+ + + ^ = = A + + = = %.&...A = *.0 v + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + % = D =.-.;.+ + + ^ = = @.+ >.= ,.O '.4 ).j . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + ~ = !.~.8 + + + + {.= = i + ].= ^.+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + J @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + ~ = = /.+ + + + + (.= = _.+ ].= :.<.+ + + + + + . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + ~ = = r + + + + v [.= }.@ + ].= = n + + + + + ) K + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + > @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + ~ = [.|.+ + + + 1.= 2.3.@ + | = = 4.+ + + + + ) K + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ > @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + ~ = K + + + + . /.H 5.+ @ + + b = 6.+ + + + + 7.S + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + J @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + 8.3 = = 9.+ + + + + + + + ~ = 0.+ + + + a.= b.+ + @ + + c.= l E + + + 1 / B + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + 9.d.d.9 = = = e.d.d.d.f.+ + + + g.h.i.j.2 + + k.O <.+ + @ + + z l.= m.d.d.d.n.7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ o.p.p.q.r.r.s.|.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + r t.u.z z z z 8.t.t.t.{.+ ;.v.w.x.y.z.A.B.C.C.D.E.F.+ + @ + + + G.H.I.I.J.K.L.M.N.N.N.E O.P.+ + + + + Q.R.R.S.T.T.i.G.G.U.V.V.V.& + + + + + W.X.).).).Y.Z.Z.>.P.P.a.`.@ @ @ @ @ @ @ + U +.+R.++@+@+#+U.$+$+%+&+p.z + @ @ @ @ @ @ @ @ @ @ @ @ *+p p p W.=+=+=+|.|.|.-+-+;+>+|.v ,+'+. + @ @ @ @ @ @ @ @ @ @ @ @ @ )+!+~+~+~+{+{+{+]+^+^+/+(+_+_+:+<+<+[+}+}+}+|+1+~+@ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + n s 2+H.3+r.r.a.4+A.A.5+6+7++ + @ + + + 8+9+0+0+K a+b+b+c+d+d+e+f+g++ + + + + N h+h+i+j+j+k+l+m+m+n+o+o+p++ + + + + B q+r+s+s+%.t+t+u+v+g+g+w+@ @ @ @ @ @ u.x+`.y+z+A+A+++@+@+#+U.$+$+%+B+B+C+D+. @ @ @ @ @ @ @ @ @ @ E+F+G+V V H+I+I+J+K+K+p.L+M+M+>+B B N+O+P+Q+@ @ @ @ @ @ @ @ @ @ @ @ R+S+{+^+^+T+U+V+V+W+X+X+Y+Z+Z+Z+`+ @ @.@+@+@@@#@$@<+%@&@@ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + *@=@-@;@>@,@+ + . '@)@!@A.5+7++ + @ + + + |.~@i+K 0+K a+b+b+{@k+0.B 8.+ + + + + |.7 7 r.]@j+j+k+l+^@/@(@|._@+ + + + + *+:@7 f.<@[@%.t+t+u+&. +j @ @ @ @ + <@M.}@`.`.|@1@2@ +3@G+G+V +1@$+%+B+B+4@5@6@+ @ @ @ @ @ @ @ @ + 7@^ p g V H+I+I+J+u.|.3.8@M+M+>+B B N+9@P+Q+@ @ @ @ @ @ @ @ @ @ @ @ 0@0@a@b@c@T+U+V+V+d@^+^+e@f@!+g@h@h@i@j@k@+@@@#@$@l@m@n@o@@ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + 8.p@q@q@r@+ + + ^ s@t@P =.u@A.f + + @ + + + + + + r@v@0+K a+b+w@+ + + + + + + + + + + + + <@i+j+j+k+x@+ + + + + + + + + + + + + + {.s+%.t+y@'++ + @ @ @ ;.%+] z@z@A@B@+ @ @ @ @ @ @ @ @ @ n : C@B+B+4@D@E@+ @ @ @ @ @ @ @ @ @ @ @ @ {.V H+I+I+*+@ @ @ @ + F@:@B B N+O+P+Q+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ b@^+T+U+V+G@@ @ @ @ @ @ @ @ @ @ H@f@[+@@#@$@l@I@J@[+H@@ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + K@I.L@=@v + + + s@O q.+ + M@A.f + + @ + + + + + + + ]@0+0+K < ^ + + + + + + + + + + + + + N@h+i+j+j+O@+ + + + + + + + + + + + + + |.s+s+%.P@+ + + @ @ ^ Q@R@R@] S@z @ @ @ @ @ @ @ @ @ @ @ @ @ T@U@B+B+4@D@V@@ @ @ @ @ @ @ @ @ @ @ @ :@V V H+I+*+@ @ @ @ @ @ @ 7@7 B N+O+P+Q+@ @ @ @ @ @ @ @ @ @ @ @ @ @ W@^+^+T+U+G@@ @ @ @ @ @ @ @ @ @ @ @ 0@X@Y@$@$@l@I@J@Z@a@@ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + b.I.`@q + + + + |@(@+ + + 1 A.f + + @ + + + + + + + ~@9+0+0+ #,@+ + + + + + + + + + + + + N@h+h+i+j+P@+ + + + + + + + + + + + + + |.r+s+.#. + + + @ *+$+F +#@##+z @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ E+##B+B+4@D@V@+ @ @ @ @ @ @ @ @ @ @ . _.V V H+*+@ @ @ @ @ @ @ @ *+7 B N+9@$#@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ o@]+^+T+o@@ @ @ @ @ @ @ @ @ @ @ @ @ @ W@%#&#$@l@I@J@Z@H@@ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + *#=#-#;#+ + + + + + + + + >#< ,#+ + @ + + + + + + + '#)#9+0+0+!#+ + + + + + + + + + + + + K@~#h+h+i+{#7@+ + + + + + + + + + + + + p.q+r+r.+ + + + ;.]#7+7+F ^#@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ J+B+B+4@D@U @ @ @ @ @ @ @ @ @ @ @ /#G+V V *+@ @ @ @ @ @ @ @ @ v B B N+(#+ @ @ @ @ @ @ @ @ @ @ @ @ @ @ _#{+^+^+a@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ h@&#$@l@I@J@%@@ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + + @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + q@:#=#q + + + + + + + + + + + + + + @ + + + + + + + + <#[#9+0+}#+ + + + + + + + + + + + + |#1#~#h+h+i+w + + + + + + + + + + + + + %+q+2#o.+ + + + s.3#1 7+7+z @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + 4#B+B+4@D@B @ @ @ @ @ @ @ @ @ @ 5#F+V V *+@ @ @ @ @ @ @ @ @ . >+B B 6#7#@ @ @ @ @ @ @ @ @ @ @ @ @ @ _#S+{+^+a@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ i@$@$@l@I@I@X@@ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + + @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + E@8#9#:#l++ + + + + + + + + + + + + + @ + + + + + + + + 5.[#[#9+.#+ + + + + + + + + + + + ,@0#a#1#~#h+h+b#+ + + + + + + + + + + + + c#q+d#+ + + + . e#3#3#f#_.+ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 7@g#B+B+4@h#. @ @ @ @ @ @ @ @ @ 5#i#F+G+*+@ @ @ @ @ @ @ @ @ + M+>+B B *+@ @ @ @ @ @ @ @ @ @ @ @ @ @ _#S+S+{+a@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ W@j##@$@l@I@k#!++ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + + @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + J.9#9#*#P + + + + + + + + + + + + + @ + + + + + + + + {.l#[#[#m#+ + + + + + + + + + + + {.n## a#a#~#h+h+o#+ + + + + + + + + + + p#q#r#s#+ + + + t#%.t+3#u#@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ |.v#B+B+4@p @ @ @ @ @ @ @ @ @ 5#i#i#F+*+@ @ @ @ @ @ @ @ @ + M+M+>+B *+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ w#S+S+H@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ e@@@$@$@l@I@%#+ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + + @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + J.x#9#9#a+v + + + + + + + + + + + + @ + + + + + + + + + p+^.[#y#z#+ + + + + + + + + + + O.f+n#A#B#1#~#h+'@+ + + + + + + + + + + S@C#C#7 + + + . D#E#%.u+F#@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 8 %+B+B+G#*+@ @ @ @ @ @ @ @ H#I#i#i#'+@ @ @ @ @ @ @ @ @ + L+M+M+>+*+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ w#S+J#@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 0@[+@@#@$@l@m@W@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + + + @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + K#L#x#9#9#8+8.+ + + + + + + + + + + @ + + + + + + + + + H#M#^.[#N#+ + + + + + + + + + + O#f+P#+ Q#a#a#~#R#z + + + + + + + + + E+S#T#U#7@+ + + V#r+E#E#] @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ W#$+%+B+B+X#@ @ @ @ @ @ @ @ {.Y#I#i#'+@ @ @ @ @ @ @ @ @ *+p.L+M+6#@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ w#J#@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ Z#+@@@#@$@l@`#@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + + + @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + C+L#L#x#9#9# $D@+ + + + + + + + + + @ + + + + + + + + + . .$M#^.+$@$+ + + + + + + + + #$M f+$$+ $$# a#a#+$%$+ + + + + + + + + K+o+&$+.+ + + + *$=$-$E#2 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ . 5@$+%+B+;$@ @ @ @ @ @ @ @ {.) Y#I#'+@ @ @ @ @ @ @ @ @ j K+p.M+>$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ > @ @ @ )+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ,$+@@@$@$@'$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + + + @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + . )$L#L#x#9#9#8## #$. + + + + + + + @ + + + + + + + + + + !$M#/.^.~$+ + + + + + + + + {$d+e+p + *+]$# a#1#^$. + + + + + + + + E /$($K++ + + j _$q+:$-$z @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ z#$+$+%+<$v @ @ @ @ @ @ @ {.) ) Y#;.@ @ @ @ @ @ @ @ + >+K+K+[$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ }$|$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 1$+@+@@@#@2$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + + + @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + 3$^.L#L#x#9#9#:#=#4$5$+ + + + + + @ + + + + + + + + + + n 6$M#M#r#+ + + + + + + + z l+d+7$z + + 8$n## a#a#U + + + + + + + '#^@9$S#+ + + + 8.r#q+:$e#*+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ Y#U.$+$+%+X#@ @ @ @ @ @ @ 0$P@) ) ;.@ @ @ @ @ @ @ + a$I+J+B + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ }$b$|$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ]+.@+@+@@@2$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + + @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + 7 c$L#L#x#9#9#:#=#d$0 B@+ + + + @ + + + + + + + + + + + e$f$M#g$+ + + + + + + + U b+c+h$+ + + <.f+n## a#,#+ + + + + + + i$m+m+'@+ + + + 8.C#r#:$A@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ o.#+$+$+$+p @ @ @ @ @ @ @ j$k$P@) ;.@ @ @ @ @ *+|._.H+I+l$+ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ }$b$b$|$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ~+ @m$+@+@n$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + + @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + |.o$p$L#x#9#9#:#=#I.`@4 ;.+ + @ + + + + + + + + + + + q$r$f$M#i.+ + + + + + + N#b+s$q.+ + + + N#f+n## t$F@+ + + + + + u$v$m+. + + + + p C#C#r#w$. @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ W.@+#+U.$+D+@ @ @ @ @ @ @ j$k$k$P@x$g g y$z$i#F+G+V {.,+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ E+A$b$b$|$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ B$ @.@+@C$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + + @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + D$L#L#x#9#9#:#=#I.I.E$+ + @ + + + + + + + + + + + |.=@r$f$7$+ + + + + + ;.F$a+G$+ + + + + 5@f+f+n## ;#+ + + + + + H$j+s + + + + + >@T#C#q#r#z @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ W.@+@+#+U.D+@ @ @ @ @ @ @ B@I$k$k$P@) ) Y#I#i#i#F+G+g . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ^ F@A$b$|$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ B$ @ @.@C$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + + @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + . #$K#J$x#9#9#:#=#I.K$_ + @ + + + + + + + + + + + + F.6+r$Z <.+ + + + + L$0+K A++ + + + + 7 )#f+f+n#M$. + + + + N$O$j+u$+ + + + + >@&$T#q#q#,@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ <.u$@+@+#+D+@ @ @ @ @ @ @ P$Q$I$k$,@7@7@7@R$I#i#i#F+G+:@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ^ ,@F@A$|$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ }+`+ @ @n@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + + @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {$S$x#9#9#:#=#I.T$L$@ + + + + + + + + + + + + 8.y#6+r$I + + + + + U$0+0+,@+ + + + + + V$f+f+f+n#x$+ + + + W$e$X$Y$+ + + + + Z$o+&$9.q#,@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ <.A+u$@+@+R$@ @ @ @ @ @ @ P$D@Q$I$;.@ @ @ @ n I#i#i#F+V *+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ^ ,@,@F@`$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ }+Z+`+ @ %@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + + @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .%h$5+9#9#:#=#I.|@@ + + + + + + + + + + + + + N 6+6++%j + + + + @%9+#%. + + + + + + F#7.f+f+f+O.+ + + ,@q#h+$%;.+ + + + + ,@%%o+H$9.,@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ <.A+A+u$@+R$@ @ @ @ @ @ @ q.D@D@Q$;.@ @ @ @ + i$I#i#i#F+p @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ &%,+,@,@;.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ }+Z+Z+`+ %@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + + @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 7@$.:#9#:#=#*%T@+ + + + + + + + + + + + + G#5+6+6+~@+ + + ; b+[#$++ + + + + + + + T$e+f+f+=%^ + + U 1#h+N#+ + + + + + + V$o+H$H$-%@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ <.z+A+A+u$R$@ @ @ @ @ @ @ ;%4@D@D@7@@ @ @ @ @ 7@G+I#i#i#F+v @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ >%,%,+,@;.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ W@'%_+Z+Z+ %@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + )%9#9#:#=#!%+ + + + + + + + + + + + + 8.0+5+6+w.+ + + j.^.b+*@+ + + + + + + + h$d+e+f+f+h#+ + h$a#1#z#+ + + + + + + | N o+H$~%@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ {%y+A+A+>#7 @ @ @ @ @ @ @ ;%B+4@D@7@@ @ @ @ @ @ 8.]%I#i#i#^%+ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ >%O+,%,+;.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ /%X+(%Z+Z+}+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + . ;.;.+ + + + + + + + + + + 3.{ 9#9#:#_%+ + + + + + + + + + + + + + 9.A.5+:%; + + i /.<%+ + + + + + + + + x$d+d+e+f+[%+ . }%a#k+^ + + + + + + + + s+9$o+p+u.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ '+|%`.y+z+1%@ @ @ @ @ @ @ @ ;%B+B+4@7@@ @ @ @ @ @ @ B Y#I#i#i#2%@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 3%9@O+,%;.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ /%X+X+(%_+4%@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + {.#.Q H#+ + + + + + + + + + + F x#9#9#y.+ + + + + + + + + + + + + + ,#A.A.5+R.+ 5%6%M#7%+ + + + + + + + + ,@8%d+d+e+9%z 0%n## a%+ + + + + + + + + ~@b%9$o+c%@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ :@}@`.`.y+{.@ @ @ @ @ @ @ @ z#%+B+B+7@@ @ @ @ @ @ @ . 2 Y#I#i#d%F@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ :@6#O+O+e%@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ f%g%X+X+Y+!+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + h%Q H#+ + + + + + + + + + + 3.K$x#9#y.+ + + + + + + + + + + + + + 7 A.A.A.i%+ t#r$f$+.+ + + + + + + + + + j%c+d+d+e+k%M.f+n#G#+ + + + + + + + + |.b%b%9$l%:@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ w z@}@`.m%>$@ @ @ @ @ @ @ @ n%$+%+B+7@@ @ @ @ @ @ @ @ *+2@Y#I#i#o%@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ :@B 6#O+e%@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ p%V+g%X+q%@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + r%s%t%+ + + + + + + + + + + + A.L#x#y.+ + + + + + + + + + + + + + + c#A.A.B.V#u%6+:%7@+ + + + + + + + + + D+f+c+d+d+v%w%f+x%7@+ + + + + + + + + . f 8%b%9$y%+ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ *+O.z@z@z%s.@ @ @ @ @ @ @ @ @ n%$+$+%+7@@ @ @ @ @ @ @ @ @ j A%Y#I#i#_@@ @ @ @ @ @ @ @ @ @ @ @ @ @ :@B B 6#e%@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ W@U+V+V+B%a@+ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + r%C%D%+ + + + + + + + + + + + E%L#L#H.+ + + + + + + + + + + + + + + F%G%A.A.0.H%6+I%+ + + + + + + + + + + + [%b+c+d+d+e+f+J%+ + + + + + + + + + + 7 0#8%b%9$K%@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ L%R@] z@M%@ @ @ @ @ @ @ @ @ @ ) U.$+$+7@@ @ @ @ @ @ @ @ @ @ n ) Y#I#j$+ @ @ @ @ @ @ @ @ @ @ @ @ @ N%>+B B z @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ b@g@U+V+G@@ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + r%O%@%+ + + + + + + + + + + + P%Q%L#.$+ + + + + + + + + + + + + + + 7 R%G%A.S%!@T%r + + + + + + + + + + + + B b+b+c+d+d+U%6@+ + + + + + + + + + + @ w$V%b%b%W%8.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ V#X%R@R@] p @ @ @ @ @ @ @ @ @ @ Y%#+$+$+K+@ @ @ @ @ @ @ @ @ @ . (@) Y#I#Z%@ @ @ @ @ @ @ @ @ @ @ @ @ N%M+>+B ,@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ W@c@^+g@`%0@@ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + &O%P%+ + + + + + + + + + + z .&+&c$4.+ + + + + + + + + + + + + + + + ]$@&G%A.A.d+L$+ + + + + + + + + + + + + #&b+$&c+d+7$+ + + + + + + + + + + + @ + }@V%8%b%E#5%@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ U 7+F +#%&&&@ @ @ @ @ @ @ @ @ @ @ Y%@+@+U.%$@ @ @ @ @ @ @ @ @ @ @ z 2@) Y#*&a$@ @ @ @ @ @ @ @ @ @ @ @ N%M+M+>+u.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ w#{+^+^+a@@ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + =&-&;&1@+ + + + + + + + + + >&,&,&,&A++ + + + + + + + + + + + + + + + .+y.y.G%A.'&+ + + + + + + + + + + + + + )&a+b+b+c+|@+ + + + + + + + + + + + @ @ *+!&0#8%b%[@8.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ i$[%7+7+7%V#@ @ @ @ @ @ @ @ @ @ @ ^ k m%@+@++.@ @ @ @ @ @ @ @ @ @ @ @ ,@2@) ) 3@F@@ @ @ @ @ @ @ @ @ @ @ ~&L+M+M+B ^ @ 8.% ;.@ @ @ @ @ @ @ @ @ @ @ @ _#S+S+{+b@@ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + =&,.-&{&7@+ + + + + + + + :@]&h%^&/&. + + + + + + + + + + + + + + + + z (&y.y.G%f.+ + + + + + + + + + + + + + _.K b+b+$&f.+ + + + + + + + + + + + @ @ @ @ s.t 8%b%_&w + @ @ @ @ @ @ @ @ @ @ . <.#+:&3#1 [%~$@ @ @ @ @ @ @ @ @ @ @ @ n A+c.m%@+<&j + @ @ @ @ @ @ @ @ @ @ @ 8.) ) ) [&+ @ @ @ @ @ @ @ @ @ ;.K+p.L+M+M+B }&|&= 1&@ @ @ @ @ @ @ @ @ > @ @ @ w#2&_#@ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + s%,.,.-&3&4&+ + + + + + p#5&[.6&7&+ @ + + + + + + + + + + + + + + + + + 4+8&y.9&<.+ + + + + + + + + + + + + + j B#K a+s$+ + + + + + + + + + + + + @ @ @ @ @ F#0#8%b%9$#+}&@ @ @ . 0&X#X#X#a&b&E#! t+3#c&,@@ @ @ @ @ @ @ @ ,@|._@_@p.>#A+A+c.m%@+@+A%N$N$V @ @ @ @ @ @ @ @ @ n ) ) ) &&. @ @ @ ;.z ^ E+d&e&K+K+p.L+M+M+4+= = f&@ @ @ @ @ @ @ > |$b$|$@ @ @ R+@ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + g&h&,.,.-&i&J%J%V$E E j&+&k&l&r++ + @ + + + + + + + + + + + + + + + + + 7%H.8&m&+ + + + + + + + + + + + + + + + ++0+K u%+ + + + + + + + + + + + + @ @ @ @ @ @ X#>.n&b%9$o&p&p&7%b&q#r#:$:$:$-$E#E#q p.@ @ @ @ @ @ @ @ @ @ t#z@z%`.`.y+A+A+A+c.m%@+@+U.$+Q.@ @ @ @ @ @ @ @ @ @ | ) ) ) }&@ @ @ n V B@q&I+I+J+K+K+p.L+M+r&= = A ^ s&s&s&*+*+^ t&A$b$b$|$@ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + . z@u&Q ,.-&O%O%C%s%Q v&w&x&n&. + + @ + + + + + + + + + + + + + + + + + 7 2+H.m + + + + + + + + + + + + + + + + y& #0+R + + + + + + + + + + + + + @ @ @ @ @ @ @ @ 7@5@z&9$o+H$H$9.q#q#u q+:$3#& ,@. @ @ @ @ @ @ @ @ @ @ @ A&O.$$9.B&B&C&~ 3+y D&;@;@].5.U @ @ @ @ @ @ @ @ @ @ + 7 : ) A%8.@ @ p P {.[$N+N+N+!#; K+p.L+q&X$..t%B 6#O+O+,%,+,@,@F@A$b$}$> @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + ]%|@|@E&F&F&G&f$e+U$*++ + + + @ + + + + + + + + + + + + + + + + + ;.H&H&p.+ + + + + + + + + + + + + + + + + 8 I&z + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ 7@N$5$G+G+G+V V V F#i$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 8 T#6&= = 6&E L J&!.= f&: @ @ @ @ @ @ @ @ @ @ @ @ ,@: ) A%:@@ @ @ @ @ @ @ @ @ @ z L$F@t&t&K&:@:@:@3%>%>%&%^ 7@*+. @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ *+L&L&M&@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ p j&= N&@ @ @ {. .= f&_ @ @ @ @ @ @ @ @ @ @ @ @ L$: ) A%8.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ ;.= = 4+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&@ @ @ @ + i = { : @ @ @ @ @ @ @ @ @ @ @ @ + U ) ) v @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ %.= = <.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&@ @ @ @ @ <.x = l.@ @ @ @ @ @ U @ @ @ 2 , :@. g n 7@; , , , _.@ @ @ @ @ @ @ @ ).7@@ @ @ @ @ u.l#{ { .#@ @ @ @ @ @ @ @ @ '@&.{ O&@ @ q., ` = = I , , _.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + > @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&@ @ @ @ @ @ [.= l.@ @ @ z ) /.S$@ @ ;.*.= 5.@ @ @ ; ~.= = = P&! @ @ @ ^ #$!%O ' :@@ @ @ @ <.=&Q&2@R&= 3+@ @ @ @ @ @ )%O m.* = e.V$@ S&= = = = = = = %.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + J @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&@ @ @ @ @ @ [.= T&@ M$Z 9 = = U&@ @ f = = 5.@ @ j.=#r#&.V&,.= 6&:@@ W&~.= = = = :@@ @ @ u.X&:.2 @ ; Y&Q {.@ @ @ @ Z&!.t >.r `&= 7%@ ) &.K = *&.&.&.G+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&@ @ @ @ @ g .*= K@@ M$c+I&=#= U&@ 8.~.= H.U @ | l T#@ @ @ .#= = v%@ +*I&I&|&= = :@@ @ :@@*= S @ @ @ c#= Z$@ @ @ |.x##*@ @ + 2.= 7%@ @ @ $*= D&@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&@ @ @ @ ;.< = h *+@ @ @ @ %*= U&@ &*~.!$;.@ @ /.= .#@ @ @ @ **= ]&@ @ @ @ X = =*z @ @ 5$= e., @ @ @ c#= Z$@ @ + S = ; @ @ + 2.= 7%@ @ @ $*= D&@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&@ @ @ @ 0 = H r @ @ @ @ @ %*= U&; !.E @ @ @ <.A ' @ @ @ @ @ -*= W @ @ @ @ X = K @ @ @ t.= ;*@ @ @ @ >*= Z$@ @ x$= = <.@ @ + R , y&@ @ @ 0 = D&@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&i.D D D = e.,*@ @ @ @ @ @ %*= U&,*C&@ @ @ @ V&= Q&@ @ @ @ @ -*= W @ @ @ @ X = K @ @ + %*= 9$@ @ @ '@'*= Z$@ @ ! = - j @ @ + @ @ @ @ @ @ )*= D&@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&{.4.t ~.!*g @ @ @ @ @ @ @ %*= U&l : @ @ @ @ <%= ~*@ @ @ @ @ -*= W @ @ @ @ X = K @ @ + = = #*q.q.f 6&Q ~.: @ @ {*= ~ @ @ @ + @ @ @ @ @ @ )*= ,*@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&@ @ @ @ @ @ @ @ @ @ @ @ @ %*= W m.*+@ @ @ @ *.= ~*@ @ @ @ @ -*= W @ @ @ @ X = K @ @ z+= = k.L&L&S H&{.@ @ @ @ D = ~ @ @ @ + @ @ @ @ @ @ )*= ).@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&@ @ @ @ @ @ @ @ @ @ @ @ p ]*= = Z + @ @ @ @ m.= ^*@ @ @ @ @ -*= W @ @ @ P /*= K @ @ 7&= = T@@ @ @ @ @ @ @ @ U x = )%@ @ @ + @ @ @ @ @ @ )*= ).@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&@ @ @ @ @ @ @ @ @ @ @ @ : = = = q @ @ @ @ @ m.= D$@ @ @ @ @ -*= x#@ @ @ S.= = K @ @ 7&= = m @ @ @ @ @ @ 2@*+r = = Y @ @ @ + @ *+: @ @ :@[.= ).@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&@ @ @ @ @ @ @ @ @ @ @ @ : = = (*z @ @ @ @ G+* = ~*@ @ @ @ @ -*= ] @ @ @ S.= = T#@ @ 7&= = 9$@ @ @ @ @ @ _*8.(@W = Y @ @ @ + @ v :*@ @ ]#= = ).@ @ @ >.| @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&@ @ @ @ @ @ @ @ @ @ @ @ : = = <*@ @ @ @ @ @ m.= b.@ @ @ @ @ -*m.<.@ @ @ S.= = R @ @ ;.= = ]&@ @ @ @ @ ^ H.j @ D = [**+@ @ + @ n+]&@ @ ]#= = ).@ @ @ 1#!$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= ]*u.@ @ @ @ @ @ @ @ @ @ @ : = ' ).@ @ @ @ @ @ m.= ' @ @ @ @ K+}*< @ @ @ @ S.= = R @ @ + 6&= .*@ @ @ @ @ t%|*@ @ D = = 8 @ @ + <.A V.@ @ ]#= = >&@ @ @ d !$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ;.^ ^ u = = }.:@^ ^ + @ @ @ @ @ @ @ : = 5+@ @ @ @ @ @ @ 1*= = .#@ @ . *x P @ @ @ @ S.= e.>.@ @ @ a.'*e.&*| ^ ^ 2*( r @ @ Z&H = f&3*3*^.A }.@ @ @ ]#= = C&^ U S L&,@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 4*= = X =#=#=#l = = ;.@ @ @ @ @ @ @ : = 0#@ @ @ @ @ @ @ x@( = Q e+e+H%D q.@ @ @ @ @ S.= J.@ @ @ @ @ U T = = = = =&5*@ @ @ @ ,#!.= = = ' d v @ @ @ Z.;*= = = = *.. @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 2 2*2*7 @ @ @ ;.2*2*+ @ @ @ @ @ @ @ L$2*y&@ @ @ @ @ @ @ @ q.7&c c c 7%,+@ @ @ @ @ @ S.= J.@ @ @ @ @ @ P c c c S&U @ @ @ @ @ @ z+c c c I&@ @ @ @ @ @ + 2*2*2*2*L$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ S.= J.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ j&= k.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 6*= U#@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ U e.A . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ v%= f.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ) s%}%;.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + + + + + + @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ *+_&D l+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ <%7*a.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ _.(.7@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ "};
diff --git a/apps/X11/InstallMgr/pixmaps/trash.xpm b/apps/X11/InstallMgr/pixmaps/trash.xpm
new file mode 100644
index 0000000..611703b
--- /dev/null
+++ b/apps/X11/InstallMgr/pixmaps/trash.xpm
@@ -0,0 +1,25 @@
+/* XPM */
+static char * trash_xpm[] = {
+"16 16 6 1",
+" c None",
+". c #D3D3DD",
+"+ c #000000",
+"@ c #7F7F7F",
+"# c #FFFFFF",
+"$ c #BFBFBF",
+".....+++++......",
+".....+@@@+......",
+"..+++++++++++...",
+"..+#$$$@@@@@+...",
+"..+++++++++++...",
+"...+@+@+@+@+....",
+"...+#+$+@+@+....",
+"..++#+$+$+@++...",
+".+.+#+$+@+@+.+..",
+"...+#+$+$+@+....",
+"...+#+$+@+@+....",
+"...+#+$+$+@+....",
+"...+#+$+@+@+....",
+"...+#+$+$+@+....",
+"...+#@@@@@@+....",
+"...+++++++++...."};
diff --git a/apps/X11/InstallMgr/po/ChangeLog b/apps/X11/InstallMgr/po/ChangeLog
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/apps/X11/InstallMgr/po/ChangeLog
diff --git a/apps/X11/InstallMgr/po/Makefile b/apps/X11/InstallMgr/po/Makefile
new file mode 100644
index 0000000..ebae61a
--- /dev/null
+++ b/apps/X11/InstallMgr/po/Makefile
@@ -0,0 +1,252 @@
+# Generated automatically from Makefile.in.in by configure.
+# Makefile for program source directory in GNU NLS utilities package.
+# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+#
+# This file file be copied and used freely without restrictions. It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+# Please note that the actual code is *not* freely available.
+
+PACKAGE = installmgr
+VERSION = 0.1
+
+SHELL = /bin/sh
+
+
+srcdir = .
+top_srcdir = ..
+
+prefix = /usr/local
+exec_prefix = ${prefix}
+datadir = $(prefix)/share
+localedir = $(datadir)/locale
+gnulocaledir = $(prefix)/share/locale
+gettextsrcdir = $(prefix)/share/gettext/po
+subdir = po
+
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+MKINSTALLDIRS = $(top_srcdir)/./mkinstalldirs
+
+CC = gcc
+GENCAT =
+GMSGFMT = PATH=../src:$$PATH /usr/bin/msgfmt
+MSGFMT = /usr/bin/msgfmt
+XGETTEXT = PATH=../src:$$PATH /usr/bin/xgettext
+MSGMERGE = PATH=../src:$$PATH msgmerge
+
+DEFS = -DHAVE_CONFIG_H
+CFLAGS = -g -O2 -Wall -Wunused
+CPPFLAGS = -I/usr/lib/glib/include -I/usr/X11R6/include
+
+INCLUDES = -I.. -I$(top_srcdir)/intl
+
+COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
+
+SOURCES = cat-id-tbl.c
+POFILES =
+GMOFILES =
+DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \
+stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES)
+
+POTFILES = \
+ ../src/MainFrm.cpp \
+ ../src/interface.c \
+ ../src/callbacks.cpp \
+ ../src/support.c
+
+CATALOGS =
+CATOBJEXT = .gmo
+INSTOBJEXT = .mo
+
+.SUFFIXES:
+.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat
+
+.c.o:
+ $(COMPILE) $<
+
+.po.pox:
+ $(MAKE) $(PACKAGE).pot
+ $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
+
+.po.mo:
+ $(MSGFMT) -o $@ $<
+
+.po.gmo:
+ file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
+ && rm -f $$file && $(GMSGFMT) -o $$file $<
+
+.po.cat:
+ sed -f ../intl/po2msg.sed < $< > $*.msg \
+ && rm -f $@ && $(GENCAT) $@ $*.msg
+
+
+all: all-yes
+
+all-yes: cat-id-tbl.c $(CATALOGS)
+all-no:
+
+$(srcdir)/$(PACKAGE).pot: $(POTFILES)
+ $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
+ --add-comments --keyword=_ --keyword=N_ \
+ --files-from=$(srcdir)/POTFILES.in \
+ && test ! -f $(PACKAGE).po \
+ || ( rm -f $(srcdir)/$(PACKAGE).pot \
+ && mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot )
+
+$(srcdir)/cat-id-tbl.c: stamp-cat-id; @:
+$(srcdir)/stamp-cat-id: $(PACKAGE).pot
+ rm -f cat-id-tbl.tmp
+ sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \
+ | sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp
+ if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \
+ rm cat-id-tbl.tmp; \
+ else \
+ echo cat-id-tbl.c changed; \
+ rm -f $(srcdir)/cat-id-tbl.c; \
+ mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \
+ fi
+ cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id
+
+
+install: install-exec install-data
+install-exec:
+install-data: install-data-yes
+install-data-no: all
+install-data-yes: all
+ if test -r "$(MKINSTALLDIRS)"; then \
+ $(MKINSTALLDIRS) $(datadir); \
+ else \
+ $(SHELL) $(top_srcdir)/mkinstalldirs $(datadir); \
+ fi
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ case "$$cat" in \
+ *.gmo) destdir=$(gnulocaledir);; \
+ *) destdir=$(localedir);; \
+ esac; \
+ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+ dir=$$destdir/$$lang/LC_MESSAGES; \
+ if test -r "$(MKINSTALLDIRS)"; then \
+ $(MKINSTALLDIRS) $$dir; \
+ else \
+ $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \
+ fi; \
+ if test -r $$cat; then \
+ $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
+ echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \
+ else \
+ $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
+ echo "installing $(srcdir)/$$cat as" \
+ "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \
+ fi; \
+ if test -r $$cat.m; then \
+ $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
+ echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
+ else \
+ if test -r $(srcdir)/$$cat.m ; then \
+ $(INSTALL_DATA) $(srcdir)/$$cat.m \
+ $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
+ echo "installing $(srcdir)/$$cat as" \
+ "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
+ else \
+ true; \
+ fi; \
+ fi; \
+ done
+ if test "$(PACKAGE)" = "gettext"; then \
+ if test -r "$(MKINSTALLDIRS)"; then \
+ $(MKINSTALLDIRS) $(gettextsrcdir); \
+ else \
+ $(SHELL) $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
+ fi; \
+ $(INSTALL_DATA) $(srcdir)/Makefile.in.in \
+ $(gettextsrcdir)/Makefile.in.in; \
+ else \
+ : ; \
+ fi
+
+# Define this as empty until I found a useful application.
+installcheck:
+
+uninstall:
+ catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+ rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
+ rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
+ rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
+ rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
+ done
+ rm -f $(gettextsrcdir)/po-Makefile.in.in
+
+check: all
+
+cat-id-tbl.o: ../intl/libgettext.h
+
+dvi info tags TAGS ID:
+
+mostlyclean:
+ rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp
+ rm -fr *.o
+
+clean: mostlyclean
+
+distclean: clean
+ rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+ rm -f $(GMOFILES)
+
+distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir: update-po $(DISTFILES)
+ dists="$(DISTFILES)"; \
+ for file in $$dists; do \
+ ln $(srcdir)/$$file $(distdir) 2> /dev/null \
+ || cp -p $(srcdir)/$$file $(distdir); \
+ done
+
+update-po: Makefile
+ $(MAKE) $(PACKAGE).pot
+ PATH=`pwd`/../src:$$PATH; \
+ cd $(srcdir); \
+ catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+ mv $$lang.po $$lang.old.po; \
+ echo "$$lang:"; \
+ if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \
+ rm -f $$lang.old.po; \
+ else \
+ echo "msgmerge for $$cat failed!"; \
+ rm -f $$lang.po; \
+ mv $$lang.old.po $$lang.po; \
+ fi; \
+ done
+
+POTFILES: POTFILES.in
+ ( if test 'x$(srcdir)' != 'x.'; then \
+ posrcprefix='$(top_srcdir)/'; \
+ else \
+ posrcprefix="../"; \
+ fi; \
+ rm -f $@-t $@ \
+ && (sed -e '/^#/d' -e '/^[ ]*$$/d' \
+ -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \
+ | sed -e '$$s/\\$$//') > $@-t \
+ && chmod a-w $@-t \
+ && mv $@-t $@ )
+
+Makefile: Makefile.in.in ../config.status POTFILES
+ cd .. \
+ && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
+ $(SHELL) ./config.status
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/apps/X11/InstallMgr/po/Makefile.in b/apps/X11/InstallMgr/po/Makefile.in
new file mode 100644
index 0000000..fad13da
--- /dev/null
+++ b/apps/X11/InstallMgr/po/Makefile.in
@@ -0,0 +1,248 @@
+# Generated automatically from Makefile.in.in by configure.
+# Makefile for program source directory in GNU NLS utilities package.
+# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+#
+# This file file be copied and used freely without restrictions. It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+# Please note that the actual code is *not* freely available.
+
+PACKAGE = installmgr
+VERSION = 0.1
+
+SHELL = /bin/sh
+
+
+srcdir = .
+top_srcdir = ..
+
+prefix = /usr/local
+exec_prefix = ${prefix}
+datadir = $(prefix)/share
+localedir = $(datadir)/locale
+gnulocaledir = $(prefix)/share/locale
+gettextsrcdir = $(prefix)/share/gettext/po
+subdir = po
+
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+MKINSTALLDIRS = $(top_srcdir)/./mkinstalldirs
+
+CC = gcc
+GENCAT =
+GMSGFMT = PATH=../src:$$PATH /usr/bin/msgfmt
+MSGFMT = /usr/bin/msgfmt
+XGETTEXT = PATH=../src:$$PATH /usr/bin/xgettext
+MSGMERGE = PATH=../src:$$PATH msgmerge
+
+DEFS = -DHAVE_CONFIG_H
+CFLAGS = -g -O2 -Wall -Wunused
+CPPFLAGS = -I/usr/lib/glib/include -I/usr/X11R6/include
+
+INCLUDES = -I.. -I$(top_srcdir)/intl
+
+COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
+
+SOURCES = cat-id-tbl.c
+POFILES =
+GMOFILES =
+DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \
+stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES)
+
+POTFILES = \
+
+CATALOGS =
+CATOBJEXT = .gmo
+INSTOBJEXT = .mo
+
+.SUFFIXES:
+.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat
+
+.c.o:
+ $(COMPILE) $<
+
+.po.pox:
+ $(MAKE) $(PACKAGE).pot
+ $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
+
+.po.mo:
+ $(MSGFMT) -o $@ $<
+
+.po.gmo:
+ file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
+ && rm -f $$file && $(GMSGFMT) -o $$file $<
+
+.po.cat:
+ sed -f ../intl/po2msg.sed < $< > $*.msg \
+ && rm -f $@ && $(GENCAT) $@ $*.msg
+
+
+all: all-yes
+
+all-yes: cat-id-tbl.c $(CATALOGS)
+all-no:
+
+$(srcdir)/$(PACKAGE).pot: $(POTFILES)
+ $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
+ --add-comments --keyword=_ --keyword=N_ \
+ --files-from=$(srcdir)/POTFILES.in \
+ && test ! -f $(PACKAGE).po \
+ || ( rm -f $(srcdir)/$(PACKAGE).pot \
+ && mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot )
+
+$(srcdir)/cat-id-tbl.c: stamp-cat-id; @:
+$(srcdir)/stamp-cat-id: $(PACKAGE).pot
+ rm -f cat-id-tbl.tmp
+ sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \
+ | sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp
+ if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \
+ rm cat-id-tbl.tmp; \
+ else \
+ echo cat-id-tbl.c changed; \
+ rm -f $(srcdir)/cat-id-tbl.c; \
+ mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \
+ fi
+ cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id
+
+
+install: install-exec install-data
+install-exec:
+install-data: install-data-yes
+install-data-no: all
+install-data-yes: all
+ if test -r "$(MKINSTALLDIRS)"; then \
+ $(MKINSTALLDIRS) $(datadir); \
+ else \
+ $(SHELL) $(top_srcdir)/mkinstalldirs $(datadir); \
+ fi
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ case "$$cat" in \
+ *.gmo) destdir=$(gnulocaledir);; \
+ *) destdir=$(localedir);; \
+ esac; \
+ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+ dir=$$destdir/$$lang/LC_MESSAGES; \
+ if test -r "$(MKINSTALLDIRS)"; then \
+ $(MKINSTALLDIRS) $$dir; \
+ else \
+ $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \
+ fi; \
+ if test -r $$cat; then \
+ $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
+ echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \
+ else \
+ $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
+ echo "installing $(srcdir)/$$cat as" \
+ "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \
+ fi; \
+ if test -r $$cat.m; then \
+ $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
+ echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
+ else \
+ if test -r $(srcdir)/$$cat.m ; then \
+ $(INSTALL_DATA) $(srcdir)/$$cat.m \
+ $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
+ echo "installing $(srcdir)/$$cat as" \
+ "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
+ else \
+ true; \
+ fi; \
+ fi; \
+ done
+ if test "$(PACKAGE)" = "gettext"; then \
+ if test -r "$(MKINSTALLDIRS)"; then \
+ $(MKINSTALLDIRS) $(gettextsrcdir); \
+ else \
+ $(SHELL) $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
+ fi; \
+ $(INSTALL_DATA) $(srcdir)/Makefile.in.in \
+ $(gettextsrcdir)/Makefile.in.in; \
+ else \
+ : ; \
+ fi
+
+# Define this as empty until I found a useful application.
+installcheck:
+
+uninstall:
+ catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+ rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
+ rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
+ rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
+ rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
+ done
+ rm -f $(gettextsrcdir)/po-Makefile.in.in
+
+check: all
+
+cat-id-tbl.o: ../intl/libgettext.h
+
+dvi info tags TAGS ID:
+
+mostlyclean:
+ rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp
+ rm -fr *.o
+
+clean: mostlyclean
+
+distclean: clean
+ rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+ rm -f $(GMOFILES)
+
+distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir: update-po $(DISTFILES)
+ dists="$(DISTFILES)"; \
+ for file in $$dists; do \
+ ln $(srcdir)/$$file $(distdir) 2> /dev/null \
+ || cp -p $(srcdir)/$$file $(distdir); \
+ done
+
+update-po: Makefile
+ $(MAKE) $(PACKAGE).pot
+ PATH=`pwd`/../src:$$PATH; \
+ cd $(srcdir); \
+ catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+ mv $$lang.po $$lang.old.po; \
+ echo "$$lang:"; \
+ if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \
+ rm -f $$lang.old.po; \
+ else \
+ echo "msgmerge for $$cat failed!"; \
+ rm -f $$lang.po; \
+ mv $$lang.old.po $$lang.po; \
+ fi; \
+ done
+
+POTFILES: POTFILES.in
+ ( if test 'x$(srcdir)' != 'x.'; then \
+ posrcprefix='$(top_srcdir)/'; \
+ else \
+ posrcprefix="../"; \
+ fi; \
+ rm -f $@-t $@ \
+ && (sed -e '/^#/d' -e '/^[ ]*$$/d' \
+ -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \
+ | sed -e '$$s/\\$$//') > $@-t \
+ && chmod a-w $@-t \
+ && mv $@-t $@ )
+
+Makefile: Makefile.in.in ../config.status POTFILES
+ cd .. \
+ && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
+ $(SHELL) ./config.status
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/apps/X11/InstallMgr/po/Makefile.in.in b/apps/X11/InstallMgr/po/Makefile.in.in
new file mode 100644
index 0000000..111b40f
--- /dev/null
+++ b/apps/X11/InstallMgr/po/Makefile.in.in
@@ -0,0 +1,248 @@
+# Makefile for program source directory in GNU NLS utilities package.
+# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+#
+# This file file be copied and used freely without restrictions. It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+# Please note that the actual code is *not* freely available.
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+SHELL = /bin/sh
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datadir = $(prefix)/@DATADIRNAME@
+localedir = $(datadir)/locale
+gnulocaledir = $(prefix)/share/locale
+gettextsrcdir = $(prefix)/share/gettext/po
+subdir = po
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@
+
+CC = @CC@
+GENCAT = @GENCAT@
+GMSGFMT = PATH=../src:$$PATH @GMSGFMT@
+MSGFMT = @MSGFMT@
+XGETTEXT = PATH=../src:$$PATH @XGETTEXT@
+MSGMERGE = PATH=../src:$$PATH msgmerge
+
+DEFS = @DEFS@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+
+INCLUDES = -I.. -I$(top_srcdir)/intl
+
+COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
+
+SOURCES = cat-id-tbl.c
+POFILES = @POFILES@
+GMOFILES = @GMOFILES@
+DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \
+stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES)
+
+POTFILES = \
+
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+INSTOBJEXT = @INSTOBJEXT@
+
+.SUFFIXES:
+.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat
+
+.c.o:
+ $(COMPILE) $<
+
+.po.pox:
+ $(MAKE) $(PACKAGE).pot
+ $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
+
+.po.mo:
+ $(MSGFMT) -o $@ $<
+
+.po.gmo:
+ file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
+ && rm -f $$file && $(GMSGFMT) -o $$file $<
+
+.po.cat:
+ sed -f ../intl/po2msg.sed < $< > $*.msg \
+ && rm -f $@ && $(GENCAT) $@ $*.msg
+
+
+all: all-@USE_NLS@
+
+all-yes: cat-id-tbl.c $(CATALOGS)
+all-no:
+
+$(srcdir)/$(PACKAGE).pot: $(POTFILES)
+ $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
+ --add-comments --keyword=_ --keyword=N_ \
+ --files-from=$(srcdir)/POTFILES.in \
+ && test ! -f $(PACKAGE).po \
+ || ( rm -f $(srcdir)/$(PACKAGE).pot \
+ && mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot )
+
+$(srcdir)/cat-id-tbl.c: stamp-cat-id; @:
+$(srcdir)/stamp-cat-id: $(PACKAGE).pot
+ rm -f cat-id-tbl.tmp
+ sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \
+ | sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp
+ if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \
+ rm cat-id-tbl.tmp; \
+ else \
+ echo cat-id-tbl.c changed; \
+ rm -f $(srcdir)/cat-id-tbl.c; \
+ mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \
+ fi
+ cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id
+
+
+install: install-exec install-data
+install-exec:
+install-data: install-data-@USE_NLS@
+install-data-no: all
+install-data-yes: all
+ if test -r "$(MKINSTALLDIRS)"; then \
+ $(MKINSTALLDIRS) $(datadir); \
+ else \
+ $(SHELL) $(top_srcdir)/mkinstalldirs $(datadir); \
+ fi
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ case "$$cat" in \
+ *.gmo) destdir=$(gnulocaledir);; \
+ *) destdir=$(localedir);; \
+ esac; \
+ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+ dir=$$destdir/$$lang/LC_MESSAGES; \
+ if test -r "$(MKINSTALLDIRS)"; then \
+ $(MKINSTALLDIRS) $$dir; \
+ else \
+ $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \
+ fi; \
+ if test -r $$cat; then \
+ $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
+ echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \
+ else \
+ $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
+ echo "installing $(srcdir)/$$cat as" \
+ "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \
+ fi; \
+ if test -r $$cat.m; then \
+ $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
+ echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
+ else \
+ if test -r $(srcdir)/$$cat.m ; then \
+ $(INSTALL_DATA) $(srcdir)/$$cat.m \
+ $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
+ echo "installing $(srcdir)/$$cat as" \
+ "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
+ else \
+ true; \
+ fi; \
+ fi; \
+ done
+ if test "$(PACKAGE)" = "gettext"; then \
+ if test -r "$(MKINSTALLDIRS)"; then \
+ $(MKINSTALLDIRS) $(gettextsrcdir); \
+ else \
+ $(SHELL) $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
+ fi; \
+ $(INSTALL_DATA) $(srcdir)/Makefile.in.in \
+ $(gettextsrcdir)/Makefile.in.in; \
+ else \
+ : ; \
+ fi
+
+# Define this as empty until I found a useful application.
+installcheck:
+
+uninstall:
+ catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+ rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
+ rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
+ rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
+ rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
+ done
+ rm -f $(gettextsrcdir)/po-Makefile.in.in
+
+check: all
+
+cat-id-tbl.o: ../intl/libgettext.h
+
+dvi info tags TAGS ID:
+
+mostlyclean:
+ rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp
+ rm -fr *.o
+
+clean: mostlyclean
+
+distclean: clean
+ rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+ rm -f $(GMOFILES)
+
+distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir: update-po $(DISTFILES)
+ dists="$(DISTFILES)"; \
+ for file in $$dists; do \
+ ln $(srcdir)/$$file $(distdir) 2> /dev/null \
+ || cp -p $(srcdir)/$$file $(distdir); \
+ done
+
+update-po: Makefile
+ $(MAKE) $(PACKAGE).pot
+ PATH=`pwd`/../src:$$PATH; \
+ cd $(srcdir); \
+ catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+ mv $$lang.po $$lang.old.po; \
+ echo "$$lang:"; \
+ if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \
+ rm -f $$lang.old.po; \
+ else \
+ echo "msgmerge for $$cat failed!"; \
+ rm -f $$lang.po; \
+ mv $$lang.old.po $$lang.po; \
+ fi; \
+ done
+
+POTFILES: POTFILES.in
+ ( if test 'x$(srcdir)' != 'x.'; then \
+ posrcprefix='$(top_srcdir)/'; \
+ else \
+ posrcprefix="../"; \
+ fi; \
+ rm -f $@-t $@ \
+ && (sed -e '/^#/d' -e '/^[ ]*$$/d' \
+ -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \
+ | sed -e '$$s/\\$$//') > $@-t \
+ && chmod a-w $@-t \
+ && mv $@-t $@ )
+
+Makefile: Makefile.in.in ../config.status POTFILES
+ cd .. \
+ && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
+ $(SHELL) ./config.status
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/apps/X11/InstallMgr/po/POTFILES b/apps/X11/InstallMgr/po/POTFILES
new file mode 100644
index 0000000..3f9cfd2
--- /dev/null
+++ b/apps/X11/InstallMgr/po/POTFILES
@@ -0,0 +1,4 @@
+ ../src/MainFrm.cpp \
+ ../src/interface.c \
+ ../src/callbacks.cpp \
+ ../src/support.c
diff --git a/apps/X11/InstallMgr/po/POTFILES.in b/apps/X11/InstallMgr/po/POTFILES.in
new file mode 100644
index 0000000..ac1985d
--- /dev/null
+++ b/apps/X11/InstallMgr/po/POTFILES.in
@@ -0,0 +1,6 @@
+# List of source files containing translatable strings.
+
+src/MainFrm.cpp
+src/interface.c
+src/callbacks.cpp
+src/support.c
diff --git a/apps/X11/InstallMgr/po/cat-id-tbl.c b/apps/X11/InstallMgr/po/cat-id-tbl.c
new file mode 100644
index 0000000..04bdf07
--- /dev/null
+++ b/apps/X11/InstallMgr/po/cat-id-tbl.c
@@ -0,0 +1,43 @@
+/* Automatically generated by po2tbl.sed from installmgr.pot. */
+
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "libgettext.h"
+
+const struct _msg_ent _msg_tbl[] = {
+ {"", 1},
+ {"E_xit", 2},
+ {"_Options", 3},
+ {"_Local Path...", 4},
+ {"_Manage Remote Sources...", 5},
+ {"Local", 6},
+ {"Info", 7},
+ {"Select", 8},
+ {"Select All", 9},
+ {"Install", 10},
+ {"Installed", 11},
+ {"Remove", 12},
+ {"Available ", 13},
+ {"Mng Rmt Srcs", 14},
+ {" ", 15},
+ {"Selected for Install", 16},
+ {"About Module", 17},
+ {"Select File", 18},
+ {"Manage Remote Sites", 19},
+ {"Add", 20},
+ {"Site Name", 21},
+ {"Site Machine Name", 22},
+ {"Repository Directory", 23},
+ {"Save", 24},
+ {"Ciphered Module", 25},
+ {"The module that you have requested for install seems to be ciphered.", 26},
+ {"Cipher Key:", 27},
+ {"Try", 28},
+ {"Status", 29},
+ {"Couldn't find pixmap file: %s", 30},
+ {"Couldn't create pixmap from file: %s", 31},
+};
+
+int _msg_tbl_length = 31;
diff --git a/apps/X11/InstallMgr/po/installmgr.pot b/apps/X11/InstallMgr/po/installmgr.pot
new file mode 100644
index 0000000..b97b615
--- /dev/null
+++ b/apps/X11/InstallMgr/po/installmgr.pot
@@ -0,0 +1,137 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2001-03-07 04:36-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: ENCODING\n"
+
+#: src/MainFrm.cpp:166
+msgid "E_xit"
+msgstr ""
+
+#: src/MainFrm.cpp:178
+msgid "_Options"
+msgstr ""
+
+#: src/MainFrm.cpp:197
+msgid "_Local Path..."
+msgstr ""
+
+#: src/MainFrm.cpp:208
+msgid "_Manage Remote Sources..."
+msgstr ""
+
+#: src/MainFrm.cpp:268
+msgid "Local"
+msgstr ""
+
+#: src/MainFrm.cpp:285
+msgid "Info"
+msgstr ""
+
+#: src/MainFrm.cpp:296
+msgid "Select"
+msgstr ""
+
+#: src/MainFrm.cpp:307
+msgid "Select All"
+msgstr ""
+
+#: src/MainFrm.cpp:321
+msgid "Install"
+msgstr ""
+
+#: src/MainFrm.cpp:336
+msgid "Installed"
+msgstr ""
+
+#: src/MainFrm.cpp:377 src/interface.c:202
+msgid "Remove"
+msgstr ""
+
+#: src/MainFrm.cpp:1475
+msgid "Available "
+msgstr ""
+
+#: src/MainFrm.cpp:1486
+msgid "Mng Rmt Srcs"
+msgstr ""
+
+#: src/MainFrm.cpp:1494
+msgid " "
+msgstr ""
+
+#: src/MainFrm.cpp:1508
+msgid "Selected for Install"
+msgstr ""
+
+#: src/interface.c:31
+msgid "About Module"
+msgstr ""
+
+#: src/interface.c:83
+msgid "Select File"
+msgstr ""
+
+#: src/interface.c:129
+msgid "Manage Remote Sites"
+msgstr ""
+
+#: src/interface.c:181
+msgid "Add"
+msgstr ""
+
+#: src/interface.c:223
+msgid "Site Name"
+msgstr ""
+
+#: src/interface.c:246
+msgid "Site Machine Name"
+msgstr ""
+
+#: src/interface.c:268
+msgid "Repository Directory"
+msgstr ""
+
+#: src/interface.c:290
+msgid "Save"
+msgstr ""
+
+#: src/interface.c:343
+msgid "Ciphered Module"
+msgstr ""
+
+#: src/interface.c:366
+msgid "The module that you have requested for install seems to be ciphered."
+msgstr ""
+
+#: src/interface.c:390
+msgid "Cipher Key:"
+msgstr ""
+
+#: src/interface.c:404
+msgid "Try"
+msgstr ""
+
+#: src/interface.c:463
+msgid "Status"
+msgstr ""
+
+#: src/support.c:97 src/support.c:135
+#, c-format
+msgid "Couldn't find pixmap file: %s"
+msgstr ""
+
+#: src/support.c:113
+#, c-format
+msgid "Couldn't create pixmap from file: %s"
+msgstr ""
diff --git a/apps/X11/InstallMgr/po/stamp-cat-id b/apps/X11/InstallMgr/po/stamp-cat-id
new file mode 100644
index 0000000..9788f70
--- /dev/null
+++ b/apps/X11/InstallMgr/po/stamp-cat-id
@@ -0,0 +1 @@
+timestamp
diff --git a/apps/X11/InstallMgr/src/FTPDownload.cpp b/apps/X11/InstallMgr/src/FTPDownload.cpp
new file mode 100644
index 0000000..eb74177
--- /dev/null
+++ b/apps/X11/InstallMgr/src/FTPDownload.cpp
@@ -0,0 +1,29 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "FTPDownload.h"
+#pragma package(smart_init)
+//---------------------------------------------------------------------------
+// Important: Methods and properties of objects in VCL can only be
+// used in a method called using Synchronize, for example:
+//
+// Synchronize(UpdateCaption);
+//
+// where UpdateCaption could look like:
+//
+// void __fastcall FTPDownload::UpdateCaption()
+// {
+// Form1->Caption = "Updated in a thread";
+// }
+//---------------------------------------------------------------------------
+__fastcall FTPDownload::FTPDownload(bool CreateSuspended)
+ : TThread(CreateSuspended)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall FTPDownload::Execute()
+{
+ //---- Place thread code here ----
+}
+//---------------------------------------------------------------------------
diff --git a/apps/X11/InstallMgr/src/FTPDownload.h b/apps/X11/InstallMgr/src/FTPDownload.h
new file mode 100644
index 0000000..4ad9e01
--- /dev/null
+++ b/apps/X11/InstallMgr/src/FTPDownload.h
@@ -0,0 +1,16 @@
+//---------------------------------------------------------------------------
+#ifndef FTPDownloadH
+#define FTPDownloadH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+//---------------------------------------------------------------------------
+class FTPDownload : public TThread
+{
+private:
+protected:
+ void __fastcall Execute();
+public:
+ __fastcall FTPDownload(bool CreateSuspended);
+};
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/X11/InstallMgr/src/InfoFrm.cpp b/apps/X11/InstallMgr/src/InfoFrm.cpp
new file mode 100644
index 0000000..a75b7b2
--- /dev/null
+++ b/apps/X11/InstallMgr/src/InfoFrm.cpp
@@ -0,0 +1,33 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "InfoFrm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TInfoForm *InfoForm;
+//---------------------------------------------------------------------------
+__fastcall TInfoForm::TInfoForm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TInfoForm::FormShow(TObject *Sender)
+{
+ AnsiString abouttext = "";
+ TMemoryStream *RTFStream = new TMemoryStream();
+
+ abouttext = abouttext + "{\\fs20\\cf0 " + info.c_str() + " }";
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(abouttext.c_str(), abouttext.Length());
+ RTFStream->Position = 0;
+ InfoText->Lines->LoadFromStream(RTFStream);
+ delete RTFStream;
+}
+//---------------------------------------------------------------------------
+void __fastcall TInfoForm::SpeedButton1Click(TObject *Sender)
+{
+ ModalResult = mrOk;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/X11/InstallMgr/src/InfoFrm.h b/apps/X11/InstallMgr/src/InfoFrm.h
new file mode 100644
index 0000000..9bbeef6
--- /dev/null
+++ b/apps/X11/InstallMgr/src/InfoFrm.h
@@ -0,0 +1,32 @@
+//---------------------------------------------------------------------------
+#ifndef InfoFrmH
+#define InfoFrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <Buttons.hpp>
+#include <ComCtrls.hpp>
+#include <ExtCtrls.hpp>
+#include <string>
+
+//---------------------------------------------------------------------------
+class TInfoForm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TPanel *Panel2;
+ TRichEdit *InfoText;
+ TSpeedButton *SpeedButton1;
+ void __fastcall FormShow(TObject *Sender);
+ void __fastcall SpeedButton1Click(TObject *Sender);
+private: // User declarations
+public: // User declarations
+ std::string info;
+ __fastcall TInfoForm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TInfoForm *InfoForm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/X11/InstallMgr/src/InstallMgr.conf b/apps/X11/InstallMgr/src/InstallMgr.conf
new file mode 100644
index 0000000..7d63e5f
--- /dev/null
+++ b/apps/X11/InstallMgr/src/InstallMgr.conf
@@ -0,0 +1,5 @@
+
+[Sources]
+FTPSource=CrossWire Bible Society|ftp.crosswire.org|/pub/sword/raw/
+LocalPath=/usr/share/
+
diff --git a/apps/X11/InstallMgr/src/InstallMgr.cpp b/apps/X11/InstallMgr/src/InstallMgr.cpp
new file mode 100644
index 0000000..1d6907e
--- /dev/null
+++ b/apps/X11/InstallMgr/src/InstallMgr.cpp
@@ -0,0 +1,33 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+USERES("InstallMgr.res");
+USEFORM("MainFrm.cpp", MainForm);
+USELIB("..\BibleCS\swordlib.lib");
+USEFORM("StatusFrm.cpp", StatusForm);
+USEFORM("RemoteMntFrm.cpp", RemoteMntForm);
+USEFORM("InfoFrm.cpp", InfoForm);
+USEFORM("cipherfrm.cpp", CipherForm);
+USEFORM("UninstallFrm.cpp", UninstallForm);
+//---------------------------------------------------------------------------
+WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
+{
+ try
+ {
+ Application->Initialize();
+ Application->Title = "Install Manager";
+ Application->CreateForm(__classid(TMainForm), &MainForm);
+ Application->CreateForm(__classid(TStatusForm), &StatusForm);
+ Application->CreateForm(__classid(TRemoteMntForm), &RemoteMntForm);
+ Application->CreateForm(__classid(TInfoForm), &InfoForm);
+ Application->CreateForm(__classid(TCipherForm), &CipherForm);
+ Application->CreateForm(__classid(TUninstallForm), &UninstallForm);
+ Application->Run();
+ }
+ catch (Exception &exception)
+ {
+ Application->ShowException(&exception);
+ }
+ return 0;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/X11/InstallMgr/src/MainFrm.cpp b/apps/X11/InstallMgr/src/MainFrm.cpp
new file mode 100644
index 0000000..5104912
--- /dev/null
+++ b/apps/X11/InstallMgr/src/MainFrm.cpp
@@ -0,0 +1,1526 @@
+#include "MainFrm.h"
+//#include "StatusFrm.h"
+//#include "RemoteMntFrm.h"
+//#include "InfoFrm.h"
+//#include "cipherfrm.h"
+//#include "UninstallFrm.h"
+
+//#include <swwinlog.h>
+//#include <shellapi.h>
+#include <dirent.h>
+#include <fcntl.h>
+//#include <io.h>
+#include <sys/stat.h>
+//#include <dir.h>
+
+TMainForm *MainForm;
+
+#include "pix/null.xpm"
+#include "pix/arrow2r.xpm"
+#include "pix/bookshut.xpm"
+#include "pix/bulbon.xpm"
+#include "pix/fingerup.xpm"
+#include "pix/bulblk.xpm"
+#include "pix/upgrdlk.xpm"
+#include "pix/sword.xpm"
+#include "pix/globe.xpm"
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <sys/types.h>
+#include <unistd.h>
+#include <string.h>
+#include <gdk/gdkkeysyms.h>
+
+#include <gtk/gtk.h>
+
+extern "C" {
+#include "callbacks.h"
+//#include "interface.h"
+//#include "support.h"
+}
+#ifndef O_BINARY
+#define O_BINARY 0
+#endif
+
+
+VersionInfo::VersionInfo(const char *version) {
+ char *buf = new char[ strlen(version) + 1 ];
+ char *tok;
+ major = minor = minor2 = minor3 = 0;
+
+ strcpy(buf, version);
+ tok = strtok(buf, ".");
+ if (tok)
+ major = atoi(tok);
+ tok = strtok(0, ".");
+ if (tok)
+ minor = atoi(tok);
+ tok = strtok(0, ".");
+ if (tok)
+ minor2 = atoi(tok);
+ tok = strtok(0, ".");
+ if (tok)
+ minor3 = atoi(tok);
+ delete [] buf;
+}
+
+
+int VersionInfo::compare(const VersionInfo &vi) const {
+ if (major == vi.major)
+ if (minor == vi.minor)
+ if (minor2 == vi.minor2)
+ if (minor3 == vi.minor3)
+ return 0;
+ else return minor3 - vi.minor3;
+ else return minor2 - vi.minor2;
+ else return minor - vi.minor;
+ else return major - vi.major;
+}
+
+
+InstallSourceTab::InstallSourceTab(GtkWidget *Owner, const char *confEnt, const char *type) {
+ char *buf = new char [ strlen(confEnt) + 1 ];
+
+ strcpy(buf, confEnt);
+
+ Caption = strtok(buf, "|");
+ Source = strtok(0, "|");
+ Directory = strtok(0, "|");
+ delete [] buf;
+ Type = type;
+ mgr = 0;
+}
+
+InstallSourceTab::~InstallSourceTab() {
+ if (mgr)
+ delete mgr;
+}
+
+TMainForm::TMainForm(GtkWidget* Owner) {
+ manager = new SWMgr();
+ installConf = new SWConfig("./InstallMgr.conf");
+ localMgr = 0;
+ FormCreate(0);
+}
+
+
+TMainForm::~TMainForm()
+{
+ delete manager;
+ delete installConf;
+ if (localMgr)
+ delete localMgr;
+}
+
+
+void TMainForm::FormCreate(GtkWidget *Sender) {
+
+ accel_group = gtk_accel_group_new ();
+ main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ gtk_object_set_data (GTK_OBJECT (main_window), "main_window", main_window);
+ gtk_window_set_default_size (GTK_WINDOW (main_window), 600, 450);
+
+ vbox1 = gtk_vbox_new (FALSE, 0);
+ gtk_widget_ref (vbox1);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "vbox1", vbox1,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (vbox1);
+ gtk_container_add (GTK_CONTAINER (main_window), vbox1);
+
+ GtkWidget *handlebox3 = gtk_handle_box_new ();
+ gtk_object_set_data (GTK_OBJECT (main_window), "handlebox3", handlebox3);
+ gtk_widget_show (handlebox3);
+ gtk_box_pack_start (GTK_BOX (vbox1), handlebox3, FALSE, FALSE, 0);
+
+ menubar1 = gtk_menu_bar_new ();
+ gtk_widget_ref (menubar1);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "menubar1", menubar1,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (menubar1);
+ gtk_menu_bar_set_shadow_type (GTK_MENU_BAR (menubar1), GTK_SHADOW_NONE);
+ gtk_container_add (GTK_CONTAINER (handlebox3), menubar1);
+
+ file2 = gtk_menu_item_new_with_label ("");
+ tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (file2)->child),
+ "_File");
+ gtk_widget_add_accelerator (file2, "activate_item", accel_group,
+ tmp_key, GDK_MOD1_MASK, (enum GtkAccelFlags)0);
+ gtk_widget_ref (file2);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "file2", file2,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (file2);
+ gtk_container_add (GTK_CONTAINER (menubar1), file2);
+
+ file2_menu = gtk_menu_new ();
+ gtk_widget_ref (file2_menu);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "file2_menu", file2_menu,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (file2), file2_menu);
+ file2_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (file2_menu));
+
+ exit1 = gtk_menu_item_new_with_label ("");
+ tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (exit1)->child),
+ _("E_xit"));
+ gtk_widget_add_accelerator (exit1, "activate_item", file2_menu_accels,
+ tmp_key, 0, (enum GtkAccelFlags)0);
+ gtk_widget_ref (exit1);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "exit1", exit1,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (exit1);
+ gtk_container_add (GTK_CONTAINER (file2_menu), exit1);
+
+
+ options1 = gtk_menu_item_new_with_label ("");
+ tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (options1)->child),
+ _("_Options"));
+ gtk_widget_add_accelerator (options1, "activate_item", accel_group,
+ tmp_key, GDK_MOD1_MASK, (enum GtkAccelFlags)0);
+ gtk_widget_ref (options1);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "options1", options1,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (options1);
+ gtk_container_add (GTK_CONTAINER (menubar1), options1);
+
+ options1_menu = gtk_menu_new ();
+ gtk_widget_ref (options1_menu);
+
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "options1_menu", options1_menu,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (options1), options1_menu);
+ options1_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (options1_menu));
+
+ local_path1 = gtk_menu_item_new_with_label ("");
+ tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (local_path1)->child),
+ _("_Local Path..."));
+ gtk_widget_add_accelerator (local_path1, "activate_item", options1_menu_accels,
+ tmp_key, 0, (enum GtkAccelFlags)0);
+ gtk_widget_ref (local_path1);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "local_path1", local_path1,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (local_path1);
+ gtk_container_add (GTK_CONTAINER (options1_menu), local_path1);
+
+ manage_remote_sources1 = gtk_menu_item_new_with_label ("");
+ tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (manage_remote_sources1)->child),
+ _("_Manage Remote Sources..."));
+ gtk_widget_add_accelerator (manage_remote_sources1, "activate_item", options1_menu_accels,
+ tmp_key, 0, (enum GtkAccelFlags)0);
+ gtk_widget_ref (manage_remote_sources1);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "manage_remote_sources1", manage_remote_sources1,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (manage_remote_sources1);
+ gtk_container_add (GTK_CONTAINER (options1_menu), manage_remote_sources1);
+
+ banner_panel = gtk_vbox_new (FALSE, 0);
+ gtk_widget_ref (banner_panel);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "banner_panel", banner_panel,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (banner_panel);
+ gtk_box_pack_start (GTK_BOX (vbox1), banner_panel, FALSE, FALSE, 0);
+
+ hpaned1 = gtk_hpaned_new ();
+ gtk_widget_ref (hpaned1);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "hpaned1", hpaned1,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (hpaned1);
+ gtk_box_pack_start (GTK_BOX (vbox1), hpaned1, TRUE, TRUE, 0);
+
+ vbox2 = gtk_vbox_new (FALSE, 0);
+ gtk_widget_ref (vbox2);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "vbox2", vbox2,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (vbox2);
+ gtk_container_add (GTK_CONTAINER (hpaned1), vbox2);
+
+ toolbar2 = gtk_toolbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_ICONS);
+ gtk_widget_ref (toolbar2);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "toolbar2", toolbar2,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (toolbar2);
+ gtk_box_pack_start (GTK_BOX (vbox2), toolbar2, FALSE, FALSE, 0);
+
+ notebook1 = gtk_notebook_new ();
+ gtk_widget_ref (notebook1);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "notebook1", notebook1,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (notebook1);
+ gtk_box_pack_start (GTK_BOX (vbox2), notebook1, TRUE, TRUE, 0);
+
+ scrolledwindow3 = gtk_scrolled_window_new (NULL, NULL);
+ gtk_widget_ref (scrolledwindow3);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "scrolledwindow3", scrolledwindow3,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (scrolledwindow3);
+ gtk_container_add (GTK_CONTAINER (notebook1), scrolledwindow3);
+
+ viewport1 = gtk_viewport_new (NULL, NULL);
+ gtk_widget_ref (viewport1);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "viewport1", viewport1,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (viewport1);
+ gtk_container_add (GTK_CONTAINER (scrolledwindow3), viewport1);
+
+ localTree = new TTreeView(viewport1);
+
+ label1 = gtk_label_new (_("Local"));
+ gtk_widget_ref (label1);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "label1", label1,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (label1);
+ gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 0), label1);
+
+ toolbar3 = gtk_toolbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_BOTH);
+ gtk_widget_ref (toolbar3);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "toolbar3", toolbar3,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (toolbar3);
+ gtk_box_pack_start (GTK_BOX (vbox2), toolbar3, FALSE, FALSE, 0);
+
+ InfoBtn = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar3),
+ GTK_TOOLBAR_CHILD_BUTTON,
+ NULL,
+ _("Info"),
+ NULL, NULL,
+ NULL, NULL, NULL);
+ gtk_widget_ref (InfoBtn);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "InfoBtn", InfoBtn,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (InfoBtn);
+
+ SelectBtn = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar3),
+ GTK_TOOLBAR_CHILD_BUTTON,
+ NULL,
+ _("Select"),
+ NULL, NULL,
+ NULL, NULL, NULL);
+ gtk_widget_ref (SelectBtn);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "SelectBtn", SelectBtn,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (SelectBtn);
+
+ SelectAllBtn = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar3),
+ GTK_TOOLBAR_CHILD_BUTTON,
+ NULL,
+ _("Select All"),
+ NULL, NULL,
+ NULL, NULL, NULL);
+ gtk_widget_ref (SelectAllBtn);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "SelectAllBtn", SelectAllBtn,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (SelectAllBtn);
+
+/*
+ tmp_toolbar_icon = gnome_stock_pixmap_widget (main_window, GNOME_STOCK_PIXMAP_ADD);
+*/
+ InstallBtn = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar3),
+ GTK_TOOLBAR_CHILD_BUTTON,
+ NULL,
+ _("Install"),
+ NULL, NULL,
+ /*tmp_toolbar_icon*/NULL, NULL, NULL);
+ gtk_widget_ref (InstallBtn);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "InstallBtn", InstallBtn,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (InstallBtn);
+
+ vbox3 = gtk_vbox_new (FALSE, 0);
+ gtk_widget_ref (vbox3);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "vbox3", vbox3,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (vbox3);
+ gtk_container_add (GTK_CONTAINER (hpaned1), vbox3);
+
+ label2 = gtk_label_new (_("Installed"));
+ gtk_widget_ref (label2);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "label2", label2,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (label2);
+ gtk_box_pack_start (GTK_BOX (vbox3), label2, FALSE, FALSE, 0);
+ gtk_label_set_justify (GTK_LABEL (label2), GTK_JUSTIFY_LEFT);
+ gtk_misc_set_alignment (GTK_MISC (label2), 0.01, 0.5);
+
+ scrolledwindow4 = gtk_scrolled_window_new (NULL, NULL);
+ gtk_widget_ref (scrolledwindow4);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "scrolledwindow4", scrolledwindow4,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (scrolledwindow4);
+ gtk_box_pack_start (GTK_BOX (vbox3), scrolledwindow4, TRUE, TRUE, 0);
+
+ viewport2 = gtk_viewport_new (NULL, NULL);
+ gtk_widget_ref (viewport2);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "viewport2", viewport2,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (viewport2);
+ gtk_container_add (GTK_CONTAINER (scrolledwindow4), viewport2);
+
+ installTree = new TTreeView(viewport2);
+
+
+
+
+ toolbar4 = gtk_toolbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_BOTH);
+ gtk_widget_ref (toolbar4);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "toolbar4", toolbar4,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (toolbar4);
+ gtk_box_pack_start (GTK_BOX (vbox3), toolbar4, FALSE, FALSE, 0);
+
+/*
+ tmp_toolbar_icon = gnome_stock_pixmap_widget (main_window, GNOME_STOCK_PIXMAP_REMOVE);
+*/
+ RemoveBtn = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar4),
+ GTK_TOOLBAR_CHILD_BUTTON,
+ NULL,
+ _("Remove"),
+ NULL, NULL,
+ /*tmp_toolbar_icon*/NULL, NULL, NULL);
+ gtk_widget_ref (RemoveBtn);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "RemoveBtn", RemoveBtn,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (RemoveBtn);
+
+ /*
+ appbar1 = gtk_statusbar_new ();
+ gtk_widget_ref (appbar1);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "appbar1", appbar1,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (appbar1);
+ gtk_box_pack_start (GTK_BOX (vbox1), appbar1, FALSE, FALSE, 0);
+ */
+
+ appbar1 = gtk_progress_bar_new ();
+ gtk_widget_ref (appbar1);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "appbar1", appbar1,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (appbar1);
+ gtk_box_pack_start (GTK_BOX (vbox1), appbar1, FALSE, FALSE, 0);
+
+
+ gtk_signal_connect (GTK_OBJECT (localTree->nativeControl), "button_press_event",
+ GTK_SIGNAL_FUNC (on_localTreeButtonPress),
+ NULL);
+ gtk_signal_connect (GTK_OBJECT (InfoBtn), "clicked",
+ GTK_SIGNAL_FUNC (on_InfoBtn_clicked),
+ NULL);
+ gtk_signal_connect (GTK_OBJECT (SelectBtn), "clicked",
+ GTK_SIGNAL_FUNC (on_SelectBtn_clicked),
+ NULL);
+ gtk_signal_connect (GTK_OBJECT (SelectAllBtn), "clicked",
+ GTK_SIGNAL_FUNC (on_SelectAllBtn_clicked),
+ NULL);
+ gtk_signal_connect (GTK_OBJECT (InstallBtn), "clicked",
+ GTK_SIGNAL_FUNC (on_InstallBtn_clicked),
+ NULL);
+ gtk_signal_connect (GTK_OBJECT (RemoveBtn), "clicked",
+ GTK_SIGNAL_FUNC (on_RemoveBtn_clicked),
+ NULL);
+ gtk_signal_connect(GTK_OBJECT(main_window),
+ "destroy",
+ GTK_SIGNAL_FUNC(gtk_main_quit),
+ NULL);
+ gtk_signal_connect (GTK_OBJECT (local_path1), "activate",
+ GTK_SIGNAL_FUNC (on_local_path1_activate),
+ NULL);
+ gtk_signal_connect (GTK_OBJECT (exit1), "activate",
+ GTK_SIGNAL_FUNC (on_exit1_activate),
+ NULL);
+
+
+
+
+ ImageList1 = new TCustomImageList(localTree);
+ ImageList2 = new TCustomImageList(localTree);
+ localTree->Images = ImageList1;
+ localTree->StateImages = ImageList2;
+
+ refreshPageControl();
+
+// if (SWLog::systemlog)
+// delete SWLog::systemlog;
+// SWLog::systemlog = new SWWinLog(this->Handle); // set the system logger to our MSWindows specific SWLog class
+
+
+}
+
+
+void TMainForm::refreshPageControl()
+{
+ SectionMap::iterator sources;
+ ConfigEntMap::iterator sourceBegin;
+ ConfigEntMap::iterator sourceEnd;
+
+/*
+ while (PageControl1->PageCount > 1) {
+ delete PageControl1->Pages[1];
+ }
+*/
+
+ sources = installConf->Sections.find("Sources");
+
+ if (sources != installConf->Sections.end()) {
+ sourceBegin = sources->second.lower_bound("FTPSource");
+ sourceEnd = sources->second.upper_bound("FTPSource");
+
+ if (sourceBegin != sourceEnd) {
+ while (sourceBegin != sourceEnd) {
+// addSource(new InstallSourceTab(this, sourceBegin->second.c_str(), "FTP"));
+ sourceBegin++;
+ }
+ }
+ }
+}
+
+/*
+
+void TMainForm::addSource(InstallSourceTab *ist)
+{
+ TTabSheet *newtab = new TTabSheet(this);
+ TTreeView *newtree = new TTreeView(this);
+ TSpeedButton *newbutton = new TSpeedButton(this);
+ TPanel *newpanel = new TPanel(this);
+ char buf[512];
+ SectionMap::iterator sit;
+
+ newtab->Caption = ist->Caption.c_str();
+ newtab->Hint = ist->Source.c_str();
+ newtab->ShowHint = true;
+ newtab->PageControl = PageControl1;
+ ist->Parent = newtab;
+ ist->tree = newtree;
+ newpanel->Parent = newtab;
+ newpanel->Align = alTop;
+ newpanel->BevelOuter = bvNone;
+ newpanel->BevelInner = bvNone;
+ newpanel->Height = 25;
+ newbutton->Parent = newpanel;
+ newbutton->Caption = "Refresh from Remote Source";
+ newbutton->Width = 175;
+ newbutton->OnClick = RefreshRemoteSource;
+ newbutton->Flat = true;
+ newbutton->Glyph = SpeedButton2->Glyph;
+ newtree->Parent = newtab;
+ newtree->Align = alClient;
+ newtree->ReadOnly = true;
+ newtree->OnDblClick = localTreeDblClick;
+ newtree->Images = ImageList1;
+ newtree->StateImages = ImageList2;
+ string parent = "./sources/" + ist->Source + "/file";
+ createParent(parent.c_str());
+ parent = "./sources/" + ist->Source;
+ fillSourceTree(parent.c_str(), newtree);
+}
+
+
+*/
+const char *TMainForm::getLocalDir()
+{
+ ConfigEntMap::iterator entry;
+
+ entry = installConf->Sections["Sources"].find("LocalPath");
+ if (entry == installConf->Sections["Sources"].end()) {
+ installConf->Sections["Sources"].insert(ConfigEntMap::value_type("LocalPath", "d:/sword"));
+ entry = installConf->Sections["Sources"].find("LocalPath");
+ }
+ return entry->second.c_str();
+
+}
+
+
+void TMainForm::setLocalDir(const char *idir)
+{
+ installConf->Sections["Sources"].erase("LocalPath"); installConf->Sections["Sources"].insert(ConfigEntMap::value_type("LocalPath", idir));
+}
+
+
+void file_ok_sel( GtkWidget *w, TMainForm *form ) {
+ form->LocalPath1Click_ok(w);
+}
+
+void TMainForm::LocalPath1Click_ok(GtkWidget *Sender) {
+ char *buf = new char [ strlen(gtk_file_selection_get_filename (GTK_FILE_SELECTION (localPathDlg))) + 1 ];
+
+ strcpy(buf, gtk_file_selection_get_filename (GTK_FILE_SELECTION (localPathDlg)));
+ int end = strlen(buf) - 1;
+ while (end) {
+ if ((buf[end] == '/') || (buf[end] == '\\'))
+ break;
+ end--;
+ }
+ buf[end+1] = 0;
+ setLocalDir(buf);
+ delete [] buf;
+
+ installConf->Save();
+ fillSourceTree(getLocalDir(), localTree);
+ gtk_widget_destroy(GTK_WIDGET(localPathDlg));
+}
+
+//---------------------------------------------------------------------------
+void TMainForm::LocalPath1Click(GtkWidget *Sender)
+{
+/*
+ localPathDlg->Title = "Select a file in the directory to choose";
+ localPathDlg->InitialDir = getLocalDir();
+*/
+ localPathDlg = gtk_file_selection_new( "Select a file in the directory to choose" );
+ gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (localPathDlg)->ok_button),
+ "clicked", (GtkSignalFunc) file_ok_sel, this );
+
+ gtk_signal_connect_object (GTK_OBJECT (GTK_FILE_SELECTION
+ (localPathDlg)->cancel_button),
+ "clicked", (GtkSignalFunc) gtk_widget_destroy,
+ GTK_OBJECT (localPathDlg));
+
+ /* Lets set the filename, as if this were a save dialog, and we are giving
+ a default filename */
+// gtk_file_selection_set_filename (GTK_FILE_SELECTION(localPathDlg),
+// "penguin.png");
+
+ gtk_window_set_modal(GTK_WINDOW(localPathDlg), true);
+ gtk_widget_show(localPathDlg);
+
+
+}
+//---------------------------------------------------------------------------
+
+void TMainForm::fillInstallTree()
+{
+ ModMap::iterator mods;
+ TTreeNode *node;
+ string nodeName;
+
+ installTree->Items->Clear();
+
+ if (!manager->configPath)
+ return;
+
+ for (mods = manager->Modules.begin(); mods != manager->Modules.end(); mods++) {
+ for (node = installTree->Items->GetFirstNode(); node; node = node->getNextSibling()) {
+ if (!strcmp(string(node->Text).c_str(), mods->second->Type())) {
+ break;
+ }
+ }
+ if (!node) { // Add Section
+ if (!strncmp(mods->second->Type(), "Bibl", 4)) // If Bibles, put first in list
+ node = installTree->Items->AddChildFirst(0, mods->second->Type());
+ else node = installTree->Items->AddChild(0, mods->second->Type());
+ }
+ nodeName = "[";
+ nodeName += mods->second->Name();
+ nodeName += "] ";
+ nodeName += mods->second->Description();
+ node = installTree->Items->AddChildObject(node, nodeName.c_str(), mods->second->Name());
+ }
+ for (node = installTree->Items->GetFirstNode(); node; node = node->getNextSibling())
+ node->Expand(true);
+ node = installTree->Items->GetFirstNode();
+// if (node)
+// node->MakeVisible();
+}
+
+
+void TMainForm::fillSourceTree(const char *sourceConf, TTreeView *tree)
+{
+ ModMap::iterator mods;
+ TTreeNode *node;
+ SectionMap::iterator sections, targetSection;
+ ConfigEntMap::iterator entry;
+ string secName;
+ const char * modDesc;
+ string nodeName;
+ string targetVersion;
+ string sourceVersion;
+ bool cipher;
+
+ SWMgr *mgr;
+
+// if (tree == localTree) {
+ if (localMgr)
+ delete localMgr;
+ mgr = localMgr = new SWMgr(sourceConf);
+/*
+ }
+ else {
+ InstallSourceTab *ist = (InstallSourceTab *) MainForm->PageControl1->ActivePage->Controls[0];
+ if (ist->mgr)
+ delete ist->mgr;
+ mgr = ist->mgr = new SWMgr(sourceConf);
+ }
+*/
+
+ tree->Items->Clear();
+
+ if (!mgr->configPath)
+ return;
+
+ for (sections = mgr->config->Sections.begin(); sections != mgr->config->Sections.end(); sections++) {
+
+ cipher = false;
+
+ if (!strcmp(sections->first.c_str(), "Globals")) // skip [Globals]
+ continue;
+
+ mods = mgr->Modules.find(sections->first.c_str());
+ if (mods != mgr->Modules.end())
+ secName = mods->second->Type();
+ else {
+ secName = "Other";
+ }
+
+ string misc1 = ((entry = sections->second.find("Category")) != sections->second.end()) ? (*entry).second : (string)"";
+ if (misc1.length() > 0)
+ secName = misc1;
+
+ entry = sections->second.find("Description");
+ if (entry != sections->second.end())
+ modDesc = entry->second.c_str();
+ else modDesc = "";
+
+
+ targetVersion = "0.0";
+ sourceVersion = "1.0";
+
+ entry = sections->second.find("CipherKey");
+ if (entry != sections->second.end())
+ cipher = true;
+
+ entry = sections->second.find("Version");
+ if (entry != sections->second.end())
+ sourceVersion = entry->second.c_str();
+
+ targetSection = manager->config->Sections.find(sections->first);
+ if (targetSection != manager->config->Sections.end()) {
+ targetVersion = "1.0";
+ entry = targetSection->second.find("Version");
+ if (entry != targetSection->second.end())
+ targetVersion = entry->second;
+ }
+
+ if (VersionInfo(sourceVersion.c_str()) > VersionInfo(targetVersion.c_str())) {
+ for (node = tree->Items->GetFirstNode(); node; node = node->getNextSibling()) {
+ if (!strcmp(string(node->Text).c_str(), secName.c_str())) {
+ break;
+ }
+ }
+
+ if (!node) { // Add Section
+ if (!strncmp(secName.c_str(), "Bibl", 4)) // If Bibles, put first in list
+ node = tree->Items->AddChildFirst(0, secName.c_str());
+ else node = tree->Items->AddChild(0, secName.c_str());
+ node->ImageIndex = 0;
+ }
+ nodeName = "[" + sections->first + "] " + modDesc;
+ node = tree->Items->AddChildObject(node, nodeName.c_str(), (void *) sections->first.c_str());
+ gtk_signal_connect (GTK_OBJECT (node->nativeControl), "button_press_event",
+ GTK_SIGNAL_FUNC (on_localTreeButtonPress),
+ NULL);
+
+ if (VersionInfo(targetVersion.c_str()) < VersionInfo("1.0")) {
+ node->ImageIndex = 1;
+// node->SelectedIndex = 1;
+ }
+ else {
+ node->ImageIndex = 2;
+// node->SelectedIndex = 2;
+ }
+ if (cipher) {
+ node->ImageIndex += 2;
+// node->SelectedIndex += 2;
+ }
+ node->StateIndex = 0;
+ }
+ }
+ for (node = tree->Items->GetFirstNode(); node; node = node->getNextSibling())
+ node->Expand(true);
+ node = tree->Items->GetFirstNode();
+// if (node)
+// node->MakeVisible();
+}
+
+
+void TMainForm::Button5Click(GtkWidget *Sender)
+{
+ TTreeView *tree;
+/*
+ for (int i = 0; i < PageControl1->ActivePage->ControlCount; i++) {
+ if (PageControl1->ActivePage->Controls[i]->ClassNameIs("TTreeView")) {
+ tree = (TTreeView*)(PageControl1->ActivePage->Controls[i]);
+ break;
+ }
+ }
+*/
+ tree = localTree;
+
+ TTreeNode *node = tree->Selected;
+ if (node) {
+ if (node->Parent) {
+ if (node->StateIndex == 1)
+ node->StateIndex = 0;
+ else node->StateIndex = 1;
+ tree->Repaint();
+ }
+ }
+}
+/*
+//---------------------------------------------------------------------------
+
+void TMainForm::localTreeDblClick(GtkWidget *Sender)
+{
+ Button5Click(Sender);
+}
+//---------------------------------------------------------------------------
+*/
+
+int TMainForm::selectAll(TTreeView *tree, bool sel)
+{
+ TTreeNode *node;
+ TTreeNode *node2;
+ int retCount = 0;
+
+ for (node = tree->Items->GetFirstNode(); node; node = node->getNextSibling()) {
+ for (node2 = node->getFirstChild(); node2; node2 = node2->getNextSibling()) {
+ if (node2->StateIndex == 1) {
+ if (!sel) {
+ node2->StateIndex = 0; //node2->StateIndex;
+ retCount++;
+ }
+ }
+ else {
+ if (sel) {
+ node2->StateIndex = 1;
+ retCount++;
+ }
+ }
+ }
+ }
+ return retCount;
+}
+
+
+void TMainForm::Button6Click(GtkWidget *Sender) // SELECT ALL
+{
+ TTreeView *tree;
+/*
+ for (int i = 0; i < PageControl1->ActivePage->ControlCount; i++) {
+ if (PageControl1->ActivePage->Controls[i]->ClassNameIs("TTreeView")) {
+ tree = (TTreeView*)(PageControl1->ActivePage->Controls[i]);
+ break;
+ }
+ }
+*/
+ tree = localTree;
+ if (!selectAll(tree, true))
+ selectAll(tree, false);
+ tree->Repaint();
+}
+/*
+//---------------------------------------------------------------------------
+
+void TMainForm::Image1Click(GtkWidget *Sender)
+{
+ ShellExecute(this->Handle, "open", "http://www.crosswire.org", NULL, NULL, SW_SHOWNORMAL);
+
+}
+//---------------------------------------------------------------------------
+
+*/
+
+int TMainForm::removeModule(const char *modName)
+{
+ SectionMap::iterator module;
+ ConfigEntMap::iterator fileBegin;
+ ConfigEntMap::iterator fileEnd, entry;
+
+ module = manager->config->Sections.find(modName);
+
+ if (module != manager->config->Sections.end()) {
+ entry = module->second.find("CipherKey");
+ if (entry != module->second.end())
+// CipherForm->cipherEdit->Text = entry->second.c_str();
+
+ fileBegin = module->second.lower_bound("File");
+ fileEnd = module->second.upper_bound("File");
+
+/*
+ if (fileBegin != fileEnd) { // remove each file
+ while (fileBegin != fileEnd) {
+ //remove file
+ remove(fileBegin->second.c_str());
+ fileBegin++;
+ }
+ }
+ else { //remove all files in DataPath directory
+*/
+
+ DIR *dir;
+ struct dirent *ent;
+ ConfigEntMap::iterator entry;
+ string modDir;
+ string modFile;
+
+ entry = module->second.find("DataPath");
+ if (entry != module->second.end()) {
+ modDir = manager->prefixPath;
+ if ((manager->prefixPath[strlen(manager->prefixPath)-1] != '\\') && (manager->prefixPath[strlen(manager->prefixPath)-1] != '/'))
+ modDir += "/";
+
+ modDir += entry->second.c_str();
+ entry = module->second.find("ModDrv");
+ if (entry != module->second.end()) {
+ if (!strcmp(entry->second.c_str(), "RawLD")) {
+ char *buf = new char [ strlen(modDir.c_str()) + 1 ];
+
+ strcpy(buf, modDir.c_str());
+ int end = strlen(buf) - 1;
+ while (end) {
+ if (buf[end] == '/')
+ break;
+ end--;
+ }
+ buf[end] = 0;
+ modDir = buf;
+ delete [] buf;
+ }
+ }
+
+ if (dir = opendir(modDir.c_str())) {
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, ".")) && (strcmp(ent->d_name, ".."))) {
+ modFile = modDir;
+ modFile += "/";
+ modFile += ent->d_name;
+ remove(modFile.c_str());
+ }
+ }
+ closedir(dir);
+ }
+ if (dir = opendir(manager->configPath)) { // find and remove .conf file
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, ".")) && (strcmp(ent->d_name, ".."))) {
+ modFile = manager->configPath;
+ modFile += "/";
+ modFile += ent->d_name;
+ SWConfig *config = new SWConfig(modFile.c_str());
+ if (config->Sections.find(modName) != config->Sections.end()) {
+ delete config;
+ remove(modFile.c_str());
+ }
+ else delete config;
+ }
+ }
+ closedir(dir);
+ }
+ }
+// }
+ return 0;
+ }
+ return 1;
+}
+
+
+int TMainForm::createParent(const char *pName)
+{
+ char *buf = new char [ strlen(pName) + 1 ];
+ int retCode;
+
+ strcpy(buf, pName);
+ int end = strlen(buf) - 1;
+ while (end) {
+ if (buf[end] == '/')
+ break;
+ end--;
+ }
+ buf[end] = 0;
+ if (!strlen(buf))
+ return -1;
+
+ if ((retCode = mkdir(buf, 0755))) {
+ createParent(buf);
+ retCode = mkdir(buf, 0755);
+ }
+ delete [] buf;
+ return retCode;
+}
+
+
+int TMainForm::createPathAndFile(const char *fName)
+{
+ int fd;
+
+ fd = open(fName, O_CREAT|O_WRONLY|O_BINARY, 00644);
+ if (fd < 1) {
+ createParent(fName);
+ fd = open(fName, O_CREAT|O_WRONLY|O_BINARY, S_IREAD|S_IWRITE);
+ }
+ return fd;
+}
+
+
+int TMainForm::copyFileToCWD(const char *sourceDir, const char *fName)
+{
+ string sourcePath = sourceDir;
+ sourcePath += fName;
+
+ string dest;
+ dest = manager->prefixPath;
+ if ((manager->prefixPath[strlen(manager->prefixPath)-1] != '\\') && (manager->prefixPath[strlen(manager->prefixPath)-1] != '/'))
+ dest += "/";
+ dest +=fName;
+ return copyFile(sourcePath.c_str(), dest.c_str());
+}
+
+
+int TMainForm::copyFile(const char *sourceFile, const char *targetFile)
+{
+ int sfd, dfd, len;
+ char buf[4096];
+
+ if ((sfd = open(sourceFile, O_RDONLY|O_BINARY)) < 1)
+ return -1;
+ if ((dfd = createPathAndFile(targetFile)) < 1)
+ return -1;
+
+ do {
+ len = read(sfd, buf, 4096);
+ write(dfd, buf, len);
+ }
+ while(len == 4096);
+ close(dfd);
+ close(sfd);
+
+ return 0;
+}
+
+
+int TMainForm::installModule(const char *modName, InstallSourceTab *ist)
+{
+ SectionMap::iterator module, section;
+ ConfigEntMap::iterator fileBegin;
+ ConfigEntMap::iterator fileEnd;
+ ConfigEntMap::iterator entry;
+ string sourceDir;
+ string buffer;
+ bool aborted = false;
+ bool cipher = false;
+
+ if (ist)
+ sourceDir = "./sources/" + ist->Source;
+ else sourceDir = getLocalDir();
+
+ SWMgr mgr(sourceDir.c_str());
+
+ module = mgr.config->Sections.find(modName);
+
+ if (module != mgr.config->Sections.end()) {
+
+ entry = module->second.find("CipherKey");
+ if (entry != module->second.end())
+ cipher = true;
+
+ fileEnd = module->second.upper_bound("File");
+ fileBegin = module->second.lower_bound("File");
+
+ if (fileBegin != fileEnd) { // copy each file
+ if (ist) {
+ while (fileBegin != fileEnd) { // ftp each file first
+ buffer = sourceDir + "/" + fileBegin->second;
+// if (FTPCopy(ist, fileBegin->second.c_str(), buffer.c_str())) {
+// aborted = true;
+// break; // user aborted
+// }
+ fileBegin++;
+ }
+ fileBegin = module->second.lower_bound("File");
+ }
+
+ if (!aborted) {
+ // DO THE INSTALL
+ while (fileBegin != fileEnd) {
+ copyFileToCWD(sourceDir.c_str(), fileBegin->second.c_str());
+ fileBegin++;
+ }
+ }
+ //---------------
+
+ if (ist) {
+ fileBegin = module->second.lower_bound("File");
+ while (fileBegin != fileEnd) { // delete each tmp ftp file
+ buffer = sourceDir + "/" + fileBegin->second;
+ remove(buffer.c_str());
+ fileBegin++;
+ }
+ }
+ }
+ else { //copy all files in DataPath directory
+ DIR *dir;
+ struct dirent *ent;
+ ConfigEntMap::iterator entry;
+ string modDir;
+ string modFile;
+ string sourceOrig = sourceDir;
+
+ entry = module->second.find("DataPath");
+ if (entry != module->second.end()) {
+ modDir = entry->second.c_str();
+ entry = module->second.find("ModDrv");
+ if (entry != module->second.end()) {
+ if (!strcmp(entry->second.c_str(), "RawLD")) {
+ char *buf = new char [ strlen(modDir.c_str()) + 1 ];
+
+ strcpy(buf, modDir.c_str());
+ int end = strlen(buf) - 1;
+ while (end) {
+ if (buf[end] == '/')
+ break;
+ end--;
+ }
+ buf[end] = 0;
+ modDir = buf;
+ delete [] buf;
+ }
+ }
+
+ if (ist) {
+ buffer = sourceDir + "/" + modDir;
+// if (FTPCopy(ist, modDir.c_str(), buffer.c_str(), true)) {
+// aborted = true; // user aborted
+// }
+ }
+ sourceDir += "/";
+ sourceDir += modDir;
+ if (!aborted) {
+ if (dir = opendir(sourceDir.c_str())) {
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, ".")) && (strcmp(ent->d_name, ".."))) {
+ modFile = modDir;
+ modFile += "/";
+ modFile += ent->d_name;
+ copyFileToCWD(sourceOrig.c_str(), modFile.c_str());
+ }
+ }
+ closedir(dir);
+ }
+ }
+ if (ist) { // delete tmp ftp files
+ if (dir = opendir(sourceDir.c_str())) {
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, ".")) && (strcmp(ent->d_name, ".."))) {
+ modFile = sourceOrig + "/" + modDir;
+ modFile += "/";
+ modFile += ent->d_name;
+ remove(modFile.c_str());
+ }
+ }
+ closedir(dir);
+ }
+ }
+ sourceDir = sourceOrig;
+ sourceDir += "/mods.d/";
+ if (!aborted) {
+ if (dir = opendir(sourceDir.c_str())) { // find and copy .conf file
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, ".")) && (strcmp(ent->d_name, ".."))) {
+ modFile = sourceDir;
+ modFile += ent->d_name;
+ SWConfig *config = new SWConfig(modFile.c_str());
+ if (config->Sections.find(modName) != config->Sections.end()) {
+ delete config;
+ string targetFile = manager->configPath; //"./mods.d/";
+ targetFile += "/";
+ targetFile += ent->d_name;
+ copyFile(modFile.c_str(), targetFile.c_str());
+ if (cipher) {
+// CipherForm->modName = modName;
+// CipherForm->confFile = targetFile;
+// CipherForm->ShowModal();
+ }
+ }
+ else delete config;
+ }
+ }
+ closedir(dir);
+ }
+ }
+ }
+ }
+ return (aborted) ? -1 : 0;
+ }
+ return 1;
+}
+
+
+void TMainForm::fillAllSourceTrees()
+{
+ fillSourceTree(getLocalDir(), localTree);
+/*
+ for (int i = 1; i < PageControl1->PageCount; i++) {
+ InstallSourceTab *ist = (InstallSourceTab *) MainForm->PageControl1->Pages[i]->Controls[0];
+ string parent = "./sources/" + ist->Source;
+ fillSourceTree(parent.c_str(), ist->tree);
+ }
+*/
+}
+
+
+void TMainForm::Button4Click(GtkWidget *Sender) // REMOVE MODULE
+{
+ TTreeNode *node = installTree->Selected;
+ if (node) {
+ if (node->Parent) {
+ removeModule((const char *)(void *)node->Data);
+ delete manager;
+ manager = new SWMgr();
+ fillInstallTree();
+ fillAllSourceTrees();
+ }
+ }
+}
+//---------------------------------------------------------------------------
+
+void TMainForm::Button2Click(GtkWidget *Sender) // INSTALL
+{
+ TTreeNode *node;
+ int count = 0;
+ int abort = 0;
+ //gtk temporary
+ float position = 0;
+
+/*
+ class TWaitCursor {
+ public:
+ TWaitCursor() : oldc(Screen->Cursor) { Screen->Cursor = crHourGlass; }
+ ~TWaitCursor() { Screen->Cursor = oldc; }
+ private:
+ TCursor oldc;
+ } wait; // show hourglass
+*/
+
+ TTreeView *tree;
+/*
+ for (int i = 0; i < PageControl1->ActivePage->ControlCount; i++) {
+ if (PageControl1->ActivePage->Controls[i]->ClassNameIs("TTreeView")) {
+ tree = (TTreeView*)(PageControl1->ActivePage->Controls[i]);
+ break;
+ }
+ }
+*/
+ tree = localTree;
+
+ for (node = tree->Items->GetFirstNode(); node; node = node->GetNext()) {
+ if (node->StateIndex == 1)
+ count++;
+ } // do true progress bar
+
+ if (!count) return; // if nothing is selected, do nothing
+
+// progressBar->Max = count;
+// progressBar->Position = 0;
+ gtk_progress_bar_update(GTK_PROGRESS_BAR(appbar1), 0);
+ gtk_progress_set_show_text(GTK_PROGRESS(appbar1), 1);
+
+ for (node = tree->Items->GetFirstNode(); node; node = node->GetNext()) {
+ if (node->StateIndex == 1) { // if selected for install
+// CipherForm->cipherEdit->Text = "";
+ if ((node->ImageIndex == 2) || (node->ImageIndex == 4)) { // if this is an upgrade
+ removeModule((const char *)(void *)node->Data);
+ }
+ // install module
+// statusBar->Caption = "Installing: " + node->Text + "...";
+ string statusText = "Installing: " + string(node->Text) + "...";
+ gtk_progress_set_format_string(GTK_PROGRESS(appbar1), statusText.c_str());
+
+// statusBar->Repaint();
+ if (tree == localTree)
+ abort = installModule((const char *)(void *)node->Data);
+// else abort = installModule((const char *)(void *)node->Data, (InstallSourceTab *) PageControl1->ActivePage->Controls[0]);
+ if (abort)
+ break;
+// progressBar->Position++;
+ position++;
+ gtk_progress_bar_update(GTK_PROGRESS_BAR(appbar1), position/count);
+ while (g_main_iteration(FALSE)); // force refresh
+ }
+ }
+ delete manager;
+ manager = new SWMgr();
+ fillInstallTree();
+ fillAllSourceTrees();
+// statusBar->Caption = "";
+// progressBar->Position = 0;
+ gtk_progress_set_format_string(GTK_PROGRESS(appbar1), "");
+ gtk_progress_bar_update(GTK_PROGRESS_BAR(appbar1), 0);
+}
+
+
+/*
+int TMainForm::FTPCopy(InstallSourceTab *ist, const char *src, const char *dest, bool dirTransfer)
+{
+ StatusForm->ist = ist;
+ StatusForm->src = src;
+ StatusForm->dest = dest;
+ StatusForm->dirTransfer = dirTransfer;
+
+ Application->ProcessMessages();
+ if (StatusForm->ShowModal() == mrCancel)
+ return -1;
+ else return 0;
+}
+
+
+void TMainForm::RefreshRemoteSource(GtkWidget *Sender)
+{
+ InstallSourceTab *ist = (InstallSourceTab *) MainForm->PageControl1->ActivePage->Controls[0];
+ DIR *dir;
+ struct dirent *ent;
+ ConfigEntMap::iterator entry;
+ string modDir;
+ string modFile;
+ string target = "./sources/";
+ target += ist->Source.c_str();
+ target += "/mods.d";
+
+ if (dir = opendir(target.c_str())) {
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, ".")) && (strcmp(ent->d_name, ".."))) {
+ modFile = target;
+ modFile += "/";
+ modFile += ent->d_name;
+ remove(modFile.c_str());
+ }
+ }
+ closedir(dir);
+ }
+
+
+ FTPCopy(ist, "mods.d", target.c_str(), true);
+
+ target = "./sources/";
+ target += ist->Source.c_str();
+
+ fillSourceTree(target.c_str(), ist->tree);
+}
+
+
+
+void TMainForm::SpeedButton1Click(GtkWidget *Sender)
+{
+ InfoForm->Caption = "W A R N I N G";
+ InfoForm->info = "\\qc {\\b \\fs20 -=+* WARNING *+=- -=+* WARNING *+=-}\\par\\par\\pard ";
+ InfoForm->info += "Although Install Manager provides a convenient way for installing and upgrading SWORD components, it also uses a systematic method for accessing sites which gives packet sniffers a target to lock into for singling out users. \\par\\par ";
+ InfoForm->info += "\\b\\qc IF YOU LIVE IN A PERSECUTED COUNTRY AND DO NOT WISH TO RISK DETECTION, YOU SHOULD *NOT* USE INSTALL MANAGER'S REMOTE SOURCE FEATURES.";
+ InfoForm->ShowModal();
+ if (RemoteMntForm->ShowModal() == mrOk) {
+ delete installConf;
+ installConf = new SWConfig("./InstallMgr.conf");
+
+ refreshPageControl();
+ }
+}
+
+void TMainForm::SpeedButton5Click(GtkWidget *Sender)
+{
+ TTreeView *tree;
+ InstallSourceTab *ist = 0;
+ SectionMap::iterator module;
+ ConfigEntMap::iterator entry, entryEnd;
+ string sourceDir;
+
+ if (PageControl1->ActivePage != PageControl1->Pages[0]) {
+ ist = (InstallSourceTab *) PageControl1->ActivePage->Controls[0];
+ tree = ist->tree;
+ }
+ else tree = localTree;
+
+ TTreeNode *node = tree->Selected;
+ if (node) {
+ if (node->Parent) {
+ if (ist)
+ sourceDir = "./sources/" + ist->Source;
+ else sourceDir = getLocalDir();
+ SWMgr *mgr = new SWMgr(sourceDir.c_str());
+
+ module = mgr->config->Sections.find((const char *)node->Data);
+
+ if (module != mgr->config->Sections.end()) {
+ string targetVersion = "0.0";
+ string sourceVersion = "1.0";
+ SectionMap::iterator targetSection;
+
+ entry = module->second.find("Version");
+ if (entry != module->second.end())
+ sourceVersion = entry->second.c_str();
+
+ targetSection = manager->config->Sections.find(module->first);
+ if (targetSection != manager->config->Sections.end()) {
+ targetVersion = "1.0";
+ entry = targetSection->second.find("Version");
+ if (entry != targetSection->second.end())
+ targetVersion = entry->second;
+ }
+ if (VersionInfo(targetVersion.c_str()) < VersionInfo("1.0")) {
+ InfoForm->info = "\\pard{\\b * Additional Module Available for Install. } \\par ";
+ }
+ else {
+ InfoForm->info = "\\pard{\\b + Upgraded Module Available for Install.}\\par\\tab Current Version: \\tab " + targetVersion + " \\par\\tab Upgrade Version:\\tab " + sourceVersion + " \\par ";
+ bool changes = false;
+ for (entry = module->second.begin(); entry != module->second.end(); entry++) {
+ if (!strncmp(entry->first.c_str(), "History_", 8)) {
+ if (VersionInfo(&entry->first.c_str()[8]) > VersionInfo(targetVersion.c_str())) {
+ if (!changes) {
+ changes = true;
+ InfoForm->info += "\\par{\\b Changes: }\\par ";
+ }
+ InfoForm->info += "\\tab ";
+ InfoForm->info += entry->second.c_str();
+ InfoForm->info += "\\par ";
+ }
+ }
+ }
+ }
+
+ entry = module->second.find("About");
+ if (entry != module->second.end()) {
+ InfoForm->info += "\\par{\\b About: } \\par\\par ";
+ InfoForm->info += entry->second.c_str();
+ }
+ InfoForm->Caption = "Module Information";
+ InfoForm->ShowModal();
+ }
+ delete mgr;
+ }
+ }
+}
+//---------------------------------------------------------------------------
+
+void TMainForm::Exit1Click(GtkWidget *Sender)
+{
+ Close();
+}
+//---------------------------------------------------------------------------
+
+*/
+void TMainForm::deleteAllModules() {
+
+ SWMgr *mgr = new SWMgr();
+
+
+ int count = mgr->Modules.size();
+
+ if (!count)
+ return;
+
+// UninstallForm->Show();
+// UninstallForm->ProgressBar1->Max = count;
+// UninstallForm->ProgressBar1->Position = 0;
+
+ ModMap::iterator it;
+ for (it = mgr->Modules.begin(); it != mgr->Modules.end(); it++) {
+ string label = "Uninstalling: [";
+ label += it->second->Name();
+ label += "] ";
+ label += it->second->Description();
+// UninstallForm->Label1->Caption = label.c_str();
+// UninstallForm->Label1->Repaint();
+ removeModule(it->second->Name());
+// UninstallForm->ProgressBar1->Position = UninstallForm->ProgressBar1->Position + 1;
+// UninstallForm->ProgressBar1->Repaint();
+ }
+ delete mgr;
+// UninstallForm->Hide();
+ return;
+}
+
+void TMainForm::FormShow(GtkWidget *Sender) {
+
+/*
+ for (int i=0;i<=ParamCount();i++) {
+ if (LowerCase(ParamStr(i)) == "-uninstall") {
+ deleteAllModules();
+ Application->Terminate();
+ }
+ }
+
+*/
+ gtk_widget_show (main_window);
+
+ localTree->StateImages->Add(null_xpm, GTK_WIDGET(localTree->nativeControl));
+ localTree->StateImages->Add(arrow2r_xpm, GTK_WIDGET(localTree->nativeControl));
+ localTree->Images->Add(bookshut_xpm, GTK_WIDGET(localTree->nativeControl));
+ localTree->Images->Add(bulbon_xpm, GTK_WIDGET(localTree->nativeControl));
+ localTree->Images->Add(fingerup_xpm, GTK_WIDGET(localTree->nativeControl));
+ localTree->Images->Add(bulblk_xpm, GTK_WIDGET(localTree->nativeControl));
+ localTree->Images->Add(upgrdlk_xpm, GTK_WIDGET(localTree->nativeControl));
+
+ TCustomImageList *im = new TCustomImageList(localTree); // cheeze
+ im->Add(sword_xpm, GTK_WIDGET(banner_panel));
+ im->Add(globe_xpm, GTK_WIDGET(banner_panel));
+ im->Add(arrow2r_xpm, GTK_WIDGET(banner_panel));
+
+ pixmap1 = GTK_WIDGET(im->GetPixmap(0));
+ gtk_widget_ref (pixmap1);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "pixmap1", pixmap1,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (pixmap1);
+ gtk_box_pack_start (GTK_BOX (banner_panel), pixmap1, FALSE, FALSE, 0);
+
+ label3 = gtk_label_new (_("Available "));
+ gtk_widget_ref (label3);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "label3", label3,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (label3);
+ gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar2), label3, NULL, NULL);
+
+ tmp_toolbar_icon = GTK_WIDGET(im->GetPixmap(1));
+ GlobeBtn = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar2),
+ GTK_TOOLBAR_CHILD_BUTTON,
+ NULL,
+ _("Mng Rmt Srcs"),
+ NULL, NULL,
+ tmp_toolbar_icon, NULL, NULL);
+ gtk_widget_ref (GlobeBtn);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "GlobeBtn", GlobeBtn,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (GlobeBtn);
+
+ label5 = gtk_label_new (_(" "));
+ gtk_widget_ref (label5);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "label5", label5,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (label5);
+ gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar2), label5, NULL, NULL);
+
+ pixmap2 = GTK_WIDGET(im->GetPixmap(2));
+ gtk_widget_ref (pixmap2);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "pixmap2", pixmap2,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (pixmap2);
+ gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar2), pixmap2, NULL, NULL);
+
+ label4 = gtk_label_new (_("Selected for Install"));
+ gtk_widget_ref (label4);
+ gtk_object_set_data_full (GTK_OBJECT (main_window), "label4", label4,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (label4);
+ gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar2), label4, NULL, NULL);
+
+ gtk_signal_connect (GTK_OBJECT (pixmap1), "button_press_event",
+ GTK_SIGNAL_FUNC (on_pixmap1_button_press_event),
+ NULL);
+ gtk_signal_connect (GTK_OBJECT (GlobeBtn), "clicked",
+ GTK_SIGNAL_FUNC (on_GlobeBtn_clicked),
+ NULL);
+
+ fillInstallTree();
+ fillSourceTree(getLocalDir(), localTree);
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/X11/InstallMgr/src/MainFrm.h b/apps/X11/InstallMgr/src/MainFrm.h
new file mode 100644
index 0000000..c7eefae
--- /dev/null
+++ b/apps/X11/InstallMgr/src/MainFrm.h
@@ -0,0 +1,169 @@
+//---------------------------------------------------------------------------
+#ifndef MainFrmH
+#define MainFrmH
+//---------------------------------------------------------------------------
+#include <swmgr.h>
+//#include <gnome.h>
+#include <TCustomImageList.h>
+#include <TTreeView.h>
+#include <TTreeNode.h>
+#include <TTreeNodes.h>
+
+
+#ifdef ENABLE_NLS
+# include <libintl.h>
+# undef _
+# define _(String) dgettext (PACKAGE, String)
+# ifdef gettext_noop
+# define N_(String) gettext_noop (String)
+# else
+# define N_(String) (String)
+# endif
+#else
+# define textdomain(String) (String)
+# define gettext(String) (String)
+# define dgettext(Domain,Message) (Message)
+# define dcgettext(Domain,Message,Type) (Message)
+# define bindtextdomain(Domain,Directory) (Domain)
+# define _(String) (String)
+# define N_(String) (String)
+#endif
+
+
+
+
+class VersionInfo {
+ public:
+ int major, minor, minor2, minor3;
+
+ VersionInfo(const char *version);
+ int compare(const VersionInfo &vi) const;
+ bool operator>(const VersionInfo &vi) const {return (compare(vi) > 0);}
+ bool operator<(const VersionInfo &vi) const {return (compare(vi) < 0);}
+ bool operator==(const VersionInfo &vi) const {return (compare(vi) == 0);}
+};
+
+
+class InstallSourceTab {
+public:
+ InstallSourceTab(GtkWidget *Owner, const char *confEnt, const char *type);
+ ~InstallSourceTab();
+ string Type;
+ string Source;
+ string Directory;
+ string Caption;
+ GtkWidget *tree;
+ SWMgr *mgr;
+};
+
+
+//---------------------------------------------------------------------------
+class TMainForm {
+ class TWebThread;
+ friend class TWebThread;
+
+ GtkAccelGroup *accel_group;
+ GtkWidget *menubar1;
+ GtkWidget *banner_panel;
+ guint tmp_key;
+ GtkWidget *file2;
+ GtkWidget *file2_menu;
+ GtkAccelGroup *file2_menu_accels;
+ GtkWidget *exit1;
+ GtkWidget *options1;
+ GtkWidget *options1_menu;
+ GtkAccelGroup *options1_menu_accels;
+ GtkWidget *local_path1;
+ GtkWidget *manage_remote_sources1;
+ GtkWidget *main_window;
+ GtkWidget *dock1;
+ GtkWidget *vbox1;
+ GtkWidget *pixmap1;
+ GtkWidget *hpaned1;
+ GtkWidget *vbox2;
+ GtkWidget *toolbar2;
+ GtkWidget *label3;
+ GtkWidget *tmp_toolbar_icon;
+ GtkWidget *GlobeBtn;
+ GtkWidget *label5;
+ GtkWidget *pixmap2;
+ GtkWidget *label4;
+ GtkWidget *notebook1;
+ GtkWidget *scrolledwindow3;
+ GtkWidget *viewport1;
+ GtkWidget *label1;
+ GtkWidget *toolbar3;
+ GtkWidget *InfoBtn;
+ GtkWidget *SelectBtn;
+ GtkWidget *SelectAllBtn;
+ GtkWidget *InstallBtn;
+ GtkWidget *vbox3;
+ GtkWidget *label2;
+ GtkWidget *scrolledwindow4;
+ GtkWidget *viewport2;
+ GtkWidget *toolbar4;
+ GtkWidget *RemoveBtn;
+ GtkWidget *appbar1;
+// GtkWidget *InstalledTree;
+ TTreeView *installTree;
+ TTreeView *localTree;
+ TCustomImageList *ImageList1;
+ TCustomImageList *ImageList2;
+
+public:
+ GtkWidget *localPathDlg;
+ void FormCreate(GtkWidget *Sender);
+ void LocalPath1Click(GtkWidget *Sender);
+ void LocalPath1Click_ok(GtkWidget *Sender);
+ void Button5Click(GtkWidget *Sender);
+ void Button6Click(GtkWidget *Sender);
+ void Button4Click(GtkWidget *Sender);
+ void Button2Click(GtkWidget *Sender);
+/*
+ void localTreeDblClick(GtkWidget *Sender);
+ void Image1Click(GtkWidget *Sender);
+ void SpeedButton1Click(GtkWidget *Sender);
+ void SpeedButton5Click(GtkWidget *Sender);
+ void Exit1Click(GtkWidget *Sender);
+*/
+ void FormShow(GtkWidget *Sender);
+
+ void refreshPageControl();
+
+private: // User declarations
+
+ SWMgr *manager;
+ SWConfig *installConf;
+ const char *getLocalDir();
+ void setLocalDir(const char *idir);
+ void fillAllSourceTrees();
+ void deleteAllModules();
+/*
+ void addSource(InstallSourceTab *ist);
+*/
+
+public: // User declarations
+ TMainForm(GtkWidget* Owner);
+ ~TMainForm();
+ int selectAll(TTreeView *tree, bool sel);
+ int removeModule(const char *modName);
+ int installModule(const char *modName, InstallSourceTab *ist = 0);
+ static int createParent(const char *pName);
+ int createPathAndFile(const char *fName);
+ int copyFile(const char *sourceFile, const char *targetFile);
+ int copyFileToCWD(const char *sourceDir, const char *fName);
+/*
+ void RefreshRemoteSource(GtkWidget *Sender);
+ int FTPCopy(InstallSourceTab *ist, const char *src, const char *dest, bool dirTransfer = false);
+*/
+ SWMgr *localMgr;
+
+protected:
+ virtual void fillInstallTree();
+ virtual void fillSourceTree(const char *sourceConf, TTreeView *tree);
+};
+
+//---------------------------------------------------------------------------
+extern TMainForm *MainForm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/X11/InstallMgr/src/Makefile b/apps/X11/InstallMgr/src/Makefile
new file mode 100644
index 0000000..e0f6e15
--- /dev/null
+++ b/apps/X11/InstallMgr/src/Makefile
@@ -0,0 +1,387 @@
+# Generated automatically from Makefile.in by configure.
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = ..
+prefix = /usr/local
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/lib
+infodir = ${prefix}/info
+mandir = ${prefix}/man
+includedir = ${prefix}/include
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/installmgr
+pkglibdir = $(libdir)/installmgr
+pkgincludedir = $(includedir)/installmgr
+
+top_builddir = ..
+
+ACLOCAL = aclocal -I macros
+AUTOCONF = autoconf
+AUTOMAKE = automake
+AUTOHEADER = autoheader
+
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL} $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_SCRIPT = ${INSTALL_PROGRAM}
+transform = s,x,x,
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+CATALOGS =
+CATOBJEXT = .gmo
+CC = gcc
+CXX = c++
+DATADIRNAME = share
+GENCAT =
+GMOFILES =
+GMSGFMT = /usr/bin/msgfmt
+GNOMEGNORBA_LIBS = -rdynamic -lgnorba -lORBitCosNaming -lORBit -lIIOP -lORBitutil -lnsl -lgnomeui -lart_lgpl -lgdk_imlib -lSM -lICE -lgtk -lgdk -lgmodule -lXi -lXext -lX11 -lgnome -lgnomesupport -lesd -laudiofile -lm -ldb1 -lglib -ldl
+GNOMEUI_LIBS = -rdynamic -lgnomeui -lart_lgpl -lgdk_imlib -lSM -lICE -lgtk -lgdk -lgmodule -lXi -lXext -lX11 -lgnome -lgnomesupport -lesd -laudiofile -lm -ldb1 -lglib -ldl
+GNOME_APPLETS_LIBS =
+GNOME_CAPPLET_LIBS =
+GNOME_CONFIG = /usr/bin/gnome-config
+GNOME_INCLUDEDIR = -I/usr/include -DNEED_GNOMESUPPORT_H -I/usr/lib/gnome-libs/include -I/usr/lib/glib/include -I/usr/X11R6/include
+GNOME_LIBDIR = -rdynamic -L/usr/lib -L/usr/X11R6/lib
+GNOME_LIBS = -lgnome -lgnomesupport -lesd -laudiofile -lm -ldb1 -lglib -ldl
+GNORBA_CFLAGS = -I/usr/include -DNEED_GNOMESUPPORT_H -I/usr/lib/gnome-libs/include -I/usr/lib/glib/include -I/usr/X11R6/include
+GNORBA_LIBS = -rdynamic -L/usr/lib -L/usr/X11R6/lib -lgnorba -lORBitCosNaming -lORBit -lIIOP -lORBitutil -lnsl -lgnomeui -lart_lgpl -lgdk_imlib -lSM -lICE -lgtk -lgdk -lgmodule -lXi -lXext -lX11 -lgnome -lgnomesupport -lesd -laudiofile -lm -ldb1 -lglib -ldl
+GTKXMHTML_LIBS = -rdynamic -lgtkxmhtml -lXpm -ljpeg -lpng -lz -lSM -lICE -lgtk -lgdk -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm
+GTK_CFLAGS = -I/usr/lib/glib/include -I/usr/X11R6/include
+GTK_CONFIG = /usr/bin/gtk-config
+GTK_LIBS = -lSM -lICE -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm
+GT_NO =
+GT_YES = #YES#
+INCLUDE_LOCALE_H = #include <locale.h>
+INSTOBJEXT = .mo
+INTLDEPS =
+INTLLIBS =
+INTLOBJS =
+MAKEINFO = makeinfo
+MKINSTALLDIRS = ./mkinstalldirs
+MSGFMT = /usr/bin/msgfmt
+ORBIT_CFLAGS = -I/usr/lib/glib/include -I/usr/include
+ORBIT_CONFIG = /usr/bin/orbit-config
+ORBIT_IDL = /usr/bin/orbit-idl
+ORBIT_LIBS = -L/usr/lib -lORBitCosNaming -lORBit -lIIOP -lORBitutil -lglib -lnsl -lm
+PACKAGE = installmgr
+PACKAGE_PIXMAPS_DIR = /usr/share/pixmaps/installmgr
+POFILES =
+POSUB = po
+PTHREAD_LIB = -lpthread
+RANLIB = ranlib
+USE_INCLUDED_LIBINTL = no
+USE_NLS = yes
+VERSION = 0.1
+XPM_LIBS = -lXpm
+ZVT_LIBS = -rdynamic -static -lzvt -lutil -lSM -lICE -lgtk -lgdk -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm
+cflags_set = yes
+cxxflags_set = @cxxflags_set@
+l =
+
+INCLUDES = -I$(top_srcdir)/intl -I/usr/lib/glib/include -I/usr/X11R6/include -I ../../../../include -I ../../VCL -static
+
+
+bin_PROGRAMS = installmgr
+
+installmgr_SOURCES = main.cpp callbacks.cpp callbacks.h MainFrm.cpp MainFrm.h
+
+# interface.c interface.h \
+# support.c support.h \
+
+installmgr_LDADD = -L../../../../lib -lVCL -lSM -lICE -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -static -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm $(INTLLIBS) -lsword -L ../../VCL -lz
+installmgr_LDFLAGS =
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES =
+PROGRAMS = $(bin_PROGRAMS)
+
+
+DEFS = -DHAVE_CONFIG_H -I. -I$(srcdir) -I..
+CPPFLAGS = -I/usr/lib/glib/include -I/usr/X11R6/include
+LDFLAGS =
+LIBS =
+installmgr_OBJECTS = main.o callbacks.o MainFrm.o
+installmgr_DEPENDENCIES = ../../VCL
+CXXFLAGS = -g -O2
+CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
+CFLAGS = -g -O2 -Wall -Wunused
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+DIST_COMMON = Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+DEP_FILES = .deps/MainFrm.P .deps/callbacks.P .deps/main.P
+SOURCES = $(installmgr_SOURCES)
+OBJECTS = $(installmgr_OBJECTS)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .cpp .o .s
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+mostlyclean-binPROGRAMS:
+
+clean-binPROGRAMS:
+ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+
+distclean-binPROGRAMS:
+
+maintainer-clean-binPROGRAMS:
+
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ if test -f $$p; then \
+ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
+ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ else :; fi; \
+ done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ list='$(bin_PROGRAMS)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ done
+
+.s.o:
+ $(COMPILE) -c $<
+
+.S.o:
+ $(COMPILE) -c $<
+
+mostlyclean-compile:
+ -rm -f *.o core *.core
+
+clean-compile:
+
+distclean-compile:
+ -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+installmgr: $(installmgr_OBJECTS) $(installmgr_DEPENDENCIES)
+ @rm -f installmgr
+ $(CXXLINK) $(installmgr_LDFLAGS) $(installmgr_OBJECTS) $(installmgr_LDADD) $(LIBS)
+.cpp.o:
+ $(CXXCOMPILE) -c $<
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = src
+
+distdir: $(DISTFILES)
+ here=`cd $(top_builddir) && pwd`; \
+ top_distdir=`cd $(top_distdir) && pwd`; \
+ distdir=`cd $(distdir) && pwd`; \
+ cd $(top_srcdir) \
+ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/Makefile
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+
+DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
+
+-include $(DEP_FILES)
+
+mostlyclean-depend:
+
+clean-depend:
+
+distclean-depend:
+ -rm -rf .deps
+
+maintainer-clean-depend:
+
+%.o: %.c
+ @echo '$(COMPILE) -c $<'; \
+ $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+ @-cp .deps/$(*F).pp .deps/$(*F).P; \
+ tr ' ' '\012' < .deps/$(*F).pp \
+ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+ >> .deps/$(*F).P; \
+ rm .deps/$(*F).pp
+
+%.lo: %.c
+ @echo '$(LTCOMPILE) -c $<'; \
+ $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+ @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
+ < .deps/$(*F).pp > .deps/$(*F).P; \
+ tr ' ' '\012' < .deps/$(*F).pp \
+ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+ >> .deps/$(*F).P; \
+ rm -f .deps/$(*F).pp
+
+%.o: %.cpp
+ @echo '$(CXXCOMPILE) -c $<'; \
+ $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+ @-cp .deps/$(*F).pp .deps/$(*F).P; \
+ tr ' ' '\012' < .deps/$(*F).pp \
+ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+ >> .deps/$(*F).P; \
+ rm .deps/$(*F).pp
+
+%.lo: %.cpp
+ @echo '$(LTCXXCOMPILE) -c $<'; \
+ $(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+ @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
+ < .deps/$(*F).pp > .deps/$(*F).P; \
+ tr ' ' '\012' < .deps/$(*F).pp \
+ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+ >> .deps/$(*F).P; \
+ rm -f .deps/$(*F).pp
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am: install-binPROGRAMS
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-binPROGRAMS
+uninstall: uninstall-am
+all-am: Makefile $(PROGRAMS)
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \
+ mostlyclean-tags mostlyclean-depend mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-binPROGRAMS clean-compile clean-tags clean-depend \
+ clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-binPROGRAMS distclean-compile distclean-tags \
+ distclean-depend distclean-generic clean-am
+
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-binPROGRAMS \
+ maintainer-clean-compile maintainer-clean-tags \
+ maintainer-clean-depend maintainer-clean-generic \
+ distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
+maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile tags mostlyclean-tags distclean-tags \
+clean-tags maintainer-clean-tags distdir mostlyclean-depend \
+distclean-depend clean-depend maintainer-clean-depend info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-redirect all-am all installdirs \
+mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/apps/X11/InstallMgr/src/Makefile.am b/apps/X11/InstallMgr/src/Makefile.am
new file mode 100644
index 0000000..0728ed5
--- /dev/null
+++ b/apps/X11/InstallMgr/src/Makefile.am
@@ -0,0 +1,20 @@
+## Process this file with automake to produce Makefile.in
+
+INCLUDES = \
+ -I$(top_srcdir)/intl \
+ @GTK_CFLAGS@ \
+ -I ../../../../include \
+ -I ../../VCL -static
+
+bin_PROGRAMS = installmgr
+
+installmgr_SOURCES = \
+ main.cpp \
+ callbacks.cpp callbacks.h \
+ MainFrm.cpp MainFrm.h
+# interface.c interface.h \
+# support.c support.h \
+
+installmgr_LDADD = -L../../../../lib -lVCL @GTK_LIBS@ $(INTLLIBS) -lsword -L ../../VCL -lz
+installmgr_LDFLAGS =
+
diff --git a/apps/X11/InstallMgr/src/Makefile.in b/apps/X11/InstallMgr/src/Makefile.in
new file mode 100644
index 0000000..e2ada23
--- /dev/null
+++ b/apps/X11/InstallMgr/src/Makefile.in
@@ -0,0 +1,387 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CXX = @CXX@
+DATADIRNAME = @DATADIRNAME@
+GENCAT = @GENCAT@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNOMEGNORBA_LIBS = @GNOMEGNORBA_LIBS@
+GNOMEUI_LIBS = @GNOMEUI_LIBS@
+GNOME_APPLETS_LIBS = @GNOME_APPLETS_LIBS@
+GNOME_CAPPLET_LIBS = @GNOME_CAPPLET_LIBS@
+GNOME_CONFIG = @GNOME_CONFIG@
+GNOME_INCLUDEDIR = @GNOME_INCLUDEDIR@
+GNOME_LIBDIR = @GNOME_LIBDIR@
+GNOME_LIBS = @GNOME_LIBS@
+GNORBA_CFLAGS = @GNORBA_CFLAGS@
+GNORBA_LIBS = @GNORBA_LIBS@
+GTKXMHTML_LIBS = @GTKXMHTML_LIBS@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_CONFIG = @GTK_CONFIG@
+GTK_LIBS = @GTK_LIBS@
+GT_NO = @GT_NO@
+GT_YES = @GT_YES@
+INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
+INSTOBJEXT = @INSTOBJEXT@
+INTLDEPS = @INTLDEPS@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+ORBIT_CFLAGS = @ORBIT_CFLAGS@
+ORBIT_CONFIG = @ORBIT_CONFIG@
+ORBIT_IDL = @ORBIT_IDL@
+ORBIT_LIBS = @ORBIT_LIBS@
+PACKAGE = @PACKAGE@
+PACKAGE_PIXMAPS_DIR = @PACKAGE_PIXMAPS_DIR@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PTHREAD_LIB = @PTHREAD_LIB@
+RANLIB = @RANLIB@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XPM_LIBS = @XPM_LIBS@
+ZVT_LIBS = @ZVT_LIBS@
+cflags_set = @cflags_set@
+cxxflags_set = @cxxflags_set@
+l = @l@
+
+INCLUDES = -I$(top_srcdir)/intl @GTK_CFLAGS@ -I ../../../../include -I ../../VCL -static
+
+
+bin_PROGRAMS = installmgr
+
+installmgr_SOURCES = main.cpp callbacks.cpp callbacks.h MainFrm.cpp MainFrm.h
+
+# interface.c interface.h \
+# support.c support.h \
+
+installmgr_LDADD = -L../../../../lib -lVCL @GTK_LIBS@ $(INTLLIBS) -lsword -L ../../VCL -lz
+installmgr_LDFLAGS =
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES =
+PROGRAMS = $(bin_PROGRAMS)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) -I..
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+installmgr_OBJECTS = main.o callbacks.o MainFrm.o
+installmgr_DEPENDENCIES = ../../VCL
+CXXFLAGS = @CXXFLAGS@
+CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+DIST_COMMON = Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+DEP_FILES = .deps/MainFrm.P .deps/callbacks.P .deps/main.P
+SOURCES = $(installmgr_SOURCES)
+OBJECTS = $(installmgr_OBJECTS)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .cpp .o .s
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+mostlyclean-binPROGRAMS:
+
+clean-binPROGRAMS:
+ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+
+distclean-binPROGRAMS:
+
+maintainer-clean-binPROGRAMS:
+
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ if test -f $$p; then \
+ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
+ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ else :; fi; \
+ done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ list='$(bin_PROGRAMS)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ done
+
+.s.o:
+ $(COMPILE) -c $<
+
+.S.o:
+ $(COMPILE) -c $<
+
+mostlyclean-compile:
+ -rm -f *.o core *.core
+
+clean-compile:
+
+distclean-compile:
+ -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+installmgr: $(installmgr_OBJECTS) $(installmgr_DEPENDENCIES)
+ @rm -f installmgr
+ $(CXXLINK) $(installmgr_LDFLAGS) $(installmgr_OBJECTS) $(installmgr_LDADD) $(LIBS)
+.cpp.o:
+ $(CXXCOMPILE) -c $<
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = src
+
+distdir: $(DISTFILES)
+ here=`cd $(top_builddir) && pwd`; \
+ top_distdir=`cd $(top_distdir) && pwd`; \
+ distdir=`cd $(distdir) && pwd`; \
+ cd $(top_srcdir) \
+ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/Makefile
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+
+DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
+
+-include $(DEP_FILES)
+
+mostlyclean-depend:
+
+clean-depend:
+
+distclean-depend:
+ -rm -rf .deps
+
+maintainer-clean-depend:
+
+%.o: %.c
+ @echo '$(COMPILE) -c $<'; \
+ $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+ @-cp .deps/$(*F).pp .deps/$(*F).P; \
+ tr ' ' '\012' < .deps/$(*F).pp \
+ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+ >> .deps/$(*F).P; \
+ rm .deps/$(*F).pp
+
+%.lo: %.c
+ @echo '$(LTCOMPILE) -c $<'; \
+ $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+ @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
+ < .deps/$(*F).pp > .deps/$(*F).P; \
+ tr ' ' '\012' < .deps/$(*F).pp \
+ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+ >> .deps/$(*F).P; \
+ rm -f .deps/$(*F).pp
+
+%.o: %.cpp
+ @echo '$(CXXCOMPILE) -c $<'; \
+ $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+ @-cp .deps/$(*F).pp .deps/$(*F).P; \
+ tr ' ' '\012' < .deps/$(*F).pp \
+ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+ >> .deps/$(*F).P; \
+ rm .deps/$(*F).pp
+
+%.lo: %.cpp
+ @echo '$(LTCXXCOMPILE) -c $<'; \
+ $(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+ @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
+ < .deps/$(*F).pp > .deps/$(*F).P; \
+ tr ' ' '\012' < .deps/$(*F).pp \
+ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+ >> .deps/$(*F).P; \
+ rm -f .deps/$(*F).pp
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am: install-binPROGRAMS
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-binPROGRAMS
+uninstall: uninstall-am
+all-am: Makefile $(PROGRAMS)
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \
+ mostlyclean-tags mostlyclean-depend mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-binPROGRAMS clean-compile clean-tags clean-depend \
+ clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-binPROGRAMS distclean-compile distclean-tags \
+ distclean-depend distclean-generic clean-am
+
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-binPROGRAMS \
+ maintainer-clean-compile maintainer-clean-tags \
+ maintainer-clean-depend maintainer-clean-generic \
+ distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
+maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile tags mostlyclean-tags distclean-tags \
+clean-tags maintainer-clean-tags distdir mostlyclean-depend \
+distclean-depend clean-depend maintainer-clean-depend info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-redirect all-am all installdirs \
+mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/apps/X11/InstallMgr/src/RemoteMntFrm.cpp b/apps/X11/InstallMgr/src/RemoteMntFrm.cpp
new file mode 100644
index 0000000..a6b04b3
--- /dev/null
+++ b/apps/X11/InstallMgr/src/RemoteMntFrm.cpp
@@ -0,0 +1,145 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "RemoteMntFrm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+
+TRemoteMntForm *RemoteMntForm;
+
+
+class TRemoteSource : public TObject {
+public:
+ string name;
+ string machine;
+ string dir;
+ TRemoteSource(const char *confEnt) {
+ char *buf = new char [ strlen(confEnt) + 1 ];
+
+ strcpy(buf, confEnt);
+
+ name = strtok(buf, "|");
+ machine = strtok(0, "|");
+ dir = strtok(0, "|");
+ delete [] buf;
+ }
+ string getConfEnt() {
+ return name +"|" + machine + "|" + dir;
+ }
+};
+
+
+//---------------------------------------------------------------------------
+__fastcall TRemoteMntForm::TRemoteMntForm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TRemoteMntForm::FormShow(TObject *Sender)
+{
+ ConfigEntMap::iterator loop, end;
+ config = new SWConfig("./InstallMgr.conf");
+ ListBox1->Clear();
+ loop = config->Sections["Sources"].lower_bound("FTPSource");
+ end = config->Sections["Sources"].upper_bound("FTPSource");
+ while (loop != end) {
+ TRemoteSource *rs = new TRemoteSource(loop->second.c_str());
+ ListBox1->Items->AddObject(rs->name.c_str(), rs);
+ loop++;
+ }
+ ListBox1->ItemIndex = 0;
+ ListBox1Click(0);
+}
+//---------------------------------------------------------------------------
+void __fastcall TRemoteMntForm::FormClose(TObject *Sender,
+ TCloseAction &Action)
+{
+ delete config;
+}
+
+
+void __fastcall TRemoteMntForm::SpeedButton4Click(TObject *Sender)
+{
+ ModalResult = mrCancel;
+}
+
+
+void __fastcall TRemoteMntForm::ListBox1Click(TObject *Sender)
+{
+ if (ListBox1->ItemIndex >= 0) {
+ TRemoteSource *rs = (TRemoteSource *)ListBox1->Items->Objects[ListBox1->ItemIndex];
+
+ NameEdit->Text = rs->name.c_str();
+ MachineEdit->Text = rs->machine.c_str();
+ DirEdit->Text = rs->dir.c_str();
+ }
+ else {
+ NameEdit->Text = "";
+ MachineEdit->Text = "";
+ DirEdit->Text = "";
+ }
+}
+
+
+void __fastcall TRemoteMntForm::NameEditChange(TObject *Sender)
+{
+ if (ListBox1->ItemIndex < 0)
+ return;
+ TRemoteSource *rs = (TRemoteSource *)ListBox1->Items->Objects[ListBox1->ItemIndex];
+ rs->name = NameEdit->Text.c_str();
+ ListBox1->Items->Strings[ListBox1->ItemIndex] = rs->name.c_str();
+}
+
+
+void __fastcall TRemoteMntForm::MachineEditChange(TObject *Sender)
+{
+ if (ListBox1->ItemIndex < 0)
+ return;
+ TRemoteSource *rs = (TRemoteSource *)ListBox1->Items->Objects[ListBox1->ItemIndex];
+ rs->machine = MachineEdit->Text.c_str();
+}
+
+
+void __fastcall TRemoteMntForm::DirEditChange(TObject *Sender)
+{
+ if (ListBox1->ItemIndex < 0)
+ return;
+ TRemoteSource *rs = (TRemoteSource *)ListBox1->Items->Objects[ListBox1->ItemIndex];
+ rs->dir = DirEdit->Text.c_str();
+}
+
+void __fastcall TRemoteMntForm::SpeedButton2Click(TObject *Sender)
+{
+ if (ListBox1->ItemIndex < 0)
+ return;
+ int delItem = ListBox1->ItemIndex;
+ ListBox1->Items->Delete(delItem);
+ ListBox1->ItemIndex = (delItem < ListBox1->Items->Count) ? delItem : delItem - 1;
+ ListBox1Click(0);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TRemoteMntForm::SpeedButton1Click(TObject *Sender)
+{
+ TRemoteSource *rs = new TRemoteSource("[New Remote Site]|ftp.domain.org|/pub/sword/");
+ ListBox1->ItemIndex = ListBox1->Items->AddObject(rs->name.c_str(), rs);
+
+ ListBox1Click(0);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TRemoteMntForm::SpeedButton3Click(TObject *Sender)
+{
+ TRemoteSource *rs;
+ config->Sections["Sources"].erase("FTPSource");
+ for (int i = 0; i < ListBox1->Items->Count; i++) {
+ rs = (TRemoteSource *)ListBox1->Items->Objects[i];
+ config->Sections["Sources"].insert(ConfigEntMap::value_type("FTPSource", rs->getConfEnt().c_str()));
+ }
+ config->Save();
+ ModalResult = mrOk;
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/X11/InstallMgr/src/RemoteMntFrm.h b/apps/X11/InstallMgr/src/RemoteMntFrm.h
new file mode 100644
index 0000000..81060e1
--- /dev/null
+++ b/apps/X11/InstallMgr/src/RemoteMntFrm.h
@@ -0,0 +1,49 @@
+//---------------------------------------------------------------------------
+#ifndef RemoteMntFrmH
+#define RemoteMntFrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <Buttons.hpp>
+#include <ExtCtrls.hpp>
+#include <swconfig.h>
+//---------------------------------------------------------------------------
+class TRemoteMntForm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TPanel *Panel2;
+ TPanel *Panel3;
+ TListBox *ListBox1;
+ TSpeedButton *SpeedButton1;
+ TSpeedButton *SpeedButton2;
+ TEdit *NameEdit;
+ TEdit *MachineEdit;
+ TEdit *DirEdit;
+ TPanel *Panel4;
+ TSpeedButton *SpeedButton3;
+ TSpeedButton *SpeedButton4;
+ TLabel *Label1;
+ TLabel *Label2;
+ TLabel *Label3;
+ void __fastcall FormShow(TObject *Sender);
+ void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
+ void __fastcall NameEditChange(TObject *Sender);
+ void __fastcall SpeedButton4Click(TObject *Sender);
+ void __fastcall ListBox1Click(TObject *Sender);
+ void __fastcall MachineEditChange(TObject *Sender);
+ void __fastcall DirEditChange(TObject *Sender);
+ void __fastcall SpeedButton2Click(TObject *Sender);
+ void __fastcall SpeedButton1Click(TObject *Sender);
+ void __fastcall SpeedButton3Click(TObject *Sender);
+private: // User declarations
+ SWConfig *config;
+public: // User declarations
+ __fastcall TRemoteMntForm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TRemoteMntForm *RemoteMntForm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/X11/InstallMgr/src/StatusFrm.cpp b/apps/X11/InstallMgr/src/StatusFrm.cpp
new file mode 100644
index 0000000..36911d2
--- /dev/null
+++ b/apps/X11/InstallMgr/src/StatusFrm.cpp
@@ -0,0 +1,175 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "StatusFrm.h"
+#include "MainFrm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TStatusForm *StatusForm;
+//---------------------------------------------------------------------------
+__fastcall TStatusForm::TStatusForm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TStatusForm::FormShow(TObject *Sender)
+{
+ abort = false;
+ ftpThread = new TFTPThread(ist, src.c_str(), dest.c_str(), dirTransfer, true);
+ ftpThread->OnTerminate = Cleanup;
+ ftpThread->Resume();
+}
+//---------------------------------------------------------------------------
+__fastcall TStatusForm::TFTPThread::TFTPThread(InstallSourceTab *iist, const char *isrc, const char *idest, bool idirTransfer, bool CreateSuspended)
+ : TThread(CreateSuspended)
+{
+ ist = iist;
+ src = isrc;
+ dest = idest;
+ dirTransfer = idirTransfer;
+ Priority = tpNormal;
+ FreeOnTerminate = true;
+ Synchronize((TThreadMethod)&CreateFTPObject);
+}
+
+__fastcall TStatusForm::TFTPThread::~TFTPThread()
+{
+ delete FTPLink;
+}
+
+
+void __fastcall TStatusForm::TFTPThread::Execute()
+{
+ Synchronize((TThreadMethod)&PreConnect);
+ FTPLink->OnPacketRecvd = FTPLinkPacketRecvd;
+ FTPLink->ParseList = true;
+ FTPLink->Host = ist->Source.c_str();
+ FTPLink->Port = 21;
+ FTPLink->UserID = "ftp";
+ FTPLink->Password = "installmgr@user.com";
+
+ try {
+ FTPLink->Connect();
+ FTPLink->Mode(MODE_IMAGE);
+ FTPLink->ChangeDir(ist->Directory.c_str());
+ }
+ catch(...) {
+ StatusForm->Button1Click(0); // abort thread
+ }
+
+ if (!Terminated) {
+ if (dirTransfer) {
+ FTPLink->ChangeDir(src.c_str());
+ fileList.clear();
+ FTPLink->List();
+ int fileCount = FTPLink->FTPDirectoryList->name->Count;
+ for (int i = 0; i < fileCount; i++) {
+ if (FTPLink->FTPDirectoryList->Attribute->Strings[i].c_str()[0] != 'd') {
+ buffer = dest + "/" + FTPLink->FTPDirectoryList->name->Strings[i].c_str();
+ buffer2 = "Downloading (";
+ buffer2 += IntToStr(i+1).c_str();
+ buffer2 += " of ";
+ buffer2 += IntToStr(fileCount).c_str();
+ buffer2 += "): ";
+ buffer2 += FTPLink->FTPDirectoryList->name->Strings[i].c_str();
+ // SWLog::systemlog->LogInformation("%s", buffer.c_str());
+ TMainForm::createParent(buffer.c_str()); // make sure parent directory exists
+ Synchronize((TThreadMethod)&PreDownload1);
+ try {
+ FTPLink->Download(FTPLink->FTPDirectoryList->name->Strings[i].c_str(), buffer.c_str());
+ }
+ catch(...) {}
+ if (Terminated)
+ break;
+ }
+ }
+
+ }
+ else {
+ Synchronize((TThreadMethod)&PreDownload2);
+ FTPLink->Download(src.c_str(), dest.c_str());
+ }
+ try {
+ FTPLink->Disconnect();
+ }
+ catch(...){}
+ }
+}
+
+
+void __fastcall TStatusForm::TFTPThread::FTPLinkPacketRecvd(TObject *Sender)
+{
+ Synchronize((TThreadMethod)&UpdateBytes);
+}
+
+
+void __fastcall TStatusForm::TFTPThread::UpdateBytes(void)
+{
+ StatusForm->statusBar->Caption = IntToStr(FTPLink->BytesRecvd) + " bytes out of " + IntToStr(FTPLink->BytesTotal) + " transferred (" + IntToStr((int)((float)(FTPLink->BytesRecvd + 1) / (float)(FTPLink->BytesTotal + 1) * 100)) + "%)";
+ StatusForm->statusBar->Repaint();
+}
+
+
+void __fastcall TStatusForm::TFTPThread::CreateFTPObject(void)
+{
+ FTPLink = new TNMFTP(0);
+}
+
+
+void __fastcall TStatusForm::TFTPThread::PreConnect(void)
+{
+ buffer = "Connecting to server at ";
+ buffer += ist->Source.c_str();
+ buffer += "...";
+ StatusForm->actionBar->Caption = buffer.c_str();
+ StatusForm->statusBar->Caption = "";
+ StatusForm->Repaint();
+}
+
+
+void __fastcall TStatusForm::TFTPThread::PreDownload1(void)
+{
+// SWLog::systemlog->LogInformation("Creating parent dir: %s", buffer.c_str());
+// SWLog::systemlog->LogInformation("Return: %d", ret);
+ StatusForm->actionBar->Caption = buffer2.c_str();
+ StatusForm->statusBar->Caption = "";
+ StatusForm->Repaint();
+}
+
+
+void __fastcall TStatusForm::TFTPThread::PreDownload2(void)
+{
+ buffer = "Downloading: ";
+ buffer += src.c_str();
+ StatusForm->actionBar->Caption = buffer.c_str();
+ StatusForm->statusBar->Caption = "";
+ StatusForm->Repaint();
+ MainForm->createParent(dest.c_str()); // make sure parent directory exists
+}
+
+
+void __fastcall TStatusForm::Cleanup(TObject *Sender)
+//void __fastcall TStatusForm::TFTPThread::Cleanup()
+{
+ if (abort)
+ StatusForm->ModalResult = mrCancel;
+ else StatusForm->ModalResult = mrOk;
+// StatusForm->Close();
+}
+
+void __fastcall TStatusForm::FormClose(TObject *Sender, TCloseAction &Action)
+{
+ MainForm->SetFocus();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TStatusForm::Button1Click(TObject *Sender)
+{
+ abort = true;
+ ftpThread->Terminate();
+ ftpThread->FTPLink->Abort();
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/X11/InstallMgr/src/StatusFrm.h b/apps/X11/InstallMgr/src/StatusFrm.h
new file mode 100644
index 0000000..fdf7800
--- /dev/null
+++ b/apps/X11/InstallMgr/src/StatusFrm.h
@@ -0,0 +1,61 @@
+//---------------------------------------------------------------------------
+#ifndef StatusFrmH
+#define StatusFrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+#include <NMFtp.hpp>
+#include "MainFrm.h"
+//---------------------------------------------------------------------------
+class TStatusForm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TPanel *Panel2;
+ TButton *Button1;
+ TPanel *statusBar;
+ TPanel *Panel3;
+ TPanel *actionBar;
+ void __fastcall FormShow(TObject *Sender);
+ void __fastcall Cleanup(TObject *Sender);
+ void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
+ void __fastcall Button1Click(TObject *Sender);
+private: // User declarations
+ class TFTPThread : public TThread {
+ bool abort;
+ InstallSourceTab *ist;
+ string src;
+ string dest;
+ string buffer;
+ string buffer2;
+ bool dirTransfer;
+ protected:
+ void __fastcall Execute();
+ public:
+ TNMFTP *FTPLink;
+ list<string> fileList;
+ __fastcall TFTPThread(InstallSourceTab *iist, const char *isrc, const char *idest, bool idirTransfer = false, bool CreateSuspended = false);
+ __fastcall TFTPThread::~TFTPThread();
+ void __fastcall FTPLinkPacketRecvd(TObject *Sender);
+ void __fastcall CreateFTPObject(void);
+ void __fastcall UpdateBytes(void);
+ void __fastcall PreConnect(void);
+ void __fastcall PreDownload1(void);
+ void __fastcall PreDownload2(void);
+// void __fastcall Cleanup(void);
+ } *ftpThread;
+public: // User declarations
+ InstallSourceTab *ist;
+ string src;
+ string dest;
+ bool dirTransfer;
+ bool abort;
+ __fastcall TStatusForm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TStatusForm *StatusForm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/X11/InstallMgr/src/callbacks.cpp b/apps/X11/InstallMgr/src/callbacks.cpp
new file mode 100644
index 0000000..99ccd44
--- /dev/null
+++ b/apps/X11/InstallMgr/src/callbacks.cpp
@@ -0,0 +1,154 @@
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <gtk/gtk.h>
+
+extern "C" {
+#include "callbacks.h"
+}
+//#include "interface.h"
+//#include "support.h"
+#include <MainFrm.h>
+
+
+void
+on_exit1_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+gtk_main_quit();
+}
+
+
+void
+on_local_path1_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+ MainForm->LocalPath1Click(0);
+}
+
+
+void
+on_manage_remote_sources1_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+
+}
+
+
+gboolean
+on_pixmap1_button_press_event (GtkWidget *widget,
+ GdkEventButton *event,
+ gpointer user_data)
+{
+
+ return FALSE;
+}
+
+gboolean
+on_localTreeButtonPress (GtkWidget *widget,
+ GdkEventButton *event,
+ gpointer user_data)
+{
+// printf("button: %d\n", event->button);
+ if (event->button == 2)
+ MainForm->Button5Click(widget);
+ return FALSE;
+}
+
+
+void
+on_GlobeBtn_clicked (GtkButton *button,
+ gpointer user_data)
+{
+
+}
+
+
+void
+on_InfoBtn_clicked (GtkButton *button,
+ gpointer user_data)
+{
+
+}
+
+
+void
+on_SelectBtn_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ MainForm->Button5Click(GTK_WIDGET(button));
+}
+
+
+void
+on_SelectAllBtn_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ MainForm->Button6Click(GTK_WIDGET(button));
+}
+
+
+void
+on_InstallBtn_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ MainForm->Button2Click(GTK_WIDGET(button));
+}
+
+
+void
+on_RemoveBtn_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ MainForm->Button4Click(GTK_WIDGET(button));
+}
+
+
+void
+on_OKBtn_clicked (GtkButton *button,
+ gpointer user_data)
+{
+
+}
+
+
+void
+on_AddBtn_clicked (GtkButton *button,
+ gpointer user_data)
+{
+
+}
+
+
+void
+on_NameText_changed (GtkEditable *editable,
+ gpointer user_data)
+{
+
+}
+
+
+void
+on_SaveBtn_clicked (GtkButton *button,
+ gpointer user_data)
+{
+
+}
+
+
+void
+on_CancelBtn_clicked (GtkButton *button,
+ gpointer user_data)
+{
+
+}
+
+
+void
+on_TryBtn_clicked (GtkButton *button,
+ gpointer user_data)
+{
+
+}
+
diff --git a/apps/X11/InstallMgr/src/callbacks.h b/apps/X11/InstallMgr/src/callbacks.h
new file mode 100644
index 0000000..dbab442
--- /dev/null
+++ b/apps/X11/InstallMgr/src/callbacks.h
@@ -0,0 +1,72 @@
+#include <gtk/gtk.h>
+
+
+void
+on_exit1_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_local_path1_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_manage_remote_sources1_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+gboolean
+on_pixmap1_button_press_event (GtkWidget *widget,
+ GdkEventButton *event,
+ gpointer user_data);
+
+gboolean
+on_localTreeButtonPress (GtkWidget *widget,
+ GdkEventButton *event,
+ gpointer user_data);
+
+void
+on_GlobeBtn_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_InfoBtn_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_SelectBtn_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_SelectAllBtn_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_InstallBtn_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_RemoveBtn_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_OKBtn_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_AddBtn_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_NameText_changed (GtkEditable *editable,
+ gpointer user_data);
+
+void
+on_SaveBtn_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_CancelBtn_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_TryBtn_clicked (GtkButton *button,
+ gpointer user_data);
diff --git a/apps/X11/InstallMgr/src/cipherfrm.cpp b/apps/X11/InstallMgr/src/cipherfrm.cpp
new file mode 100644
index 0000000..5b77797
--- /dev/null
+++ b/apps/X11/InstallMgr/src/cipherfrm.cpp
@@ -0,0 +1,67 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "cipherfrm.h"
+#include <swmgr.h>
+#include <swconfig.h>
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TCipherForm *CipherForm;
+//---------------------------------------------------------------------------
+__fastcall TCipherForm::TCipherForm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TCipherForm::Button2Click(TObject *Sender)
+{
+ SectionMap::iterator section;
+ ConfigEntMap::iterator entry;
+ SWConfig *modconf = new SWConfig(confFile.c_str());
+ string tmpBuf;
+
+ section = modconf->Sections.find(modName);
+ if (section != modconf->Sections.end()) {
+ entry = section->second.find("CipherKey");
+ if (entry != section->second.end()) {
+ entry->second = CipherForm->cipherEdit->Text.c_str();
+ modconf->Save();
+ delete modconf; // close file
+ modconf = 0;
+ SWMgr *mgr = new SWMgr();
+ SWModule *mod = mgr->Modules[modName];
+ mod->SetKey("Ipet 2:12");
+ tmpBuf = mod->StripText();
+ mod->SetKey("gen 1:10");
+ tmpBuf += "\r\n\r\n";
+ tmpBuf += mod->StripText();
+ Memo1->Text = tmpBuf.c_str();
+ delete mgr;
+ }
+ }
+ if (modconf)
+ delete modconf;
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TCipherForm::FormShow(TObject *Sender)
+{
+ string tmpCaption;
+ tmpCaption = "Cipher Key: [";
+ tmpCaption += modName;
+ tmpCaption += "]";
+ Caption = tmpCaption.c_str();
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TCipherForm::FormClose(TObject *Sender,
+ TCloseAction &Action)
+{
+ Memo1->Text = "";
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/X11/InstallMgr/src/cipherfrm.h b/apps/X11/InstallMgr/src/cipherfrm.h
new file mode 100644
index 0000000..4fcd722
--- /dev/null
+++ b/apps/X11/InstallMgr/src/cipherfrm.h
@@ -0,0 +1,36 @@
+//---------------------------------------------------------------------------
+#ifndef cipherfrmH
+#define cipherfrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+#include <string>
+//---------------------------------------------------------------------------
+class TCipherForm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TPanel *Panel2;
+ TPanel *Panel3;
+ TLabel *Label1;
+ TLabel *Label2;
+ TEdit *cipherEdit;
+ TMemo *Memo1;
+ TButton *Button1;
+ TButton *Button2;
+ void __fastcall Button2Click(TObject *Sender);
+ void __fastcall FormShow(TObject *Sender);
+ void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
+private: // User declarations
+public: // User declarations
+ std::string confFile;
+ std::string modName;
+ __fastcall TCipherForm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TCipherForm *CipherForm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/X11/InstallMgr/src/interface.c b/apps/X11/InstallMgr/src/interface.c
new file mode 100644
index 0000000..b5ef755
--- /dev/null
+++ b/apps/X11/InstallMgr/src/interface.c
@@ -0,0 +1,510 @@
+/*
+ * DO NOT EDIT THIS FILE - it is generated by Glade.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <string.h>
+
+#include <gnome.h>
+
+#include "callbacks.h"
+#include "interface.h"
+#include "support.h"
+
+
+GtkWidget*
+create_InfoFrm (void)
+{
+ GtkWidget *InfoFrm;
+ GtkWidget *dialog_vbox1;
+ GtkWidget *scrolledwindow1;
+ GtkWidget *InfoText;
+ GtkWidget *dialog_action_area1;
+ GtkWidget *OKBtn;
+
+ InfoFrm = gnome_dialog_new (_("About Module"), NULL);
+ gtk_object_set_data (GTK_OBJECT (InfoFrm), "InfoFrm", InfoFrm);
+ gtk_window_set_modal (GTK_WINDOW (InfoFrm), TRUE);
+ gtk_window_set_policy (GTK_WINDOW (InfoFrm), FALSE, FALSE, FALSE);
+
+ dialog_vbox1 = GNOME_DIALOG (InfoFrm)->vbox;
+ gtk_object_set_data (GTK_OBJECT (InfoFrm), "dialog_vbox1", dialog_vbox1);
+ gtk_widget_show (dialog_vbox1);
+
+ scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
+ gtk_widget_ref (scrolledwindow1);
+ gtk_object_set_data_full (GTK_OBJECT (InfoFrm), "scrolledwindow1", scrolledwindow1,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (scrolledwindow1);
+ gtk_box_pack_start (GTK_BOX (dialog_vbox1), scrolledwindow1, TRUE, TRUE, 0);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
+
+ InfoText = gtk_text_new (NULL, NULL);
+ gtk_widget_ref (InfoText);
+ gtk_object_set_data_full (GTK_OBJECT (InfoFrm), "InfoText", InfoText,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (InfoText);
+ gtk_container_add (GTK_CONTAINER (scrolledwindow1), InfoText);
+
+ dialog_action_area1 = GNOME_DIALOG (InfoFrm)->action_area;
+ gtk_object_set_data (GTK_OBJECT (InfoFrm), "dialog_action_area1", dialog_action_area1);
+ gtk_widget_show (dialog_action_area1);
+ gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_SPREAD);
+ gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area1), 8);
+
+ gnome_dialog_append_button (GNOME_DIALOG (InfoFrm), GNOME_STOCK_BUTTON_OK);
+ OKBtn = g_list_last (GNOME_DIALOG (InfoFrm)->buttons)->data;
+ gtk_widget_ref (OKBtn);
+ gtk_object_set_data_full (GTK_OBJECT (InfoFrm), "OKBtn", OKBtn,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (OKBtn);
+ GTK_WIDGET_SET_FLAGS (OKBtn, GTK_CAN_DEFAULT);
+
+ gtk_signal_connect (GTK_OBJECT (OKBtn), "clicked",
+ GTK_SIGNAL_FUNC (on_OKBtn_clicked),
+ NULL);
+
+ return InfoFrm;
+}
+
+GtkWidget*
+create_fileselection1 (void)
+{
+ GtkWidget *fileselection1;
+ GtkWidget *ok_button1;
+ GtkWidget *cancel_button1;
+
+ fileselection1 = gtk_file_selection_new (_("Select File"));
+ gtk_object_set_data (GTK_OBJECT (fileselection1), "fileselection1", fileselection1);
+ gtk_container_set_border_width (GTK_CONTAINER (fileselection1), 10);
+
+ ok_button1 = GTK_FILE_SELECTION (fileselection1)->ok_button;
+ gtk_object_set_data (GTK_OBJECT (fileselection1), "ok_button1", ok_button1);
+ gtk_widget_show (ok_button1);
+ GTK_WIDGET_SET_FLAGS (ok_button1, GTK_CAN_DEFAULT);
+
+ cancel_button1 = GTK_FILE_SELECTION (fileselection1)->cancel_button;
+ gtk_object_set_data (GTK_OBJECT (fileselection1), "cancel_button1", cancel_button1);
+ gtk_widget_show (cancel_button1);
+ GTK_WIDGET_SET_FLAGS (cancel_button1, GTK_CAN_DEFAULT);
+
+ return fileselection1;
+}
+
+GtkWidget*
+create_RemoteMntFrm (void)
+{
+ GtkWidget *RemoteMntFrm;
+ GtkWidget *dialog_vbox2;
+ GtkWidget *hbox2;
+ GtkWidget *vbox4;
+ GtkWidget *SiteList;
+ GtkWidget *hbox3;
+ GtkWidget *hbox4;
+ GtkWidget *pixmap4;
+ GtkWidget *AddBtn;
+ GtkWidget *hbox5;
+ GtkWidget *pixmap5;
+ GtkWidget *RemoveBtn;
+ GtkWidget *vbox5;
+ GtkWidget *vbox6;
+ GtkWidget *label6;
+ GtkWidget *NameText;
+ GtkWidget *vbox7;
+ GtkWidget *label7;
+ GtkWidget *MachineText;
+ GtkWidget *vbox8;
+ GtkWidget *label8;
+ GtkWidget *RepositoryText;
+ GtkWidget *dialog_action_area2;
+ GtkWidget *SaveBtn;
+ GtkWidget *CancelBtn;
+
+ RemoteMntFrm = gnome_dialog_new (_("Manage Remote Sites"), NULL);
+ gtk_object_set_data (GTK_OBJECT (RemoteMntFrm), "RemoteMntFrm", RemoteMntFrm);
+ gtk_window_set_modal (GTK_WINDOW (RemoteMntFrm), TRUE);
+ gtk_window_set_policy (GTK_WINDOW (RemoteMntFrm), FALSE, FALSE, FALSE);
+
+ dialog_vbox2 = GNOME_DIALOG (RemoteMntFrm)->vbox;
+ gtk_object_set_data (GTK_OBJECT (RemoteMntFrm), "dialog_vbox2", dialog_vbox2);
+ gtk_widget_show (dialog_vbox2);
+
+ hbox2 = gtk_hbox_new (FALSE, 0);
+ gtk_widget_ref (hbox2);
+ gtk_object_set_data_full (GTK_OBJECT (RemoteMntFrm), "hbox2", hbox2,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (hbox2);
+ gtk_box_pack_start (GTK_BOX (dialog_vbox2), hbox2, TRUE, TRUE, 0);
+
+ vbox4 = gtk_vbox_new (FALSE, 0);
+ gtk_widget_ref (vbox4);
+ gtk_object_set_data_full (GTK_OBJECT (RemoteMntFrm), "vbox4", vbox4,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (vbox4);
+ gtk_box_pack_start (GTK_BOX (hbox2), vbox4, TRUE, TRUE, 0);
+
+ SiteList = gtk_list_new ();
+ gtk_widget_ref (SiteList);
+ gtk_object_set_data_full (GTK_OBJECT (RemoteMntFrm), "SiteList", SiteList,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (SiteList);
+ gtk_box_pack_start (GTK_BOX (vbox4), SiteList, TRUE, TRUE, 0);
+ gtk_widget_set_usize (SiteList, -2, 140);
+
+ hbox3 = gtk_hbox_new (FALSE, 0);
+ gtk_widget_ref (hbox3);
+ gtk_object_set_data_full (GTK_OBJECT (RemoteMntFrm), "hbox3", hbox3,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (hbox3);
+ gtk_box_pack_start (GTK_BOX (vbox4), hbox3, TRUE, TRUE, 0);
+
+ hbox4 = gtk_hbox_new (FALSE, 0);
+ gtk_widget_ref (hbox4);
+ gtk_object_set_data_full (GTK_OBJECT (RemoteMntFrm), "hbox4", hbox4,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (hbox4);
+ gtk_box_pack_start (GTK_BOX (hbox3), hbox4, FALSE, FALSE, 0);
+
+ pixmap4 = create_pixmap (RemoteMntFrm, "installmgr/filenew.xpm", FALSE);
+ gtk_widget_ref (pixmap4);
+ gtk_object_set_data_full (GTK_OBJECT (RemoteMntFrm), "pixmap4", pixmap4,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (pixmap4);
+ gtk_box_pack_start (GTK_BOX (hbox4), pixmap4, TRUE, TRUE, 0);
+
+ AddBtn = gtk_button_new_with_label (_("Add"));
+ gtk_widget_ref (AddBtn);
+ gtk_object_set_data_full (GTK_OBJECT (RemoteMntFrm), "AddBtn", AddBtn,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (AddBtn);
+ gtk_box_pack_start (GTK_BOX (hbox4), AddBtn, FALSE, FALSE, 0);
+
+ hbox5 = gtk_hbox_new (FALSE, 0);
+ gtk_widget_ref (hbox5);
+ gtk_object_set_data_full (GTK_OBJECT (RemoteMntFrm), "hbox5", hbox5,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (hbox5);
+ gtk_box_pack_start (GTK_BOX (hbox3), hbox5, TRUE, TRUE, 0);
+
+ pixmap5 = create_pixmap (RemoteMntFrm, "installmgr/trash.xpm", FALSE);
+ gtk_widget_ref (pixmap5);
+ gtk_object_set_data_full (GTK_OBJECT (RemoteMntFrm), "pixmap5", pixmap5,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (pixmap5);
+ gtk_box_pack_start (GTK_BOX (hbox5), pixmap5, TRUE, TRUE, 0);
+
+ RemoveBtn = gtk_button_new_with_label (_("Remove"));
+ gtk_widget_ref (RemoveBtn);
+ gtk_object_set_data_full (GTK_OBJECT (RemoteMntFrm), "RemoveBtn", RemoveBtn,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (RemoveBtn);
+ gtk_box_pack_start (GTK_BOX (hbox5), RemoveBtn, FALSE, FALSE, 0);
+
+ vbox5 = gtk_vbox_new (FALSE, 0);
+ gtk_widget_ref (vbox5);
+ gtk_object_set_data_full (GTK_OBJECT (RemoteMntFrm), "vbox5", vbox5,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (vbox5);
+ gtk_box_pack_start (GTK_BOX (hbox2), vbox5, TRUE, TRUE, 0);
+
+ vbox6 = gtk_vbox_new (FALSE, 0);
+ gtk_widget_ref (vbox6);
+ gtk_object_set_data_full (GTK_OBJECT (RemoteMntFrm), "vbox6", vbox6,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (vbox6);
+ gtk_box_pack_start (GTK_BOX (vbox5), vbox6, TRUE, TRUE, 0);
+
+ label6 = gtk_label_new (_("Site Name"));
+ gtk_widget_ref (label6);
+ gtk_object_set_data_full (GTK_OBJECT (RemoteMntFrm), "label6", label6,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (label6);
+ gtk_box_pack_start (GTK_BOX (vbox6), label6, FALSE, FALSE, 0);
+ gtk_label_set_justify (GTK_LABEL (label6), GTK_JUSTIFY_LEFT);
+ gtk_misc_set_alignment (GTK_MISC (label6), 1.22935e-07, 0.5);
+
+ NameText = gtk_entry_new ();
+ gtk_widget_ref (NameText);
+ gtk_object_set_data_full (GTK_OBJECT (RemoteMntFrm), "NameText", NameText,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (NameText);
+ gtk_box_pack_start (GTK_BOX (vbox6), NameText, FALSE, FALSE, 0);
+
+ vbox7 = gtk_vbox_new (FALSE, 0);
+ gtk_widget_ref (vbox7);
+ gtk_object_set_data_full (GTK_OBJECT (RemoteMntFrm), "vbox7", vbox7,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (vbox7);
+ gtk_box_pack_start (GTK_BOX (vbox5), vbox7, TRUE, TRUE, 0);
+
+ label7 = gtk_label_new (_("Site Machine Name"));
+ gtk_widget_ref (label7);
+ gtk_object_set_data_full (GTK_OBJECT (RemoteMntFrm), "label7", label7,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (label7);
+ gtk_box_pack_start (GTK_BOX (vbox7), label7, FALSE, FALSE, 0);
+ gtk_misc_set_alignment (GTK_MISC (label7), 7.45058e-09, 0.5);
+
+ MachineText = gtk_entry_new ();
+ gtk_widget_ref (MachineText);
+ gtk_object_set_data_full (GTK_OBJECT (RemoteMntFrm), "MachineText", MachineText,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (MachineText);
+ gtk_box_pack_start (GTK_BOX (vbox7), MachineText, FALSE, FALSE, 0);
+
+ vbox8 = gtk_vbox_new (FALSE, 0);
+ gtk_widget_ref (vbox8);
+ gtk_object_set_data_full (GTK_OBJECT (RemoteMntFrm), "vbox8", vbox8,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (vbox8);
+ gtk_box_pack_start (GTK_BOX (vbox5), vbox8, TRUE, TRUE, 0);
+
+ label8 = gtk_label_new (_("Repository Directory"));
+ gtk_widget_ref (label8);
+ gtk_object_set_data_full (GTK_OBJECT (RemoteMntFrm), "label8", label8,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (label8);
+ gtk_box_pack_start (GTK_BOX (vbox8), label8, FALSE, FALSE, 0);
+ gtk_misc_set_alignment (GTK_MISC (label8), 7.45058e-09, 0.5);
+
+ RepositoryText = gtk_entry_new ();
+ gtk_widget_ref (RepositoryText);
+ gtk_object_set_data_full (GTK_OBJECT (RemoteMntFrm), "RepositoryText", RepositoryText,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (RepositoryText);
+ gtk_box_pack_start (GTK_BOX (vbox8), RepositoryText, FALSE, FALSE, 0);
+
+ dialog_action_area2 = GNOME_DIALOG (RemoteMntFrm)->action_area;
+ gtk_object_set_data (GTK_OBJECT (RemoteMntFrm), "dialog_action_area2", dialog_action_area2);
+ gtk_widget_show (dialog_action_area2);
+ gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area2), GTK_BUTTONBOX_SPREAD);
+ gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area2), 8);
+
+ gnome_dialog_append_button_with_pixmap (GNOME_DIALOG (RemoteMntFrm),
+ _("Save"), GNOME_STOCK_PIXMAP_SAVE);
+ SaveBtn = g_list_last (GNOME_DIALOG (RemoteMntFrm)->buttons)->data;
+ gtk_widget_ref (SaveBtn);
+ gtk_object_set_data_full (GTK_OBJECT (RemoteMntFrm), "SaveBtn", SaveBtn,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (SaveBtn);
+ GTK_WIDGET_SET_FLAGS (SaveBtn, GTK_CAN_DEFAULT);
+
+ gnome_dialog_append_button (GNOME_DIALOG (RemoteMntFrm), GNOME_STOCK_BUTTON_CANCEL);
+ CancelBtn = g_list_last (GNOME_DIALOG (RemoteMntFrm)->buttons)->data;
+ gtk_widget_ref (CancelBtn);
+ gtk_object_set_data_full (GTK_OBJECT (RemoteMntFrm), "CancelBtn", CancelBtn,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (CancelBtn);
+ GTK_WIDGET_SET_FLAGS (CancelBtn, GTK_CAN_DEFAULT);
+
+ gtk_signal_connect (GTK_OBJECT (AddBtn), "clicked",
+ GTK_SIGNAL_FUNC (on_AddBtn_clicked),
+ NULL);
+ gtk_signal_connect (GTK_OBJECT (RemoveBtn), "clicked",
+ GTK_SIGNAL_FUNC (on_RemoveBtn_clicked),
+ NULL);
+ gtk_signal_connect (GTK_OBJECT (NameText), "changed",
+ GTK_SIGNAL_FUNC (on_NameText_changed),
+ NULL);
+ gtk_signal_connect (GTK_OBJECT (SaveBtn), "clicked",
+ GTK_SIGNAL_FUNC (on_SaveBtn_clicked),
+ NULL);
+ gtk_signal_connect (GTK_OBJECT (CancelBtn), "clicked",
+ GTK_SIGNAL_FUNC (on_CancelBtn_clicked),
+ NULL);
+
+ return RemoteMntFrm;
+}
+
+GtkWidget*
+create_CipherFrm (void)
+{
+ GtkWidget *CipherFrm;
+ GtkWidget *dialog_vbox3;
+ GtkWidget *vbox9;
+ GtkWidget *vbox10;
+ GtkWidget *label9;
+ GtkWidget *hbox6;
+ GtkWidget *hbox7;
+ GtkWidget *label10;
+ GtkWidget *KeyText;
+ GtkWidget *TryBtn;
+ GtkWidget *scrolledwindow2;
+ GtkWidget *ModuleText;
+ GtkWidget *dialog_action_area3;
+ GtkWidget *OKBtn;
+
+ CipherFrm = gnome_dialog_new (_("Ciphered Module"), NULL);
+ gtk_object_set_data (GTK_OBJECT (CipherFrm), "CipherFrm", CipherFrm);
+ gtk_window_set_modal (GTK_WINDOW (CipherFrm), TRUE);
+ gtk_window_set_policy (GTK_WINDOW (CipherFrm), FALSE, FALSE, FALSE);
+
+ dialog_vbox3 = GNOME_DIALOG (CipherFrm)->vbox;
+ gtk_object_set_data (GTK_OBJECT (CipherFrm), "dialog_vbox3", dialog_vbox3);
+ gtk_widget_show (dialog_vbox3);
+
+ vbox9 = gtk_vbox_new (FALSE, 0);
+ gtk_widget_ref (vbox9);
+ gtk_object_set_data_full (GTK_OBJECT (CipherFrm), "vbox9", vbox9,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (vbox9);
+ gtk_box_pack_start (GTK_BOX (dialog_vbox3), vbox9, TRUE, TRUE, 0);
+
+ vbox10 = gtk_vbox_new (FALSE, 0);
+ gtk_widget_ref (vbox10);
+ gtk_object_set_data_full (GTK_OBJECT (CipherFrm), "vbox10", vbox10,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (vbox10);
+ gtk_box_pack_start (GTK_BOX (vbox9), vbox10, TRUE, TRUE, 0);
+
+ label9 = gtk_label_new (_("The module that you have requested for install seems to be ciphered."));
+ gtk_widget_ref (label9);
+ gtk_object_set_data_full (GTK_OBJECT (CipherFrm), "label9", label9,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (label9);
+ gtk_box_pack_start (GTK_BOX (vbox10), label9, FALSE, FALSE, 0);
+ gtk_label_set_justify (GTK_LABEL (label9), GTK_JUSTIFY_LEFT);
+ gtk_misc_set_alignment (GTK_MISC (label9), 7.45058e-09, 0);
+
+ hbox6 = gtk_hbox_new (FALSE, 0);
+ gtk_widget_ref (hbox6);
+ gtk_object_set_data_full (GTK_OBJECT (CipherFrm), "hbox6", hbox6,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (hbox6);
+ gtk_box_pack_start (GTK_BOX (vbox10), hbox6, TRUE, TRUE, 0);
+ gtk_container_set_border_width (GTK_CONTAINER (hbox6), 5);
+
+ hbox7 = gtk_hbox_new (FALSE, 0);
+ gtk_widget_ref (hbox7);
+ gtk_object_set_data_full (GTK_OBJECT (CipherFrm), "hbox7", hbox7,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (hbox7);
+ gtk_box_pack_start (GTK_BOX (hbox6), hbox7, TRUE, TRUE, 0);
+
+ label10 = gtk_label_new (_("Cipher Key:"));
+ gtk_widget_ref (label10);
+ gtk_object_set_data_full (GTK_OBJECT (CipherFrm), "label10", label10,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (label10);
+ gtk_box_pack_start (GTK_BOX (hbox7), label10, FALSE, FALSE, 0);
+
+ KeyText = gtk_entry_new ();
+ gtk_widget_ref (KeyText);
+ gtk_object_set_data_full (GTK_OBJECT (CipherFrm), "KeyText", KeyText,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (KeyText);
+ gtk_box_pack_start (GTK_BOX (hbox7), KeyText, TRUE, TRUE, 5);
+
+ TryBtn = gtk_button_new_with_label (_("Try"));
+ gtk_widget_ref (TryBtn);
+ gtk_object_set_data_full (GTK_OBJECT (CipherFrm), "TryBtn", TryBtn,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (TryBtn);
+ gtk_box_pack_start (GTK_BOX (hbox6), TryBtn, FALSE, FALSE, 10);
+ gtk_widget_set_usize (TryBtn, 99, -2);
+
+ scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL);
+ gtk_widget_ref (scrolledwindow2);
+ gtk_object_set_data_full (GTK_OBJECT (CipherFrm), "scrolledwindow2", scrolledwindow2,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (scrolledwindow2);
+ gtk_box_pack_start (GTK_BOX (vbox9), scrolledwindow2, TRUE, TRUE, 0);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
+
+ ModuleText = gtk_text_new (NULL, NULL);
+ gtk_widget_ref (ModuleText);
+ gtk_object_set_data_full (GTK_OBJECT (CipherFrm), "ModuleText", ModuleText,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (ModuleText);
+ gtk_container_add (GTK_CONTAINER (scrolledwindow2), ModuleText);
+ gtk_widget_set_usize (ModuleText, 166, 146);
+
+ dialog_action_area3 = GNOME_DIALOG (CipherFrm)->action_area;
+ gtk_object_set_data (GTK_OBJECT (CipherFrm), "dialog_action_area3", dialog_action_area3);
+ gtk_widget_show (dialog_action_area3);
+ gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area3), GTK_BUTTONBOX_SPREAD);
+ gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area3), 8);
+
+ gnome_dialog_append_button (GNOME_DIALOG (CipherFrm), GNOME_STOCK_BUTTON_OK);
+ OKBtn = g_list_last (GNOME_DIALOG (CipherFrm)->buttons)->data;
+ gtk_widget_ref (OKBtn);
+ gtk_object_set_data_full (GTK_OBJECT (CipherFrm), "OKBtn", OKBtn,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (OKBtn);
+ GTK_WIDGET_SET_FLAGS (OKBtn, GTK_CAN_DEFAULT);
+
+ gtk_signal_connect (GTK_OBJECT (TryBtn), "clicked",
+ GTK_SIGNAL_FUNC (on_TryBtn_clicked),
+ NULL);
+ gtk_signal_connect (GTK_OBJECT (OKBtn), "clicked",
+ GTK_SIGNAL_FUNC (on_OKBtn_clicked),
+ NULL);
+
+ return CipherFrm;
+}
+
+GtkWidget*
+create_StatusFrm (void)
+{
+ GtkWidget *StatusFrm;
+ GtkWidget *dialog_vbox4;
+ GtkWidget *vbox11;
+ GtkWidget *label11;
+ GtkWidget *progressbar1;
+ GtkWidget *dialog_action_area4;
+ GtkWidget *CancelBtn;
+
+ StatusFrm = gnome_dialog_new (_("Status"), NULL);
+ gtk_object_set_data (GTK_OBJECT (StatusFrm), "StatusFrm", StatusFrm);
+ gtk_window_set_modal (GTK_WINDOW (StatusFrm), TRUE);
+ gtk_window_set_policy (GTK_WINDOW (StatusFrm), FALSE, FALSE, FALSE);
+
+ dialog_vbox4 = GNOME_DIALOG (StatusFrm)->vbox;
+ gtk_object_set_data (GTK_OBJECT (StatusFrm), "dialog_vbox4", dialog_vbox4);
+ gtk_widget_show (dialog_vbox4);
+
+ vbox11 = gtk_vbox_new (FALSE, 0);
+ gtk_widget_ref (vbox11);
+ gtk_object_set_data_full (GTK_OBJECT (StatusFrm), "vbox11", vbox11,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (vbox11);
+ gtk_box_pack_start (GTK_BOX (dialog_vbox4), vbox11, TRUE, TRUE, 0);
+
+ label11 = gtk_label_new ("");
+ gtk_widget_ref (label11);
+ gtk_object_set_data_full (GTK_OBJECT (StatusFrm), "label11", label11,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (label11);
+ gtk_box_pack_start (GTK_BOX (vbox11), label11, FALSE, FALSE, 0);
+ gtk_misc_set_alignment (GTK_MISC (label11), 7.45058e-09, 7.45058e-09);
+
+ progressbar1 = gtk_progress_bar_new ();
+ gtk_widget_ref (progressbar1);
+ gtk_object_set_data_full (GTK_OBJECT (StatusFrm), "progressbar1", progressbar1,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (progressbar1);
+ gtk_box_pack_start (GTK_BOX (vbox11), progressbar1, FALSE, FALSE, 0);
+
+ dialog_action_area4 = GNOME_DIALOG (StatusFrm)->action_area;
+ gtk_object_set_data (GTK_OBJECT (StatusFrm), "dialog_action_area4", dialog_action_area4);
+ gtk_widget_show (dialog_action_area4);
+ gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area4), GTK_BUTTONBOX_SPREAD);
+ gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area4), 8);
+
+ gnome_dialog_append_button (GNOME_DIALOG (StatusFrm), GNOME_STOCK_BUTTON_CANCEL);
+ CancelBtn = g_list_last (GNOME_DIALOG (StatusFrm)->buttons)->data;
+ gtk_widget_ref (CancelBtn);
+ gtk_object_set_data_full (GTK_OBJECT (StatusFrm), "CancelBtn", CancelBtn,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (CancelBtn);
+ GTK_WIDGET_SET_FLAGS (CancelBtn, GTK_CAN_DEFAULT);
+
+ return StatusFrm;
+}
+
diff --git a/apps/X11/InstallMgr/src/interface.h b/apps/X11/InstallMgr/src/interface.h
new file mode 100644
index 0000000..250257f
--- /dev/null
+++ b/apps/X11/InstallMgr/src/interface.h
@@ -0,0 +1,10 @@
+/*
+ * DO NOT EDIT THIS FILE - it is generated by Glade.
+ */
+
+GtkWidget* create_InstallMgrApp (void);
+GtkWidget* create_InfoFrm (void);
+GtkWidget* create_fileselection1 (void);
+GtkWidget* create_RemoteMntFrm (void);
+GtkWidget* create_CipherFrm (void);
+GtkWidget* create_StatusFrm (void);
diff --git a/apps/X11/InstallMgr/src/main.cpp b/apps/X11/InstallMgr/src/main.cpp
new file mode 100644
index 0000000..d6b82c6
--- /dev/null
+++ b/apps/X11/InstallMgr/src/main.cpp
@@ -0,0 +1,47 @@
+/*
+ * Initial main.c file generated by Glade. Edit as required.
+ * Glade will not overwrite this file.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <gtk/gtk.h>
+
+//#include "interface.h"
+//#include "support.h"
+#include <MainFrm.h>
+
+int
+main (int argc, char *argv[]) {
+
+#ifdef ENABLE_NLS
+// bindtextdomain (PACKAGE, PACKAGE_LOCALE_DIR);
+// textdomain (PACKAGE);
+#endif
+
+ gtk_set_locale ();
+ gtk_init (&argc, &argv);
+
+ MainForm = new TMainForm(0);
+ MainForm->FormShow(0);
+// GtkWidget *InstallMgrApp = create_InstallMgrApp ();
+// gtk_widget_show (InstallMgrApp);
+/*
+ InfoFrm = create_InfoFrm ();
+ gtk_widget_show (InfoFrm);
+ fileselection1 = create_fileselection1 ();
+ gtk_widget_show (fileselection1);
+ RemoteMntFrm = create_RemoteMntFrm ();
+ gtk_widget_show (RemoteMntFrm);
+ CipherFrm = create_CipherFrm ();
+ gtk_widget_show (CipherFrm);
+ StatusFrm = create_StatusFrm ();
+ gtk_widget_show (StatusFrm);
+*/
+
+ gtk_main ();
+ return 0;
+}
+
diff --git a/apps/X11/InstallMgr/src/pix/arrow2r.xpm b/apps/X11/InstallMgr/src/pix/arrow2r.xpm
new file mode 100644
index 0000000..12b6ab6
--- /dev/null
+++ b/apps/X11/InstallMgr/src/pix/arrow2r.xpm
@@ -0,0 +1,24 @@
+/* XPM */
+static char * arrow2r_xpm[] = {
+"16 16 5 1",
+" c None",
+". c #0000FF",
+"+ c #FF0000",
+"@ c #000080",
+"# c #7F7F7F",
+".. ",
+" ... ",
+" ..... ",
+" ...... ",
+" ....... ",
+" ......... ",
+" .......... ",
+"++++++++++++++++",
+" @@@@@@@@@@# ",
+" @@@@@@@@@# ",
+" #@@@@@@@# ",
+" @@@@@@# ",
+" @@@@@# ",
+"#@@@# ",
+"@@# ",
+" "};
diff --git a/apps/X11/InstallMgr/src/pix/bookshut.xpm b/apps/X11/InstallMgr/src/pix/bookshut.xpm
new file mode 100644
index 0000000..a0164db
--- /dev/null
+++ b/apps/X11/InstallMgr/src/pix/bookshut.xpm
@@ -0,0 +1,24 @@
+/* XPM */
+static char * bookshut_xpm[] = {
+"16 16 5 1",
+" c None",
+". c #0000FF",
+"+ c #000080",
+"@ c #000000",
+"# c #FFFFFF",
+" ",
+" .+. ",
+" .+.... ",
+" .+...... ",
+" .+.@@...@ ",
+" .+...@..@#@. ",
+" .+..@...@###@. ",
+".+......@###@. ",
+"+......@###@. ",
+" .....@###@. ",
+" ...@###@. ",
+" .@###@. ",
+" .@#@. ",
+" .@. ",
+" . ",
+" "};
diff --git a/apps/X11/InstallMgr/src/pix/bulblk.xpm b/apps/X11/InstallMgr/src/pix/bulblk.xpm
new file mode 100644
index 0000000..69b678f
--- /dev/null
+++ b/apps/X11/InstallMgr/src/pix/bulblk.xpm
@@ -0,0 +1,26 @@
+/* XPM */
+static char * bulblk_xpm[] = {
+"16 16 7 1",
+" c None",
+". c #000000",
+"+ c #FFFF00",
+"@ c #00FFFF",
+"# c #808080",
+"$ c #FFFFFF",
+"% c #C0C0C0",
+" .... + ",
+" .@@@@.+ ",
+" .@..#.+++ + ",
+"........++++ ",
+".@@@@@@..+++ ",
+".@....#.$.+++ ",
+".@#####.+$.++ ",
+".@....#.$+.++++ ",
+" ......#+$.++ ",
+" +++.$#$.+++ ",
+" +++.$.+++ ",
+" +++.+.+++ ",
+" + +...+ + ",
+" .%. ",
+" ... ",
+" . "};
diff --git a/apps/X11/InstallMgr/src/pix/bulbon.xpm b/apps/X11/InstallMgr/src/pix/bulbon.xpm
new file mode 100644
index 0000000..576e76d
--- /dev/null
+++ b/apps/X11/InstallMgr/src/pix/bulbon.xpm
@@ -0,0 +1,25 @@
+/* XPM */
+static char * bulbon_xpm[] = {
+"16 16 6 1",
+" c None",
+". c #FFFF00",
+"+ c #000000",
+"@ c #FFFFFF",
+"# c #7F7F7F",
+"$ c #BFBFBF",
+" . ",
+" . ",
+" . ..... . ",
+" ......... ",
+" ...+++... ",
+" ...+@.@+... ",
+" ..+@.@.@+.. ",
+"....+.@#@.+.... ",
+" ..+@.#.@+.. ",
+" ...+@#@+... ",
+" ...+@+... ",
+" ...+.+... ",
+" . .+++. . ",
+" +$+ ",
+" +++ ",
+" + "};
diff --git a/apps/X11/InstallMgr/src/pix/filenew.xpm b/apps/X11/InstallMgr/src/pix/filenew.xpm
new file mode 100644
index 0000000..2abd4bf
--- /dev/null
+++ b/apps/X11/InstallMgr/src/pix/filenew.xpm
@@ -0,0 +1,25 @@
+/* XPM */
+static char * filenew_xpm[] = {
+"16 16 6 1",
+" c None",
+". c #FFFF00",
+"+ c #D3D3DD",
+"@ c #000000",
+"# c #FFFFFF",
+"$ c #7F7F7F",
+".++++++.+++++++.",
+"+..++++..++++..+",
+"++.@@@@@@+++..++",
+"+++@####@@+..+++",
+"+++@####@#@.++++",
+"+++@####@##@++++",
+"+++@####@@@@@+++",
+"+..@########@...",
+"...@########@..+",
+"+++@########@$++",
+"+++@########@$++",
+"+++@########@$++",
+"+++@########@$++",
+"++.@@@@@@@@@@.++",
+"+..+$$$..$$$$..+",
+"++++++++.++++++."};
diff --git a/apps/X11/InstallMgr/src/pix/fingerup.xpm b/apps/X11/InstallMgr/src/pix/fingerup.xpm
new file mode 100644
index 0000000..731cc4d
--- /dev/null
+++ b/apps/X11/InstallMgr/src/pix/fingerup.xpm
@@ -0,0 +1,24 @@
+/* XPM */
+static char * fingerup_xpm[] = {
+"16 16 5 1",
+" c None",
+". c #000000",
+"+ c #FFFF00",
+"@ c #FFFFFF",
+"# c #00FFFF",
+" . ",
+" .+. ",
+" .@. ",
+" ..+. ",
+" ..@.@. ",
+" .+.+.+. ",
+" .@.@.@.. ",
+" .+@+@+.+. ",
+" .@+@+@.@. ",
+" .+@+@+@+. ",
+" .+@+@+. ",
+" ........ ",
+" .######. ",
+" ......... ",
+" .+....... ",
+" ......... "};
diff --git a/apps/X11/InstallMgr/src/pix/globe.xpm b/apps/X11/InstallMgr/src/pix/globe.xpm
new file mode 100644
index 0000000..84f772f
--- /dev/null
+++ b/apps/X11/InstallMgr/src/pix/globe.xpm
@@ -0,0 +1,24 @@
+/* XPM */
+static char * globe_xpm[] = {
+"16 16 5 1",
+" c None",
+". c #D3D3DD",
+"+ c #0000FF",
+"@ c #000080",
+"# c #808000",
+".....+@+++......",
+"...##++@+@++....",
+"..####++#+##+...",
+".@+#########++..",
+".+++++######@+..",
+"+++##++@###++@+.",
+"@++########+@+@.",
+"+@######+#+@+++.",
+"@++#####+++@@@+.",
+"+++++###+++@+@@.",
+".@+++###@@@@##..",
+".@+@+##@+@+@##..",
+"..@+@##@@@@@@...",
+"...@+@@@+@@@....",
+".....@@+@+......",
+"................"};
diff --git a/apps/X11/InstallMgr/src/pix/null.xpm b/apps/X11/InstallMgr/src/pix/null.xpm
new file mode 100644
index 0000000..b2851be
--- /dev/null
+++ b/apps/X11/InstallMgr/src/pix/null.xpm
@@ -0,0 +1,5 @@
+/* XPM */
+static char * null_xpm[] = {
+"1 1 1 1",
+" c None",
+" "};
diff --git a/apps/X11/InstallMgr/src/pix/sword.xpm b/apps/X11/InstallMgr/src/pix/sword.xpm
new file mode 100644
index 0000000..7b4b67f
--- /dev/null
+++ b/apps/X11/InstallMgr/src/pix/sword.xpm
@@ -0,0 +1,875 @@
+/* XPM */
+static char * sword_xpm[] = {
+"254 100 772 2",
+" c None",
+". c #CCCDCC",
+"+ c #CDCECD",
+"@ c #CECFCE",
+"# c #585858",
+"$ c #4A4A4A",
+"% c #919291",
+"& c #9A9B9A",
+"* c #040404",
+"= c #000000",
+"- c #1D1D1D",
+"; c #B7B8B7",
+"> c #CECECE",
+", c #8D8E8D",
+"' c #050505",
+") c #A5A6A5",
+"! c #757675",
+"~ c #444544",
+"{ c #373737",
+"] c #848584",
+"^ c #C8C9C8",
+"/ c #2D2D2D",
+"( c #0B0B0B",
+"_ c #AEAFAE",
+": c #A8A9A8",
+"< c #5A5B5A",
+"[ c #767676",
+"} c #121212",
+"| c #B8B9B8",
+"1 c #7B7C7B",
+"2 c #AFB0AF",
+"3 c #3A3B3A",
+"4 c #6D6D6D",
+"5 c #797A79",
+"6 c #121312",
+"7 c #BEBFBE",
+"8 c #A3A4A3",
+"9 c #1E1E1E",
+"0 c #5D5D5D",
+"a c #373837",
+"b c #060606",
+"c c #464746",
+"d c #404040",
+"e c #5C5C5C",
+"f c #7B7B7B",
+"g c #B6B7B6",
+"h c #323232",
+"i c #696969",
+"j c #C3C4C3",
+"k c #959595",
+"l c #232323",
+"m c #838383",
+"n c #B9BAB9",
+"o c #696A69",
+"p c #BBBCBB",
+"q c #8C8C8C",
+"r c #969796",
+"s c #707070",
+"t c #646464",
+"u c #6E6E6E",
+"v c #C4C5C4",
+"w c #A7A8A7",
+"x c #101010",
+"y c #4B4B4B",
+"z c #C7C8C7",
+"A c #131313",
+"B c #BDBEBD",
+"C c #2B2B2B",
+"D c #1F1F1F",
+"E c #8A8B8A",
+"F c #7F7F7F",
+"G c #242524",
+"H c #020202",
+"I c #828382",
+"J c #CDCFCD",
+"K c #494949",
+"L c #3B3B3B",
+"M c #535353",
+"N c #686968",
+"O c #161616",
+"P c #B0B1B0",
+"Q c #0F0F0F",
+"R c #9FA09F",
+"S c #4F4F4F",
+"T c #1B1B1B",
+"U c #B3B4B3",
+"V c #ADAEAD",
+"W c #0C0C0C",
+"X c #1A1A1A",
+"Y c #9B9B9B",
+"Z c #4C4C4C",
+"` c #505050",
+" . c #494A49",
+".. c #606060",
+"+. c #989998",
+"@. c #1C1C1C",
+"#. c #151515",
+"$. c #717171",
+"%. c #747574",
+"&. c #818281",
+"*. c #424242",
+"=. c #878787",
+"-. c #393A39",
+";. c #CACBCA",
+">. c #A0A1A0",
+",. c #070707",
+"'. c #292A29",
+"). c #9C9D9C",
+"!. c #090909",
+"~. c #222222",
+"{. c #B1B2B1",
+"]. c #787878",
+"^. c #414241",
+"/. c #414141",
+"(. c #717271",
+"_. c #B2B3B2",
+":. c #090A09",
+"<. c #BCBDBC",
+"[. c #171717",
+"}. c #565656",
+"|. c #C0C1C0",
+"1. c #939493",
+"2. c #393939",
+"3. c #C2C2C2",
+"4. c #797979",
+"5. c #A4A5A4",
+"6. c #636363",
+"7. c #525252",
+"8. c #C2C3C2",
+"9. c #6B6B6B",
+"0. c #898989",
+"a. c #A1A2A1",
+"b. c #505150",
+"c. c #8E8F8E",
+"d. c #272827",
+"e. c #010101",
+"f. c #9B9C9B",
+"g. c #515251",
+"h. c #121412",
+"i. c #939393",
+"j. c #949494",
+"k. c #3D3D3D",
+"l. c #4C4D4C",
+"m. c #080808",
+"n. c #2B2C2B",
+"o. c #BABABA",
+"p. c #B7B7B7",
+"q. c #ABACAB",
+"r. c #9FA19F",
+"s. c #B0B0B0",
+"t. c #707170",
+"u. c #BFC0BF",
+"v. c #878887",
+"w. c #565856",
+"x. c #323532",
+"y. c #303330",
+"z. c #333533",
+"A. c #383738",
+"B. c #3B3A3B",
+"C. c #3E3D3E",
+"D. c #373937",
+"E. c #393B39",
+"F. c #7E807E",
+"G. c #939593",
+"H. c #303030",
+"I. c #282728",
+"J. c #282828",
+"K. c #656765",
+"L. c #828482",
+"M. c #868886",
+"N. c #8A8A8A",
+"O. c #8A8C8A",
+"P. c #A0A2A0",
+"Q. c #969896",
+"R. c #8E908E",
+"S. c #929292",
+"T. c #939293",
+"U. c #949594",
+"V. c #979797",
+"W. c #BEBEBE",
+"X. c #838283",
+"Y. c #A09FA0",
+"Z. c #A0A0A0",
+"`. c #8C8A8C",
+" + c #A9ABA9",
+".+ c #9A9C9A",
+"++ c #909090",
+"@+ c #949294",
+"#+ c #949394",
+"$+ c #949694",
+"%+ c #9A999A",
+"&+ c #A7A6A7",
+"*+ c #CBCCCB",
+"=+ c #C0BFC0",
+"-+ c #C4C3C4",
+";+ c #C3C2C3",
+">+ c #BDBDBD",
+",+ c #C6C6C6",
+"'+ c #CBCBCB",
+")+ c #D0D0D0",
+"!+ c #D2D2D2",
+"~+ c #D2D3D2",
+"{+ c #D6D5D6",
+"]+ c #D6D6D6",
+"^+ c #D6D7D6",
+"/+ c #D7D8D7",
+"(+ c #E4E1E4",
+"_+ c #E6E2E6",
+":+ c #E6E5E6",
+"<+ c #E6E6E6",
+"[+ c #E9E6E9",
+"}+ c #E0DEE0",
+"|+ c #E0E0E0",
+"1+ c #D8D9D8",
+"2+ c #302F30",
+"3+ c #5F605F",
+"4+ c #676767",
+"5+ c #383838",
+"6+ c #383B38",
+"7+ c #7B7D7B",
+"8+ c #666866",
+"9+ c #434543",
+"0+ c #494849",
+"a+ c #494B49",
+"b+ c #494C49",
+"c+ c #4D4E4D",
+"d+ c #515051",
+"e+ c #515151",
+"f+ c #515451",
+"g+ c #7A7C7A",
+"h+ c #595C59",
+"i+ c #5B5D5B",
+"j+ c #626062",
+"k+ c #626162",
+"l+ c #626362",
+"m+ c #626462",
+"n+ c #666666",
+"o+ c #6A686A",
+"p+ c #6F6E6F",
+"q+ c #727072",
+"r+ c #727372",
+"s+ c #727472",
+"t+ c #7A787A",
+"u+ c #7A797A",
+"v+ c #7A7B7A",
+"w+ c #808180",
+"x+ c #A1A0A1",
+"y+ c #8C8B8C",
+"z+ c #8C8D8C",
+"A+ c #8C8E8C",
+"B+ c #9C9A9C",
+"C+ c #AAAAAA",
+"D+ c #B9BBB9",
+"E+ c #C9C9C9",
+"F+ c #ADABAD",
+"G+ c #ADADAD",
+"H+ c #B3B1B3",
+"I+ c #B5B2B5",
+"J+ c #B5B4B5",
+"K+ c #B5B6B5",
+"L+ c #BCB9BC",
+"M+ c #BDBABD",
+"N+ c #C1C0C1",
+"O+ c #C6C3C6",
+"P+ c #C7C4C7",
+"Q+ c #CDCDCD",
+"R+ c #D2D1D2",
+"S+ c #D6D3D6",
+"T+ c #D7D7D7",
+"U+ c #DDDADD",
+"V+ c #DEDBDE",
+"W+ c #DEDDDE",
+"X+ c #DEDFDE",
+"Y+ c #E2E0E2",
+"Z+ c #E7E3E7",
+"`+ c #E7E6E7",
+" @ c #E7E7E7",
+".@ c #ECE9EC",
+"+@ c #EFEBEF",
+"@@ c #EFECEF",
+"#@ c #EFEEEF",
+"$@ c #EFEFEF",
+"%@ c #E6E4E6",
+"&@ c #D5D5D5",
+"*@ c #B7B9B7",
+"=@ c #3F423F",
+"-@ c #2A2C2A",
+";@ c #484748",
+">@ c #989898",
+",@ c #C6C7C6",
+"'@ c #999A99",
+")@ c #1F1E1F",
+"!@ c #393839",
+"~@ c #9EA09E",
+"{@ c #4E504E",
+"]@ c #5C5E5C",
+"^@ c #6E706E",
+"/@ c #929492",
+"(@ c #ACADAC",
+"_@ c #C1C1C1",
+":@ c #C1C2C1",
+"<@ c #9B9D9B",
+"[@ c #747674",
+"}@ c #898889",
+"|@ c #8D8D8D",
+"1@ c #959795",
+"2@ c #A9AAA9",
+"3@ c #ADACAD",
+"4@ c #9C9C9C",
+"5@ c #A2A4A2",
+"6@ c #BBBDBB",
+"7@ c #C9CAC9",
+"8@ c #C0BEC0",
+"9@ c #C5C2C5",
+"0@ c #CFCFCF",
+"a@ c #D1D2D1",
+"b@ c #D3D4D3",
+"c@ c #D5D6D5",
+"d@ c #DADADA",
+"e@ c #DAD9DA",
+"f@ c #DBDADB",
+"g@ c #D8D8D8",
+"h@ c #DBDCDB",
+"i@ c #DCDCDC",
+"j@ c #EBE8EB",
+"k@ c #EEEAEE",
+"l@ c #F0EFF0",
+"m@ c #F4F0F4",
+"n@ c #E8E6E8",
+"o@ c #D4D4D4",
+"p@ c #3C3D3C",
+"q@ c #282B28",
+"r@ c #8B8D8B",
+"s@ c #4E4F4E",
+"t@ c #161716",
+"u@ c #3A393A",
+"v@ c #4A494A",
+"w@ c #AFB1AF",
+"x@ c #979897",
+"y@ c #807E80",
+"z@ c #848684",
+"A@ c #929192",
+"B@ c #AEAEAE",
+"C@ c #9C9B9C",
+"D@ c #9C9E9C",
+"E@ c #B2B4B2",
+"F@ c #C7C7C7",
+"G@ c #D5D4D5",
+"H@ c #D1D1D1",
+"I@ c #F6F2F6",
+"J@ c #F7F3F7",
+"K@ c #A3A3A3",
+"L@ c #282928",
+"M@ c #545354",
+"N@ c #AEB0AE",
+"O@ c #A9A9A9",
+"P@ c #A5A5A5",
+"Q@ c #918F91",
+"R@ c #848284",
+"S@ c #929392",
+"T@ c #BABBBA",
+"U@ c #A3A2A3",
+"V@ c #B3B5B3",
+"W@ c #CFD0CF",
+"X@ c #D9D9D9",
+"Y@ c #E8E7E8",
+"Z@ c #EEEBEE",
+"`@ c #292829",
+" # c #4D4C4D",
+".# c #858685",
+"+# c #838183",
+"@# c #848384",
+"## c #AFAEAF",
+"$# c #C9C8C9",
+"%# c #E1E0E1",
+"&# c #EEEEEE",
+"*# c #292C29",
+"=# c #262626",
+"-# c #2A292A",
+";# c #A2A2A2",
+"># c #8D8F8D",
+",# c #8F8F8F",
+"'# c #C7C9C7",
+")# c #5C5F5C",
+"!# c #B8B8B8",
+"~# c #595A59",
+"{# c #757475",
+"]# c #959695",
+"^# c #979597",
+"/# c #B7B6B7",
+"(# c #C7C5C7",
+"_# c #D3D1D3",
+":# c #212421",
+"<# c #6A6D6A",
+"[# c #414441",
+"}# c #8E8E8E",
+"|# c #7E7D7E",
+"1# c #595959",
+"2# c #747374",
+"3# c #7B797B",
+"4# c #B4B3B4",
+"5# c #B7B5B7",
+"6# c #C2C0C2",
+"7# c #CCCCCC",
+"8# c #252825",
+"9# c #202320",
+"0# c #686868",
+"a# c #595859",
+"b# c #818481",
+"c# c #6F706F",
+"d# c #7D7B7D",
+"e# c #888788",
+"f# c #7D7E7D",
+"g# c #A5A3A5",
+"h# c #A3A5A3",
+"i# c #ADAAAD",
+"j# c #E9E7E9",
+"k# c #F2EFF2",
+"l# c #474847",
+"m# c #505350",
+"n# c #525552",
+"o# c #BCBEBC",
+"p# c #B0B2B0",
+"q# c #6B6D6B",
+"r# c #6D6E6D",
+"s# c #9D9D9D",
+"t# c #A4A6A4",
+"u# c #8F8E8F",
+"v# c #9B9A9B",
+"w# c #D4D2D4",
+"x# c #202020",
+"y# c #434643",
+"z# c #A6A8A6",
+"A# c #868686",
+"B# c #5B5A5B",
+"C# c #6A6C6A",
+"D# c #7F807F",
+"E# c #737573",
+"F# c #AFAFAF",
+"G# c #A4A4A4",
+"H# c #B3B3B3",
+"I# c #ACA9AC",
+"J# c #D1D0D1",
+"K# c #565556",
+"L# c #201F20",
+"M# c #414041",
+"N# c #7C7E7C",
+"O# c #585B58",
+"P# c #5D605D",
+"Q# c #767576",
+"R# c #676967",
+"S# c #787778",
+"T# c #6A6B6A",
+"U# c #7E7F7E",
+"V# c #B4B4B4",
+"W# c #BEC0BE",
+"X# c #BCBCBC",
+"Y# c #A6A6A6",
+"Z# c #D9D8D9",
+"`# c #DFDEDF",
+" $ c #3A3C3A",
+".$ c #6C6B6C",
+"+$ c #595B59",
+"@$ c #C5C7C5",
+"#$ c #AAABAA",
+"$$ c #999B99",
+"%$ c #ADAFAD",
+"&$ c #6A696A",
+"*$ c #969596",
+"=$ c #727172",
+"-$ c #737373",
+";$ c #A4A2A4",
+">$ c #CACACA",
+",$ c #EAE6EA",
+"'$ c #E1E1E1",
+")$ c #575857",
+"!$ c #969696",
+"~$ c #B1B3B1",
+"{$ c #858585",
+"]$ c #616461",
+"^$ c #7C7C7C",
+"/$ c #696869",
+"($ c #6C6A6C",
+"_$ c #747274",
+":$ c #737173",
+"<$ c #9D9B9D",
+"[$ c #BFBFBF",
+"}$ c #CECCCE",
+"|$ c #CECDCE",
+"1$ c #E1DFE1",
+"2$ c #EAEAEA",
+"3$ c #BDBFBD",
+"4$ c #5C5B5C",
+"5$ c #ACACAC",
+"6$ c #484848",
+"7$ c #686768",
+"8$ c #909290",
+"9$ c #646564",
+"0$ c #B1B0B1",
+"a$ c #BDBCBD",
+"b$ c #CECBCE",
+"c$ c #1C1D1C",
+"d$ c #2E2D2E",
+"e$ c #5A5D5A",
+"f$ c #3F3F3F",
+"g$ c #424142",
+"h$ c #888888",
+"i$ c #B2B2B2",
+"j$ c #B1AFB1",
+"k$ c #A5A2A5",
+"l$ c #BDBBBD",
+"m$ c #EDEAED",
+"n$ c #EAE8EA",
+"o$ c #4B4C4B",
+"p$ c #232223",
+"q$ c #989A98",
+"r$ c #393C39",
+"s$ c #4C4F4C",
+"t$ c #5E5D5E",
+"u$ c #919091",
+"v$ c #626262",
+"w$ c #8D8C8D",
+"x$ c #B4B5B4",
+"y$ c #BAB9BA",
+"z$ c #B6B4B6",
+"A$ c #CDCACD",
+"B$ c #E0E1E0",
+"C$ c #EAE7EA",
+"D$ c #7A7A7A",
+"E$ c #848484",
+"F$ c #575657",
+"G$ c #575A57",
+"H$ c #6B696B",
+"I$ c #A4A1A4",
+"J$ c #212021",
+"K$ c #323132",
+"L$ c #C5C6C5",
+"M$ c #737473",
+"N$ c #AAACAA",
+"O$ c #616061",
+"P$ c #ABADAB",
+"Q$ c #9E9F9E",
+"R$ c #B9B9B9",
+"S$ c #3A3A3A",
+"T$ c #5A595A",
+"U$ c #8F908F",
+"V$ c #898A89",
+"W$ c #878987",
+"X$ c #605F60",
+"Y$ c #BBBBBB",
+"Z$ c #A1A1A1",
+"`$ c #CDCCCD",
+" % c #E3E3E3",
+".% c #C3C3C3",
+"+% c #424542",
+"@% c #5E615E",
+"#% c #6F6F6F",
+"$% c #717371",
+"%% c #767476",
+"&% c #C8C7C8",
+"*% c #2B2A2B",
+"=% c #535653",
+"-% c #9F9F9F",
+";% c #ABAAAB",
+">% c #C8C6C8",
+",% c #C6C4C6",
+"'% c #E0DFE0",
+")% c #6E6F6E",
+"!% c #6A6A6A",
+"~% c #807F80",
+"{% c #A9A8A9",
+"]% c #A7A7A7",
+"^% c #B5B3B5",
+"/% c #D0D1D0",
+"(% c #E2E1E2",
+"_% c #363636",
+":% c #3E413E",
+"<% c #5E5E5E",
+"[% c #7D7F7D",
+"}% c #5F5F5F",
+"|% c #979697",
+"1% c #919391",
+"2% c #BFBEBF",
+"3% c #C6C5C6",
+"4% c #D8D7D8",
+"5% c #C1C3C1",
+"6% c #4F504F",
+"7% c #818181",
+"8% c #636463",
+"9% c #5D5F5D",
+"0% c #ACAEAC",
+"a% c #808080",
+"b% c #636563",
+"c% c #A6A5A6",
+"d% c #AEABAE",
+"e% c #CAC9CA",
+"f% c #D7D6D7",
+"g% c #DEDEDE",
+"h% c #171817",
+"i% c #5B5B5B",
+"j% c #818381",
+"k% c #A7A9A7",
+"l% c #706E70",
+"m% c #939193",
+"n% c #A5A7A5",
+"o% c #B8B6B8",
+"p% c #DCD9DC",
+"q% c #D9DAD9",
+"r% c #111511",
+"s% c #0E0F0E",
+"t% c #8B8C8B",
+"u% c #767876",
+"v% c #757575",
+"w% c #626562",
+"x% c #666966",
+"y% c #828182",
+"z% c #8A898A",
+"A% c #A6A7A6",
+"B% c #DDDDDD",
+"C% c #080C08",
+"D% c #616361",
+"E% c #353635",
+"F% c #9D9F9D",
+"G% c #343534",
+"H% c #3C3C3C",
+"I% c #676A67",
+"J% c #888A88",
+"K% c #B1B1B1",
+"L% c #9F9E9F",
+"M% c #979997",
+"N% c #C1BFC1",
+"O% c #070B07",
+"P% c #303430",
+"Q% c #1C1E1C",
+"R% c #404340",
+"S% c #434243",
+"T% c #383938",
+"U% c #5A5A5A",
+"V% c #636263",
+"W% c #757775",
+"X% c #878587",
+"Y% c #A5A4A5",
+"Z% c #BCBBBC",
+"`% c #DCDADC",
+" & c #111211",
+".& c #2D302D",
+"+& c #181C18",
+"@& c #313431",
+"#& c #797C79",
+"$& c #4A4D4A",
+"%& c #868486",
+"&& c #B5B5B5",
+"*& c #AAA8AA",
+"=& c #111111",
+"-& c #070907",
+";& c #090C09",
+">& c #838483",
+",& c #171B17",
+"'& c #656465",
+")& c #8B8B8B",
+"!& c #A4A3A4",
+"~& c #BEBDBE",
+"{& c #353835",
+"]& c #353535",
+"^& c #191C19",
+"/& c #737673",
+"(& c #3D3F3D",
+"_& c #6C6D6C",
+":& c #7E7C7E",
+"<& c #969496",
+"[& c #AEACAE",
+"}& c #C0C0C0",
+"|& c #141514",
+"1& c #4E4E4E",
+"2& c #D5D2D5",
+"3& c #222522",
+"4& c #B4B6B4",
+"5& c #363936",
+"6& c #181818",
+"7& c #767776",
+"8& c #303230",
+"9& c #3E403E",
+"0& c #BABCBA",
+"a& c #999999",
+"b& c #7F817F",
+"c& c #919191",
+"d& c #C4C4C4",
+"e& c #B9B8B9",
+"f& c #141414",
+"g& c #464946",
+"h& c #040604",
+"i& c #252925",
+"j& c #585958",
+"k& c #0F130F",
+"l& c #121512",
+"m& c #464846",
+"n& c #707270",
+"o& c #706F70",
+"p& c #818081",
+"q& c #B4B1B4",
+"r& c #676567",
+"s& c #CBCACB",
+"t& c #C8C8C8",
+"u& c #484948",
+"v& c #0F100F",
+"w& c #0F120F",
+"x& c #202420",
+"y& c #B6B6B6",
+"z& c #6D6F6D",
+"A& c #A8AAA8",
+"B& c #444344",
+"C& c #444444",
+"D& c #464646",
+"E& c #555755",
+"F& c #393D39",
+"G& c #3A3D3A",
+"H& c #9A9A9A",
+"I& c #A2A3A2",
+"J& c #333433",
+"K& c #C5C5C5",
+"L& c #434343",
+"M& c #888988",
+"N& c #242424",
+"O& c #868786",
+"P& c #0C0D0C",
+"Q& c #2A2A2A",
+"R& c #1F201F",
+"S& c #606160",
+"T& c #5E5F5E",
+"U& c #323332",
+"V& c #6B6C6B",
+"W& c #656565",
+"X& c #2E2F2E",
+"Y& c #212221",
+"Z& c #909190",
+"`& c #0B0C0B",
+" * c #2C2C2C",
+".* c #0E0E0E",
+"+* c #ABABAB",
+"@* c #333333",
+"#* c #535453",
+"$* c #747474",
+"%* c #303130",
+"&* c #2F2F2F",
+"** c #525352",
+"=* c #262726",
+"-* c #575757",
+";* c #252525",
+">* c #343434",
+",* c #787978",
+"'* c #030303",
+")* c #1D1E1D",
+"!* c #777877",
+"~* c #5B5C5B",
+"{* c #424342",
+"]* c #191919",
+"^* c #616261",
+"/* c #0D0D0D",
+"(* c #292929",
+"_* c #2C2D2C",
+":* c #2A2B2A",
+"<* c #3D3E3D",
+"[* c #3E3F3E",
+"}* c #191A19",
+"|* c #4A4B4A",
+"1* c #0A0A0A",
+"2* c #9D9E9D",
+"3* c #727272",
+"4* c #4D4D4D",
+"5* c #6C6C6C",
+"6* c #3B3C3B",
+"7* c #2F302F",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + . . . . . . + + + + + . + + + + + + . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . + + + + + + + . + + + + + + + + . . . . + + + + + . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . + + + + + + + + + + + + + + + + + + + + + . . . . . + . . . . . . + + + + + . . + + + + + . . + + + + + . . + + + + + . + + + + + + + + + + . . + + + ",
+". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ",
+". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ",
+". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + # $ $ % + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ",
+". + + + + + + @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + & * = - ; + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ",
+". + + + + @ @ @ @ @ @ @ > @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + , = ' ) + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ + + + + ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ! = ~ + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ + + + + ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { = ] + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ^ / ( + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _ = ( + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + : = < + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + # = [ + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + } = | + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 = = | + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 + + 5 = 6 7 + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + 8 = = 9 0 0 0 0 0 a = = b b b b b b = c + + 5 = d + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + 8 = e + + + + + + f = = g + + + + . h c + + i = d + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + 8 = j + + + + + + f = = g + + + + + k c + + l = m + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + > @ @ @ @ @ @ @ @ @ + + + + + + + n o ^ + + + + + + f = = g + + + + + p q + + l = r + + + + ^ s t t u + + + + v w t x y q + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + + l = r + + + z $ = = = A + + + B C D E F G H I + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + J @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + + l = r + + + K L M = = A + + + N = [ + + j O b w + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + P Q * R + + S T U z = = A + + V = W + + + + X = R + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + Y = D + + V ( _ + ^ = = A + + V = Z + + + + X = R + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + Y = D + + ` .+ + ^ = = A + + ..= P + + + +.H = R + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + > > @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + Y = D + 5 @.7 + + ^ = = A + + ~ = n + + g S = = R + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + Y = D + #.$.+ + + ^ = = A + + = = %.&...A = *.0 v + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + % = D =.-.;.+ + + ^ = = @.+ >.= ,.O '.4 ).j . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + ~ = !.~.8 + + + + {.= = i + ].= ^.+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + J @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + ~ = = /.+ + + + + (.= = _.+ ].= :.<.+ + + + + + . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + ~ = = r + + + + v [.= }.@ + ].= = n + + + + + ) K + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + > @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + ~ = [.|.+ + + + 1.= 2.3.@ + | = = 4.+ + + + + ) K + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ > @ + + + + + + + + + + + + + + + + f = = g + + + + + + + + ~ = K + + + + . /.H 5.+ @ + + b = 6.+ + + + + 7.S + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + J @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + 8.3 = = 9.+ + + + + + + + ~ = 0.+ + + + a.= b.+ + @ + + c.= l E + + + 1 / B + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + 9.d.d.9 = = = e.d.d.d.f.+ + + + g.h.i.j.2 + + k.O <.+ + @ + + z l.= m.d.d.d.n.7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ o.p.p.q.r.r.s.|.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + r t.u.z z z z 8.t.t.t.{.+ ;.v.w.x.y.z.A.B.C.C.D.E.F.+ + @ + + + G.H.I.I.J.K.L.M.N.N.N.E O.P.+ + + + + Q.R.R.S.T.T.i.G.G.U.V.V.V.& + + + + + W.X.).).).Y.Z.Z.>.P.P.a.`.@ @ @ @ @ @ @ + U +.+R.++@+@+#+U.$+$+%+&+p.z + @ @ @ @ @ @ @ @ @ @ @ @ *+p p p W.=+=+=+|.|.|.-+-+;+>+|.v ,+'+. + @ @ @ @ @ @ @ @ @ @ @ @ @ )+!+~+~+~+{+{+{+]+^+^+/+(+_+_+:+<+<+[+}+}+}+|+1+~+@ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + n s 2+H.3+r.r.a.4+A.A.5+6+7++ + @ + + + 8+9+0+0+K a+b+b+c+d+d+e+f+g++ + + + + N h+h+i+j+j+k+l+m+m+n+o+o+p++ + + + + B q+r+s+s+%.t+t+u+v+g+g+w+@ @ @ @ @ @ u.x+`.y+z+A+A+++@+@+#+U.$+$+%+B+B+C+D+. @ @ @ @ @ @ @ @ @ @ E+F+G+V V H+I+I+J+K+K+p.L+M+M+>+B B N+O+P+Q+@ @ @ @ @ @ @ @ @ @ @ @ R+S+{+^+^+T+U+V+V+W+X+X+Y+Z+Z+Z+`+ @ @.@+@+@@@#@$@<+%@&@@ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + *@=@-@;@>@,@+ + . '@)@!@A.5+7++ + @ + + + |.~@i+K 0+K a+b+b+{@k+0.B 8.+ + + + + |.7 7 r.]@j+j+k+l+^@/@(@|._@+ + + + + *+:@7 f.<@[@%.t+t+u+&. +j @ @ @ @ + <@M.}@`.`.|@1@2@ +3@G+G+V +1@$+%+B+B+4@5@6@+ @ @ @ @ @ @ @ @ + 7@^ p g V H+I+I+J+u.|.3.8@M+M+>+B B N+9@P+Q+@ @ @ @ @ @ @ @ @ @ @ @ 0@0@a@b@c@T+U+V+V+d@^+^+e@f@!+g@h@h@i@j@k@+@@@#@$@l@m@n@o@@ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + 8.p@q@q@r@+ + + ^ s@t@P =.u@A.f + + @ + + + + + + r@v@0+K a+b+w@+ + + + + + + + + + + + + <@i+j+j+k+x@+ + + + + + + + + + + + + + {.s+%.t+y@'++ + @ @ @ ;.%+] z@z@A@B@+ @ @ @ @ @ @ @ @ @ n : C@B+B+4@D@E@+ @ @ @ @ @ @ @ @ @ @ @ @ {.V H+I+I+*+@ @ @ @ + F@:@B B N+O+P+Q+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ b@^+T+U+V+G@@ @ @ @ @ @ @ @ @ @ H@f@[+@@#@$@l@I@J@[+H@@ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + K@I.L@=@v + + + s@O q.+ + M@A.f + + @ + + + + + + + ]@0+0+K < ^ + + + + + + + + + + + + + N@h+i+j+j+O@+ + + + + + + + + + + + + + |.s+s+%.P@+ + + @ @ ^ Q@R@R@] S@z @ @ @ @ @ @ @ @ @ @ @ @ @ T@U@B+B+4@D@V@@ @ @ @ @ @ @ @ @ @ @ @ :@V V H+I+*+@ @ @ @ @ @ @ 7@7 B N+O+P+Q+@ @ @ @ @ @ @ @ @ @ @ @ @ @ W@^+^+T+U+G@@ @ @ @ @ @ @ @ @ @ @ @ 0@X@Y@$@$@l@I@J@Z@a@@ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + b.I.`@q + + + + |@(@+ + + 1 A.f + + @ + + + + + + + ~@9+0+0+ #,@+ + + + + + + + + + + + + N@h+h+i+j+P@+ + + + + + + + + + + + + + |.r+s+.#. + + + @ *+$+F +#@##+z @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ E+##B+B+4@D@V@+ @ @ @ @ @ @ @ @ @ @ . _.V V H+*+@ @ @ @ @ @ @ @ *+7 B N+9@$#@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ o@]+^+T+o@@ @ @ @ @ @ @ @ @ @ @ @ @ @ W@%#&#$@l@I@J@Z@H@@ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + *#=#-#;#+ + + + + + + + + >#< ,#+ + @ + + + + + + + '#)#9+0+0+!#+ + + + + + + + + + + + + K@~#h+h+i+{#7@+ + + + + + + + + + + + + p.q+r+r.+ + + + ;.]#7+7+F ^#@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ J+B+B+4@D@U @ @ @ @ @ @ @ @ @ @ @ /#G+V V *+@ @ @ @ @ @ @ @ @ v B B N+(#+ @ @ @ @ @ @ @ @ @ @ @ @ @ @ _#{+^+^+a@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ h@&#$@l@I@J@%@@ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + + @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + q@:#=#q + + + + + + + + + + + + + + @ + + + + + + + + <#[#9+0+}#+ + + + + + + + + + + + + |#1#~#h+h+i+w + + + + + + + + + + + + + %+q+2#o.+ + + + s.3#1 7+7+z @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + 4#B+B+4@D@B @ @ @ @ @ @ @ @ @ @ 5#F+V V *+@ @ @ @ @ @ @ @ @ . >+B B 6#7#@ @ @ @ @ @ @ @ @ @ @ @ @ @ _#S+{+^+a@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ i@$@$@l@I@I@X@@ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + + @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + E@8#9#:#l++ + + + + + + + + + + + + + @ + + + + + + + + 5.[#[#9+.#+ + + + + + + + + + + + ,@0#a#1#~#h+h+b#+ + + + + + + + + + + + + c#q+d#+ + + + . e#3#3#f#_.+ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 7@g#B+B+4@h#. @ @ @ @ @ @ @ @ @ 5#i#F+G+*+@ @ @ @ @ @ @ @ @ + M+>+B B *+@ @ @ @ @ @ @ @ @ @ @ @ @ @ _#S+S+{+a@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ W@j##@$@l@I@k#!++ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + + @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + J.9#9#*#P + + + + + + + + + + + + + @ + + + + + + + + {.l#[#[#m#+ + + + + + + + + + + + {.n## a#a#~#h+h+o#+ + + + + + + + + + + p#q#r#s#+ + + + t#%.t+3#u#@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ |.v#B+B+4@p @ @ @ @ @ @ @ @ @ 5#i#i#F+*+@ @ @ @ @ @ @ @ @ + M+M+>+B *+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ w#S+S+H@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ e@@@$@$@l@I@%#+ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + + @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + J.x#9#9#a+v + + + + + + + + + + + + @ + + + + + + + + + p+^.[#y#z#+ + + + + + + + + + + O.f+n#A#B#1#~#h+'@+ + + + + + + + + + + S@C#C#7 + + + . D#E#%.u+F#@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 8 %+B+B+G#*+@ @ @ @ @ @ @ @ H#I#i#i#'+@ @ @ @ @ @ @ @ @ + L+M+M+>+*+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ w#S+J#@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 0@[+@@#@$@l@m@W@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + + + @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + K#L#x#9#9#8+8.+ + + + + + + + + + + @ + + + + + + + + + H#M#^.[#N#+ + + + + + + + + + + O#f+P#+ Q#a#a#~#R#z + + + + + + + + + E+S#T#U#7@+ + + V#r+E#E#] @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ W#$+%+B+B+X#@ @ @ @ @ @ @ @ {.Y#I#i#'+@ @ @ @ @ @ @ @ @ *+p.L+M+6#@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ w#J#@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ Z#+@@@#@$@l@`#@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + + + @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + C+L#L#x#9#9# $D@+ + + + + + + + + + @ + + + + + + + + + . .$M#^.+$@$+ + + + + + + + + #$M f+$$+ $$# a#a#+$%$+ + + + + + + + + K+o+&$+.+ + + + *$=$-$E#2 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ . 5@$+%+B+;$@ @ @ @ @ @ @ @ {.) Y#I#'+@ @ @ @ @ @ @ @ @ j K+p.M+>$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ > @ @ @ )+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ,$+@@@$@$@'$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + + + @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + . )$L#L#x#9#9#8## #$. + + + + + + + @ + + + + + + + + + + !$M#/.^.~$+ + + + + + + + + {$d+e+p + *+]$# a#1#^$. + + + + + + + + E /$($K++ + + j _$q+:$-$z @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ z#$+$+%+<$v @ @ @ @ @ @ @ {.) ) Y#;.@ @ @ @ @ @ @ @ + >+K+K+[$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ }$|$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 1$+@+@@@#@2$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + + + + @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + 3$^.L#L#x#9#9#:#=#4$5$+ + + + + + @ + + + + + + + + + + n 6$M#M#r#+ + + + + + + + z l+d+7$z + + 8$n## a#a#U + + + + + + + '#^@9$S#+ + + + 8.r#q+:$e#*+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ Y#U.$+$+%+X#@ @ @ @ @ @ @ 0$P@) ) ;.@ @ @ @ @ @ @ + a$I+J+B + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ }$b$|$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ]+.@+@+@@@2$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + + @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + 7 c$L#L#x#9#9#:#=#d$0 B@+ + + + @ + + + + + + + + + + + e$f$M#g$+ + + + + + + + U b+c+h$+ + + <.f+n## a#,#+ + + + + + + i$m+m+'@+ + + + 8.C#r#:$A@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ o.#+$+$+$+p @ @ @ @ @ @ @ j$k$P@) ;.@ @ @ @ @ *+|._.H+I+l$+ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ }$b$b$|$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ~+ @m$+@+@n$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + + @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + |.o$p$L#x#9#9#:#=#I.`@4 ;.+ + @ + + + + + + + + + + + q$r$f$M#i.+ + + + + + + N#b+s$q.+ + + + N#f+n## t$F@+ + + + + + u$v$m+. + + + + p C#C#r#w$. @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ W.@+#+U.$+D+@ @ @ @ @ @ @ j$k$k$P@x$g g y$z$i#F+G+V {.,+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ E+A$b$b$|$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ B$ @.@+@C$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + + @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + D$L#L#x#9#9#:#=#I.I.E$+ + @ + + + + + + + + + + + |.=@r$f$7$+ + + + + + ;.F$a+G$+ + + + + 5@f+f+n## ;#+ + + + + + H$j+s + + + + + >@T#C#q#r#z @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ W.@+@+#+U.D+@ @ @ @ @ @ @ B@I$k$k$P@) ) Y#I#i#i#F+G+g . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ^ F@A$b$|$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ B$ @ @.@C$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + + @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + . #$K#J$x#9#9#:#=#I.K$_ + @ + + + + + + + + + + + + F.6+r$Z <.+ + + + + L$0+K A++ + + + + 7 )#f+f+n#M$. + + + + N$O$j+u$+ + + + + >@&$T#q#q#,@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ <.u$@+@+#+D+@ @ @ @ @ @ @ P$Q$I$k$,@7@7@7@R$I#i#i#F+G+:@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ^ ,@F@A$|$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ }+`+ @ @n@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + + @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {$S$x#9#9#:#=#I.T$L$@ + + + + + + + + + + + + 8.y#6+r$I + + + + + U$0+0+,@+ + + + + + V$f+f+f+n#x$+ + + + W$e$X$Y$+ + + + + Z$o+&$9.q#,@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ <.A+u$@+@+R$@ @ @ @ @ @ @ P$D@Q$I$;.@ @ @ @ n I#i#i#F+V *+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ^ ,@,@F@`$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ }+Z+`+ @ %@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + + @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .%h$5+9#9#:#=#I.|@@ + + + + + + + + + + + + + N 6+6++%j + + + + @%9+#%. + + + + + + F#7.f+f+f+O.+ + + ,@q#h+$%;.+ + + + + ,@%%o+H$9.,@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ <.A+A+u$@+R$@ @ @ @ @ @ @ q.D@D@Q$;.@ @ @ @ + i$I#i#i#F+p @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ &%,+,@,@;.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ }+Z+Z+`+ %@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + + @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 7@$.:#9#:#=#*%T@+ + + + + + + + + + + + + G#5+6+6+~@+ + + ; b+[#$++ + + + + + + + T$e+f+f+=%^ + + U 1#h+N#+ + + + + + + V$o+H$H$-%@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ <.z+A+A+u$R$@ @ @ @ @ @ @ ;%4@D@D@7@@ @ @ @ @ 7@G+I#i#i#F+v @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ >%,%,+,@;.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ W@'%_+Z+Z+ %@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + )%9#9#:#=#!%+ + + + + + + + + + + + + 8.0+5+6+w.+ + + j.^.b+*@+ + + + + + + + h$d+e+f+f+h#+ + h$a#1#z#+ + + + + + + | N o+H$~%@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ {%y+A+A+>#7 @ @ @ @ @ @ @ ;%B+4@D@7@@ @ @ @ @ @ 8.]%I#i#i#^%+ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ >%O+,%,+;.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ /%X+(%Z+Z+}+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + . ;.;.+ + + + + + + + + + + 3.{ 9#9#:#_%+ + + + + + + + + + + + + + 9.A.5+:%; + + i /.<%+ + + + + + + + + x$d+d+e+f+[%+ . }%a#k+^ + + + + + + + + s+9$o+p+u.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ '+|%`.y+z+1%@ @ @ @ @ @ @ @ ;%B+B+4@7@@ @ @ @ @ @ @ B Y#I#i#i#2%@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 3%9@O+,%;.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ /%X+X+(%_+4%@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + {.#.Q H#+ + + + + + + + + + + F x#9#9#y.+ + + + + + + + + + + + + + ,#A.A.5+R.+ 5%6%M#7%+ + + + + + + + + ,@8%d+d+e+9%z 0%n## a%+ + + + + + + + + ~@b%9$o+c%@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ :@}@`.`.y+{.@ @ @ @ @ @ @ @ z#%+B+B+7@@ @ @ @ @ @ @ . 2 Y#I#i#d%F@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ :@6#O+O+e%@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ f%g%X+X+Y+!+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + h%Q H#+ + + + + + + + + + + 3.K$x#9#y.+ + + + + + + + + + + + + + 7 A.A.A.i%+ t#r$f$+.+ + + + + + + + + + j%c+d+d+e+k%M.f+n#G#+ + + + + + + + + |.b%b%9$l%:@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ w z@}@`.m%>$@ @ @ @ @ @ @ @ n%$+%+B+7@@ @ @ @ @ @ @ @ *+2@Y#I#i#o%@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ :@B 6#O+e%@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ p%V+g%X+q%@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + r%s%t%+ + + + + + + + + + + + A.L#x#y.+ + + + + + + + + + + + + + + c#A.A.B.V#u%6+:%7@+ + + + + + + + + + D+f+c+d+d+v%w%f+x%7@+ + + + + + + + + . f 8%b%9$y%+ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ *+O.z@z@z%s.@ @ @ @ @ @ @ @ @ n%$+$+%+7@@ @ @ @ @ @ @ @ @ j A%Y#I#i#_@@ @ @ @ @ @ @ @ @ @ @ @ @ @ :@B B 6#e%@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ W@U+V+V+B%a@+ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + r%C%D%+ + + + + + + + + + + + E%L#L#H.+ + + + + + + + + + + + + + + F%G%A.A.0.H%6+I%+ + + + + + + + + + + + [%b+c+d+d+e+f+J%+ + + + + + + + + + + 7 0#8%b%9$K%@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ L%R@] z@M%@ @ @ @ @ @ @ @ @ @ ) U.$+$+7@@ @ @ @ @ @ @ @ @ @ n ) Y#I#j$+ @ @ @ @ @ @ @ @ @ @ @ @ @ N%>+B B z @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ b@g@U+V+G@@ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + r%O%@%+ + + + + + + + + + + + P%Q%L#.$+ + + + + + + + + + + + + + + 7 R%G%A.S%!@T%r + + + + + + + + + + + + B b+b+c+d+d+U%6@+ + + + + + + + + + + @ w$V%b%b%W%8.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ V#X%R@R@] p @ @ @ @ @ @ @ @ @ @ Y%#+$+$+K+@ @ @ @ @ @ @ @ @ @ . (@) Y#I#Z%@ @ @ @ @ @ @ @ @ @ @ @ @ N%M+>+B ,@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ W@c@^+g@`%0@@ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + &O%P%+ + + + + + + + + + + z .&+&c$4.+ + + + + + + + + + + + + + + + ]$@&G%A.A.d+L$+ + + + + + + + + + + + + #&b+$&c+d+7$+ + + + + + + + + + + + @ + }@V%8%b%E#5%@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ U 7+F +#%&&&@ @ @ @ @ @ @ @ @ @ @ Y%@+@+U.%$@ @ @ @ @ @ @ @ @ @ @ z 2@) Y#*&a$@ @ @ @ @ @ @ @ @ @ @ @ N%M+M+>+u.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ w#{+^+^+a@@ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + =&-&;&1@+ + + + + + + + + + >&,&,&,&A++ + + + + + + + + + + + + + + + .+y.y.G%A.'&+ + + + + + + + + + + + + + )&a+b+b+c+|@+ + + + + + + + + + + + @ @ *+!&0#8%b%[@8.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ i$[%7+7+7%V#@ @ @ @ @ @ @ @ @ @ @ ^ k m%@+@++.@ @ @ @ @ @ @ @ @ @ @ @ ,@2@) ) 3@F@@ @ @ @ @ @ @ @ @ @ @ ~&L+M+M+B ^ @ 8.% ;.@ @ @ @ @ @ @ @ @ @ @ @ _#S+S+{+b@@ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + =&,.-&{&7@+ + + + + + + + :@]&h%^&/&. + + + + + + + + + + + + + + + + z (&y.y.G%f.+ + + + + + + + + + + + + + _.K b+b+$&f.+ + + + + + + + + + + + @ @ @ @ s.t 8%b%_&w + @ @ @ @ @ @ @ @ @ @ . <.#+:&3#1 [%~$@ @ @ @ @ @ @ @ @ @ @ @ n A+c.m%@+<&j + @ @ @ @ @ @ @ @ @ @ @ 8.) ) ) [&+ @ @ @ @ @ @ @ @ @ ;.K+p.L+M+M+B }&|&= 1&@ @ @ @ @ @ @ @ @ > @ @ @ w#2&_#@ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + s%,.,.-&3&4&+ + + + + + p#5&[.6&7&+ @ + + + + + + + + + + + + + + + + + 4+8&y.9&<.+ + + + + + + + + + + + + + j B#K a+s$+ + + + + + + + + + + + + @ @ @ @ @ F#0#8%b%9$#+}&@ @ @ . 0&X#X#X#a&b&E#! t+3#c&,@@ @ @ @ @ @ @ @ ,@|._@_@p.>#A+A+c.m%@+@+A%N$N$V @ @ @ @ @ @ @ @ @ n ) ) ) &&. @ @ @ ;.z ^ E+d&e&K+K+p.L+M+M+4+= = f&@ @ @ @ @ @ @ > |$b$|$@ @ @ R+@ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + g&h&,.,.-&i&J%J%V$E E j&+&k&l&r++ + @ + + + + + + + + + + + + + + + + + 7%H.8&m&+ + + + + + + + + + + + + + + + ++0+K u%+ + + + + + + + + + + + + @ @ @ @ @ @ X#>.n&b%9$o&p&p&7%b&q#r#:$:$:$-$E#E#q p.@ @ @ @ @ @ @ @ @ @ t#z@z%`.`.y+A+A+A+c.m%@+@+U.$+Q.@ @ @ @ @ @ @ @ @ @ | ) ) ) }&@ @ @ n V B@q&I+I+J+K+K+p.L+M+r&= = A ^ s&s&s&*+*+^ t&A$b$b$|$@ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + . z@u&Q ,.-&O%O%C%s%Q v&w&x&n&. + + @ + + + + + + + + + + + + + + + + + 7 2+H.m + + + + + + + + + + + + + + + + y& #0+R + + + + + + + + + + + + + @ @ @ @ @ @ @ @ 7@5@z&9$o+H$H$9.q#q#u q+:$3#& ,@. @ @ @ @ @ @ @ @ @ @ @ A&O.$$9.B&B&C&~ 3+y D&;@;@].5.U @ @ @ @ @ @ @ @ @ @ + 7 : ) A%8.@ @ p P {.[$N+N+N+!#; K+p.L+q&X$..t%B 6#O+O+,%,+,@,@F@A$b$}$> @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + ]%|@|@E&F&F&G&f$e+U$*++ + + + @ + + + + + + + + + + + + + + + + + ;.H&H&p.+ + + + + + + + + + + + + + + + + 8 I&z + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ 7@N$5$G+G+G+V V V F#i$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 8 T#6&= = 6&E L J&!.= f&: @ @ @ @ @ @ @ @ @ @ @ @ ,@: ) A%:@@ @ @ @ @ @ @ @ @ @ z L$F@t&t&K&:@:@:@3%>%>%&%^ 7@*+. @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ *+L&L&M&@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+"+ + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ p j&= N&@ @ @ {. .= f&_ @ @ @ @ @ @ @ @ @ @ @ @ L$: ) A%8.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ ;.= = 4+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&@ @ @ @ + i = { : @ @ @ @ @ @ @ @ @ @ @ @ + U ) ) v @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ %.= = <.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&@ @ @ @ @ <.x = l.@ @ @ @ @ @ U @ @ @ 2 , :@. g n 7@; , , , _.@ @ @ @ @ @ @ @ ).7@@ @ @ @ @ u.l#{ { .#@ @ @ @ @ @ @ @ @ '@&.{ O&@ @ q., ` = = I , , _.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + > @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&@ @ @ @ @ @ [.= l.@ @ @ z ) /.S$@ @ ;.*.= 5.@ @ @ ; ~.= = = P&! @ @ @ ^ #$!%O ' :@@ @ @ @ <.=&Q&2@R&= 3+@ @ @ @ @ @ )%O m.* = e.V$@ S&= = = = = = = %.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + J @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&@ @ @ @ @ @ [.= T&@ M$Z 9 = = U&@ @ f = = 5.@ @ j.=#r#&.V&,.= 6&:@@ W&~.= = = = :@@ @ @ u.X&:.2 @ ; Y&Q {.@ @ @ @ Z&!.t >.r `&= 7%@ ) &.K = *&.&.&.G+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&@ @ @ @ @ g .*= K@@ M$c+I&=#= U&@ 8.~.= H.U @ | l T#@ @ @ .#= = v%@ +*I&I&|&= = :@@ @ :@@*= S @ @ @ c#= Z$@ @ @ |.x##*@ @ + 2.= 7%@ @ @ $*= D&@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&@ @ @ @ ;.< = h *+@ @ @ @ %*= U&@ &*~.!$;.@ @ /.= .#@ @ @ @ **= ]&@ @ @ @ X = =*z @ @ 5$= e., @ @ @ c#= Z$@ @ + S = ; @ @ + 2.= 7%@ @ @ $*= D&@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&@ @ @ @ 0 = H r @ @ @ @ @ %*= U&; !.E @ @ @ <.A ' @ @ @ @ @ -*= W @ @ @ @ X = K @ @ @ t.= ;*@ @ @ @ >*= Z$@ @ x$= = <.@ @ + R , y&@ @ @ 0 = D&@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&i.D D D = e.,*@ @ @ @ @ @ %*= U&,*C&@ @ @ @ V&= Q&@ @ @ @ @ -*= W @ @ @ @ X = K @ @ + %*= 9$@ @ @ '@'*= Z$@ @ ! = - j @ @ + @ @ @ @ @ @ )*= D&@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&{.4.t ~.!*g @ @ @ @ @ @ @ %*= U&l : @ @ @ @ <%= ~*@ @ @ @ @ -*= W @ @ @ @ X = K @ @ + = = #*q.q.f 6&Q ~.: @ @ {*= ~ @ @ @ + @ @ @ @ @ @ )*= ,*@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&@ @ @ @ @ @ @ @ @ @ @ @ @ %*= W m.*+@ @ @ @ *.= ~*@ @ @ @ @ -*= W @ @ @ @ X = K @ @ z+= = k.L&L&S H&{.@ @ @ @ D = ~ @ @ @ + @ @ @ @ @ @ )*= ).@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&@ @ @ @ @ @ @ @ @ @ @ @ p ]*= = Z + @ @ @ @ m.= ^*@ @ @ @ @ -*= W @ @ @ P /*= K @ @ 7&= = T@@ @ @ @ @ @ @ @ U x = )%@ @ @ + @ @ @ @ @ @ )*= ).@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&@ @ @ @ @ @ @ @ @ @ @ @ : = = = q @ @ @ @ @ m.= D$@ @ @ @ @ -*= x#@ @ @ S.= = K @ @ 7&= = m @ @ @ @ @ @ 2@*+r = = Y @ @ @ + @ *+: @ @ :@[.= ).@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&@ @ @ @ @ @ @ @ @ @ @ @ : = = (*z @ @ @ @ G+* = ~*@ @ @ @ @ -*= ] @ @ @ S.= = T#@ @ 7&= = 9$@ @ @ @ @ @ _*8.(@W = Y @ @ @ + @ v :*@ @ ]#= = ).@ @ @ >.| @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= N&@ @ @ @ @ @ @ @ @ @ @ @ : = = <*@ @ @ @ @ @ m.= b.@ @ @ @ @ -*m.<.@ @ @ S.= = R @ @ ;.= = ]&@ @ @ @ @ ^ H.j @ D = [**+@ @ + @ n+]&@ @ ]#= = ).@ @ @ 1#!$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ !$= ]*u.@ @ @ @ @ @ @ @ @ @ @ : = ' ).@ @ @ @ @ @ m.= ' @ @ @ @ K+}*< @ @ @ @ S.= = R @ @ + 6&= .*@ @ @ @ @ t%|*@ @ D = = 8 @ @ + <.A V.@ @ ]#= = >&@ @ @ d !$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ;.^ ^ u = = }.:@^ ^ + @ @ @ @ @ @ @ : = 5+@ @ @ @ @ @ @ 1*= = .#@ @ . *x P @ @ @ @ S.= e.>.@ @ @ a.'*e.&*| ^ ^ 2*( r @ @ Z&H = f&3*3*^.A }.@ @ @ ]#= = C&^ U S L&,@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 4*= = X =#=#=#l = = ;.@ @ @ @ @ @ @ : = 0#@ @ @ @ @ @ @ x@( = Q e+e+H%D q.@ @ @ @ @ S.= J.@ @ @ @ @ U T = = = = =&5*@ @ @ @ ,#!.= = = ' d v @ @ @ Z.;*= = = = *.. @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 2 2*2*7 @ @ @ ;.2*2*+ @ @ @ @ @ @ @ L$2*y&@ @ @ @ @ @ @ @ q.7&c c c 7%,+@ @ @ @ @ @ S.= J.@ @ @ @ @ @ P c c c S&U @ @ @ @ @ @ z+c c c I&@ @ @ @ @ @ + 2*2*2*2*L$@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ S.= J.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ j&= k.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 6*= U#@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ U e.A . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ v%= f.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ) s%}%;.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + + + + + + @ @ @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ *+_&D l+@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ <%7*a.@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ _.(.7@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
+". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ "};
diff --git a/apps/X11/InstallMgr/src/pix/trash.xpm b/apps/X11/InstallMgr/src/pix/trash.xpm
new file mode 100644
index 0000000..611703b
--- /dev/null
+++ b/apps/X11/InstallMgr/src/pix/trash.xpm
@@ -0,0 +1,25 @@
+/* XPM */
+static char * trash_xpm[] = {
+"16 16 6 1",
+" c None",
+". c #D3D3DD",
+"+ c #000000",
+"@ c #7F7F7F",
+"# c #FFFFFF",
+"$ c #BFBFBF",
+".....+++++......",
+".....+@@@+......",
+"..+++++++++++...",
+"..+#$$$@@@@@+...",
+"..+++++++++++...",
+"...+@+@+@+@+....",
+"...+#+$+@+@+....",
+"..++#+$+$+@++...",
+".+.+#+$+@+@+.+..",
+"...+#+$+$+@+....",
+"...+#+$+@+@+....",
+"...+#+$+$+@+....",
+"...+#+$+@+@+....",
+"...+#+$+$+@+....",
+"...+#@@@@@@+....",
+"...+++++++++...."};
diff --git a/apps/X11/InstallMgr/src/pix/upgrdlk.xpm b/apps/X11/InstallMgr/src/pix/upgrdlk.xpm
new file mode 100644
index 0000000..fbc1977
--- /dev/null
+++ b/apps/X11/InstallMgr/src/pix/upgrdlk.xpm
@@ -0,0 +1,25 @@
+/* XPM */
+static char * upgrdlk_xpm[] = {
+"16 16 6 1",
+" c None",
+". c #000000",
+"+ c #00FFFF",
+"@ c #FFFF00",
+"# c #808080",
+"$ c #FFFFFF",
+" .... . ",
+" .++++. .@. ",
+" .+..#. .$. ",
+".........@. ",
+".++++++..$. ",
+".+....#..@. ",
+".+#####..$.. ",
+".+....#.$@.@. ",
+" ......$@$.$. ",
+" .@$@$@$@. ",
+" .@$@$@. ",
+" ........ ",
+" .++++++. ",
+" ......... ",
+" .@....... ",
+" ......... "};
diff --git a/apps/X11/InstallMgr/src/support.c b/apps/X11/InstallMgr/src/support.c
new file mode 100644
index 0000000..6e66c25
--- /dev/null
+++ b/apps/X11/InstallMgr/src/support.c
@@ -0,0 +1,143 @@
+/*
+ * DO NOT EDIT THIS FILE - it is generated by Glade.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <string.h>
+
+#include <gnome.h>
+
+#include "support.h"
+
+/* This is an internally used function to create pixmaps. */
+static GtkWidget* create_dummy_pixmap (GtkWidget *widget,
+ gboolean gnome_pixmap);
+
+GtkWidget*
+lookup_widget (GtkWidget *widget,
+ const gchar *widget_name)
+{
+ GtkWidget *parent, *found_widget;
+
+ for (;;)
+ {
+ if (GTK_IS_MENU (widget))
+ parent = gtk_menu_get_attach_widget (GTK_MENU (widget));
+ else
+ parent = widget->parent;
+ if (parent == NULL)
+ break;
+ widget = parent;
+ }
+
+ found_widget = (GtkWidget*) gtk_object_get_data (GTK_OBJECT (widget),
+ widget_name);
+ if (!found_widget)
+ g_warning ("Widget not found: %s", widget_name);
+ return found_widget;
+}
+
+/* This is a dummy pixmap we use when a pixmap can't be found. */
+static char *dummy_pixmap_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"1 1 1 1",
+" c None",
+/* pixels */
+" ",
+" "
+};
+
+/* This is an internally used function to create pixmaps. */
+static GtkWidget*
+create_dummy_pixmap (GtkWidget *widget,
+ gboolean gnome_pixmap)
+{
+ GdkColormap *colormap;
+ GdkPixmap *gdkpixmap;
+ GdkBitmap *mask;
+ GtkWidget *pixmap;
+
+ if (gnome_pixmap)
+ {
+ return gnome_pixmap_new_from_xpm_d (dummy_pixmap_xpm);
+ }
+
+ colormap = gtk_widget_get_colormap (widget);
+ gdkpixmap = gdk_pixmap_colormap_create_from_xpm_d (NULL, colormap, &mask,
+ NULL, dummy_pixmap_xpm);
+ if (gdkpixmap == NULL)
+ g_error ("Couldn't create replacement pixmap.");
+ pixmap = gtk_pixmap_new (gdkpixmap, mask);
+ gdk_pixmap_unref (gdkpixmap);
+ gdk_bitmap_unref (mask);
+ return pixmap;
+}
+
+/* This is an internally used function to create pixmaps. */
+GtkWidget*
+create_pixmap (GtkWidget *widget,
+ const gchar *filename,
+ gboolean gnome_pixmap)
+{
+ GtkWidget *pixmap;
+ GdkColormap *colormap;
+ GdkPixmap *gdkpixmap;
+ GdkBitmap *mask;
+ gchar *pathname;
+
+ pathname = gnome_pixmap_file (filename);
+ if (!pathname)
+ {
+ g_warning (_("Couldn't find pixmap file: %s"), filename);
+ return create_dummy_pixmap (widget, gnome_pixmap);
+ }
+
+ if (gnome_pixmap)
+ {
+ pixmap = gnome_pixmap_new_from_file (pathname);
+ g_free (pathname);
+ return pixmap;
+ }
+
+ colormap = gtk_widget_get_colormap (widget);
+ gdkpixmap = gdk_pixmap_colormap_create_from_xpm (NULL, colormap, &mask,
+ NULL, pathname);
+ if (gdkpixmap == NULL)
+ {
+ g_warning (_("Couldn't create pixmap from file: %s"), pathname);
+ g_free (pathname);
+ return create_dummy_pixmap (widget, gnome_pixmap);
+ }
+ g_free (pathname);
+
+ pixmap = gtk_pixmap_new (gdkpixmap, mask);
+ gdk_pixmap_unref (gdkpixmap);
+ gdk_bitmap_unref (mask);
+ return pixmap;
+}
+
+/* This is an internally used function to create imlib images. */
+GdkImlibImage*
+create_image (const gchar *filename)
+{
+ GdkImlibImage *image;
+ gchar *pathname;
+
+ pathname = gnome_pixmap_file (filename);
+ if (!pathname)
+ {
+ g_warning (_("Couldn't find pixmap file: %s"), filename);
+ return NULL;
+ }
+
+ image = gdk_imlib_load_image (pathname);
+ g_free (pathname);
+ return image;
+}
+
diff --git a/apps/X11/InstallMgr/src/support.h b/apps/X11/InstallMgr/src/support.h
new file mode 100644
index 0000000..d9bb072
--- /dev/null
+++ b/apps/X11/InstallMgr/src/support.h
@@ -0,0 +1,34 @@
+/*
+ * DO NOT EDIT THIS FILE - it is generated by Glade.
+ */
+
+#include <gnome.h>
+
+/*
+ * Public Functions.
+ */
+
+/*
+ * This function returns a widget in a component created by Glade.
+ * Call it with the toplevel widget in the component (i.e. a window/dialog),
+ * or alternatively any widget in the component, and the name of the widget
+ * you want returned.
+ */
+GtkWidget* lookup_widget (GtkWidget *widget,
+ const gchar *widget_name);
+
+/* get_widget() is deprecated. Use lookup_widget instead. */
+#define get_widget lookup_widget
+
+
+/*
+ * Private Functions.
+ */
+
+/* This is used to create the pixmaps in the interface. */
+GtkWidget* create_pixmap (GtkWidget *widget,
+ const gchar *filename,
+ gboolean gnome_pixmap);
+
+GdkImlibImage* create_image (const gchar *filename);
+
diff --git a/apps/X11/InstallMgr/stamp-h b/apps/X11/InstallMgr/stamp-h
new file mode 100644
index 0000000..9788f70
--- /dev/null
+++ b/apps/X11/InstallMgr/stamp-h
@@ -0,0 +1 @@
+timestamp
diff --git a/apps/X11/InstallMgr/stamp-h.in b/apps/X11/InstallMgr/stamp-h.in
new file mode 100644
index 0000000..9788f70
--- /dev/null
+++ b/apps/X11/InstallMgr/stamp-h.in
@@ -0,0 +1 @@
+timestamp
diff --git a/apps/X11/Makefile b/apps/X11/Makefile
new file mode 100644
index 0000000..ef8eccd
--- /dev/null
+++ b/apps/X11/Makefile
@@ -0,0 +1,5 @@
+
+root := ../..
+
+all:
+ make -C ${root}
diff --git a/apps/X11/VCL/Makefile b/apps/X11/VCL/Makefile
new file mode 100644
index 0000000..81f7721
--- /dev/null
+++ b/apps/X11/VCL/Makefile
@@ -0,0 +1,4 @@
+root := ../../..
+
+all:
+ make -C ${root}
diff --git a/apps/X11/VCL/TComponent.cpp b/apps/X11/VCL/TComponent.cpp
new file mode 100644
index 0000000..c01f110
--- /dev/null
+++ b/apps/X11/VCL/TComponent.cpp
@@ -0,0 +1,8 @@
+#include <TComponent.h>
+
+TComponent::TComponent(TComponent *AOwner) {
+}
+
+
+TComponent::~TComponent() {
+}
diff --git a/apps/X11/VCL/TComponent.h b/apps/X11/VCL/TComponent.h
new file mode 100644
index 0000000..6981980
--- /dev/null
+++ b/apps/X11/VCL/TComponent.h
@@ -0,0 +1,134 @@
+#ifndef TCOMPONENT_H
+#define TCOMPONENT_H
+
+#include <TPersistent.h>
+#include <string>
+
+enum TOperation {opInsert, opRemove};
+
+/*
+ TComponentState = set of (csLoading, csReading, csWriting, csDestroying,
+ csDesigning, csAncestor, csUpdating, csFixups);
+ TComponentStyle = set of (csInheritable, csCheckPropAvail);
+ TGetChildProc = procedure (Child: TComponent) of object;
+*/
+
+typedef string TComponentName;
+
+/*
+ IVCLComObject = interface
+ ['{E07892A0-F52F-11CF-BD2F-0020AF0E5B81}']
+ function GetTypeInfoCount(out Count: Integer): HResult; stdcall;
+ function GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult; stdcall;
+ function GetIDsOfNames(const IID: TGUID; Names: Pointer;
+ NameCount, LocaleID: Integer; DispIDs: Pointer): HResult; stdcall;
+ function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+ Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult; stdcall;
+ function SafeCallException(ExceptObject: TObject;
+ ExceptAddr: Pointer): HResult;
+ procedure FreeOnRelease;
+ end;
+
+ IDesignerNotify = interface
+ ['{B971E807-E3A6-11D1-AAB1-00C04FB16FBC}']
+ procedure Modified;
+ procedure Notification(AnObject: TPersistent; Operation: TOperation);
+ end;
+
+ TBasicAction = class;
+
+*/
+class TComponent : public TPersistent {
+private:
+/*
+ FOwner: TComponent;
+ FName: TComponentName;
+ FTag: Longint;
+ FComponents: TList;
+ FFreeNotifies: TList;
+ FDesignInfo: Longint;
+ FVCLComObject: Pointer;
+ FComponentState: TComponentState;
+ function GetComObject: IUnknown;
+ function GetComponent(AIndex: Integer): TComponent;
+ function GetComponentCount: Integer;
+ function GetComponentIndex: Integer;
+ procedure Insert(AComponent: TComponent);
+ procedure ReadLeft(Reader: TReader);
+ procedure ReadTop(Reader: TReader);
+ procedure Remove(AComponent: TComponent);
+ procedure SetComponentIndex(Value: Integer);
+ procedure SetReference(Enable: Boolean);
+ procedure WriteLeft(Writer: TWriter);
+ procedure WriteTop(Writer: TWriter);
+ protected
+ FComponentStyle: TComponentStyle;
+ procedure ChangeName(const NewName: TComponentName);
+ procedure DefineProperties(Filer: TFiler); override;
+ procedure GetChildren(Proc: TGetChildProc; Root: TComponent); dynamic;
+ function GetChildOwner: TComponent; dynamic;
+ function GetChildParent: TComponent; dynamic;
+ function GetOwner: TPersistent; override;
+ procedure Loaded; virtual;
+ procedure Notification(AComponent: TComponent;
+ Operation: TOperation); virtual;
+ procedure ReadState(Reader: TReader); virtual;
+ procedure SetAncestor(Value: Boolean);
+ procedure SetDesigning(Value: Boolean);
+ procedure SetName(const NewName: TComponentName); virtual;
+ procedure SetChildOrder(Child: TComponent; Order: Integer); dynamic;
+ procedure SetParentComponent(Value: TComponent); dynamic;
+ procedure Updating; dynamic;
+ procedure Updated; dynamic;
+ class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); virtual;
+ procedure ValidateRename(AComponent: TComponent;
+ const CurName, NewName: string); virtual;
+ procedure ValidateContainer(AComponent: TComponent); dynamic;
+ procedure ValidateInsert(AComponent: TComponent); dynamic;
+ procedure WriteState(Writer: TWriter); virtual;
+ { IUnknown }
+ function QueryInterface(const IID: TGUID; out Obj): HResult; virtual; stdcall;
+ function _AddRef: Integer; stdcall;
+ function _Release: Integer; stdcall;
+ { IDispatch }
+ function GetTypeInfoCount(out Count: Integer): HResult; stdcall;
+ function GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult; stdcall;
+ function GetIDsOfNames(const IID: TGUID; Names: Pointer;
+ NameCount, LocaleID: Integer; DispIDs: Pointer): HResult; stdcall;
+ function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
+ Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult; stdcall;
+*/
+public:
+ TComponent(TComponent *AOwner);
+ ~TComponent();
+/*
+ procedure DestroyComponents;
+ procedure Destroying;
+ function ExecuteAction(Action: TBasicAction): Boolean; dynamic;
+ function FindComponent(const AName: string): TComponent;
+ procedure FreeNotification(AComponent: TComponent);
+ procedure FreeOnRelease;
+ function GetParentComponent: TComponent; dynamic;
+ function GetNamePath: string; override;
+ function HasParent: Boolean; dynamic;
+ procedure InsertComponent(AComponent: TComponent);
+ procedure RemoveComponent(AComponent: TComponent);
+ function SafeCallException(ExceptObject: TObject;
+ ExceptAddr: Pointer): HResult; override;
+ function UpdateAction(Action: TBasicAction): Boolean; dynamic;
+ property ComObject: IUnknown read GetComObject;
+ property Components[Index: Integer]: TComponent read GetComponent;
+ property ComponentCount: Integer read GetComponentCount;
+ property ComponentIndex: Integer read GetComponentIndex write SetComponentIndex;
+ property ComponentState: TComponentState read FComponentState;
+ property ComponentStyle: TComponentStyle read FComponentStyle;
+ property DesignInfo: Longint read FDesignInfo write FDesignInfo;
+ property Owner: TComponent read FOwner;
+ property VCLComObject: Pointer read FVCLComObject write FVCLComObject;
+ published
+ property Name: TComponentName read FName write SetName stored False;
+ property Tag: Longint read FTag write FTag default 0;
+*/
+};
+
+#endif
diff --git a/apps/X11/VCL/TControl.cpp b/apps/X11/VCL/TControl.cpp
new file mode 100644
index 0000000..3a0ac4d
--- /dev/null
+++ b/apps/X11/VCL/TControl.cpp
@@ -0,0 +1,1874 @@
+#include <TControl.h>
+
+TControl::TControl(TComponent *AOwner) : TComponent(AOwner) {
+}
+
+TControl::~TControl() {
+}
+
+
+/*
+procedure TControl.Repaint;
+var
+ DC: HDC;
+begin
+ if (Visible or (csDesigning in ComponentState) and
+ not (csNoDesignVisible in ControlStyle)) and (Parent <> nil) and
+ Parent.HandleAllocated then
+ if csOpaque in ControlStyle then
+ begin
+ DC := GetDC(Parent.Handle);
+ try
+ IntersectClipRect(DC, Left, Top, Left + Width, Top + Height);
+ Parent.PaintControls(DC, Self);
+ finally
+ ReleaseDC(Parent.Handle, DC);
+ end;
+ end else
+ begin
+ Invalidate;
+ Update;
+ end;
+end;
+*/
+void TControl::Repaint() {
+}
+
+
+/*
+{ TControl }
+
+constructor TControl.Create(AOwner: TComponent);
+begin
+ inherited Create(AOwner);
+ FWindowProc := WndProc;
+ FControlStyle := [csCaptureMouse, csClickEvents, csSetCaption, csDoubleClicks];
+ FFont := TFont.Create;
+ FFont.OnChange := FontChanged;
+ FAnchors := [akLeft, akTop];
+ FConstraints := TSizeConstraints.Create(Self);
+ FConstraints.OnChange := DoConstraintsChange;
+ FColor := clWindow;
+ FVisible := True;
+ FEnabled := True;
+ FParentFont := True;
+ FParentColor := True;
+ FParentShowHint := True;
+ FParentBiDiMode := True;
+ FIsControl := False;
+ FDragCursor := crDrag;
+ FFloatingDockSiteClass := TCustomDockForm;
+end;
+
+destructor TControl.Destroy;
+begin
+ Application.ControlDestroyed(Self);
+ SetParent(nil);
+ if (FHostDockSite <> nil) and not (csDestroying in FHostDockSite.ComponentState) then
+ begin
+ FHostDockSite.Perform(CM_UNDOCKCLIENT, 0, Integer(Self));
+ Dock(NullDockSite, BoundsRect);
+ FHostDockSite := nil;
+ end;
+ FActionLink.Free;
+ FActionLink := nil;
+ FConstraints.Free;
+ FFont.Free;
+ StrDispose(FText);
+ inherited Destroy;
+end;
+
+function TControl.GetDragImages: TDragImageList;
+begin
+ Result := nil;
+end;
+
+function TControl.GetEnabled: Boolean;
+begin
+ Result := FEnabled;
+end;
+
+function TControl.GetPalette: HPALETTE;
+begin
+ Result := 0;
+end;
+
+function TControl.HasParent: Boolean;
+begin
+ Result := FParent <> nil;
+end;
+
+function TControl.GetParentComponent: TComponent;
+begin
+ Result := Parent;
+end;
+
+procedure TControl.SetParentComponent(Value: TComponent);
+begin
+ if Value is TWinControl then SetParent(TWinControl(Value));
+end;
+
+function TControl.PaletteChanged(Foreground: Boolean): Boolean;
+var
+ OldPalette, Palette: HPALETTE;
+ WindowHandle: HWnd;
+ DC: HDC;
+begin
+ Result := False;
+ if not Visible then Exit;
+ Palette := GetPalette;
+ if Palette <> 0 then
+ begin
+ DC := GetDeviceContext(WindowHandle);
+ OldPalette := SelectPalette(DC, Palette, not Foreground);
+ if RealizePalette(DC) <> 0 then Invalidate;
+ SelectPalette(DC, OldPalette, True);
+ ReleaseDC(WindowHandle, DC);
+ Result := True;
+ end;
+end;
+
+function TControl.GetAction: TBasicAction;
+begin
+ if ActionLink <> nil then
+ Result := ActionLink.Action else
+ Result := nil;
+end;
+
+procedure TControl.SetAction(Value: TBasicAction);
+begin
+ if Value = nil then
+ begin
+ ActionLink.Free;
+ ActionLink := nil;
+ Exclude(FControlStyle, csActionClient);
+ end
+ else
+ begin
+ Include(FControlStyle, csActionClient);
+ if ActionLink = nil then
+ ActionLink := GetActionLinkClass.Create(Self);
+ ActionLink.Action := Value;
+ ActionLink.OnChange := DoActionChange;
+ ActionChange(Value, csLoading in Value.ComponentState);
+ Value.FreeNotification(Self);
+ end;
+end;
+
+function TControl.IsAnchorsStored: Boolean;
+begin
+ Result := Anchors <> AnchorAlign[Align];
+end;
+
+procedure TControl.SetDragMode(Value: TDragMode);
+begin
+ FDragMode := Value;
+end;
+
+procedure TControl.RequestAlign;
+begin
+ if Parent <> nil then Parent.AlignControl(Self);
+end;
+
+procedure TControl.Resize;
+begin
+ if Assigned(FOnResize) then FOnResize(Self);
+end;
+
+procedure TControl.ReadState(Reader: TReader);
+begin
+ Include(FControlState, csReadingState);
+ if Reader.Parent is TWinControl then Parent := TWinControl(Reader.Parent);
+ inherited ReadState(Reader);
+ Exclude(FControlState, csReadingState);
+ if Parent <> nil then
+ begin
+ Perform(CM_PARENTCOLORCHANGED, 0, 0);
+ Perform(CM_PARENTFONTCHANGED, 0, 0);
+ Perform(CM_PARENTSHOWHINTCHANGED, 0, 0);
+ Perform(CM_SYSFONTCHANGED, 0, 0);
+ Perform(CM_PARENTBIDIMODECHANGED, 0, 0);
+ end;
+end;
+
+procedure TControl.Notification(AComponent: TComponent;
+ Operation: TOperation);
+begin
+ inherited Notification(AComponent, Operation);
+ if Operation = opRemove then
+ if AComponent = PopupMenu then PopupMenu := nil
+ else if AComponent = Action then Action := nil;
+end;
+
+procedure TControl.SetAlign(Value: TAlign);
+var
+ OldAlign: TAlign;
+begin
+ if FAlign <> Value then
+ begin
+ OldAlign := FAlign;
+ FAlign := Value;
+ Anchors := AnchorAlign[Value];
+ if not (csLoading in ComponentState) and (not (csDesigning in ComponentState) or
+ (Parent <> nil)) then
+ if ((OldAlign in [alTop, alBottom]) = (Value in [alRight, alLeft])) and
+ not (OldAlign in [alNone, alClient]) and not (Value in [alNone, alClient]) then
+ SetBounds(Left, Top, Height, Width)
+ else
+ AdjustSize;
+ end;
+ RequestAlign;
+end;
+
+procedure TControl.SetBounds(ALeft, ATop, AWidth, AHeight: Integer);
+begin
+ if CheckNewSize(AWidth, AHeight) and
+ ((ALeft <> FLeft) or (ATop <> FTop) or
+ (AWidth <> FWidth) or (AHeight <> FHeight)) then
+ begin
+ InvalidateControl(Visible, False);
+ UpdateLastResize(AWidth, AHeight);
+ FLeft := ALeft;
+ FTop := ATop;
+ FWidth := AWidth;
+ FHeight := AHeight;
+ Invalidate;
+ Perform(WM_WINDOWPOSCHANGED, 0, 0);
+ RequestAlign;
+ if not (csLoading in ComponentState) then Resize;
+ end;
+end;
+
+procedure TControl.SetLeft(Value: Integer);
+begin
+ SetBounds(Value, FTop, FWidth, FHeight);
+ Include(FScalingFlags, sfLeft);
+end;
+
+procedure TControl.SetTop(Value: Integer);
+begin
+ SetBounds(FLeft, Value, FWidth, FHeight);
+ Include(FScalingFlags, sfTop);
+end;
+
+procedure TControl.SetWidth(Value: Integer);
+begin
+ SetBounds(FLeft, FTop, Value, FHeight);
+ Include(FScalingFlags, sfWidth);
+end;
+
+procedure TControl.SetHeight(Value: Integer);
+begin
+ SetBounds(FLeft, FTop, FWidth, Value);
+ Include(FScalingFlags, sfHeight);
+end;
+
+procedure TControl.Dock(NewDockSite: TWinControl; ARect: TRect);
+var
+ PrevDockSite: TWinControl;
+begin
+ if HostDockSite <> NewDockSite then
+ begin
+ if (FHostDockSite <> nil) and (FHostDockSite.FDockClients <> nil) then
+ FHostDockSite.FDockClients.Remove(Self);
+ if (NewDockSite <> nil) and (NewDockSite <> NullDockSite) and
+ (NewDockSite.FDockClients <> nil) then
+ NewDockSite.FDockClients.Add(Self);
+ end;
+ Include(FControlState, csDocking);
+ try
+ if NewDockSite <> NullDockSite then
+ DoDock(NewDockSite, ARect);
+ if FHostDockSite <> NewDockSite then
+ begin
+ PrevDockSite := FHostDockSite;
+ if NewDockSite <> NullDockSite then
+ begin
+ FHostDockSite := NewDockSite;
+ if NewDockSite <> nil then NewDockSite.DoAddDockClient(Self, ARect);
+ end
+ else
+ FHostDockSite := nil;
+ if PrevDockSite <> nil then PrevDockSite.DoRemoveDockClient(Self);
+ end;
+ finally
+ Exclude(FControlState, csDocking);
+ end;
+end;
+
+procedure TControl.DoDock(NewDockSite: TWinControl; var ARect: TRect);
+begin
+ { Erase TControls before UpdateboundsRect modifies position }
+ if not (Self is TWinControl) then InvalidateControl(Visible, False);
+ if Parent <> NewDockSite then
+ UpdateBoundsRect(ARect) else
+ BoundsRect := ARect;
+ if (NewDockSite = nil) or (NewDockSite = NullDockSite) then Parent := nil;
+end;
+
+procedure TControl.SetHostDockSite(Value: TWinControl);
+begin
+ Dock(Value, BoundsRect);
+end;
+
+function TControl.GetBoundsRect: TRect;
+begin
+ Result.Left := Left;
+ Result.Top := Top;
+ Result.Right := Left + Width;
+ Result.Bottom := Top + Height;
+end;
+
+procedure TControl.SetBoundsRect(const Rect: TRect);
+begin
+ with Rect do SetBounds(Left, Top, Right - Left, Bottom - Top);
+end;
+
+function TControl.GetClientRect: TRect;
+begin
+ Result.Left := 0;
+ Result.Top := 0;
+ Result.Right := Width;
+ Result.Bottom := Height;
+end;
+
+function TControl.GetClientWidth: Integer;
+begin
+ Result := ClientRect.Right;
+end;
+
+procedure TControl.SetClientWidth(Value: Integer);
+begin
+ SetClientSize(Point(Value, ClientHeight));
+end;
+
+function TControl.GetClientHeight: Integer;
+begin
+ Result := ClientRect.Bottom;
+end;
+
+procedure TControl.SetClientHeight(Value: Integer);
+begin
+ SetClientSize(Point(ClientWidth, Value));
+end;
+
+function TControl.GetClientOrigin: TPoint;
+begin
+ if Parent = nil then
+ raise EInvalidOperation.CreateFmt(SParentRequired, [Name]);
+ Result := Parent.ClientOrigin;
+ Inc(Result.X, FLeft);
+ Inc(Result.Y, FTop);
+end;
+
+function TControl.ClientToScreen(const Point: TPoint): TPoint;
+var
+ Origin: TPoint;
+begin
+ Origin := ClientOrigin;
+ Result.X := Point.X + Origin.X;
+ Result.Y := Point.Y + Origin.Y;
+end;
+
+function TControl.ScreenToClient(const Point: TPoint): TPoint;
+var
+ Origin: TPoint;
+begin
+ Origin := ClientOrigin;
+ Result.X := Point.X - Origin.X;
+ Result.Y := Point.Y - Origin.Y;
+end;
+
+procedure TControl.SendCancelMode(Sender: TControl);
+var
+ Control: TControl;
+begin
+ Control := Self;
+ while Control <> nil do
+ begin
+ if Control is TCustomForm then
+ TCustomForm(Control).SendCancelMode(Sender);
+ Control := Control.Parent;
+ end;
+end;
+
+procedure TControl.SendDockNotification(Msg: Cardinal; WParam, LParam: Integer);
+var
+ NotifyRec: TDockNotifyRec;
+begin
+ if (FHostDockSite <> nil) and (DragObject = nil) and
+ (ComponentState * [csLoading, csDestroying] = []) then
+ begin
+ with NotifyRec do
+ begin
+ ClientMsg := Msg;
+ MsgWParam := WParam;
+ MsgLParam := LParam;
+ end;
+ FHostDockSite.Perform(CM_DOCKNOTIFICATION, Integer(Self), Integer(@NotifyRec));
+ end;
+end;
+
+procedure TControl.Changed;
+begin
+ Perform(CM_CHANGED, 0, Longint(Self));
+end;
+
+procedure TControl.ChangeScale(M, D: Integer);
+var
+ X, Y, W, H: Integer;
+ Flags: TScalingFlags;
+begin
+ if M <> D then
+ begin
+ if csLoading in ComponentState then
+ Flags := ScalingFlags else
+ Flags := [sfLeft, sfTop, sfWidth, sfHeight, sfFont];
+ if sfLeft in Flags then
+ X := MulDiv(FLeft, M, D) else
+ X := FLeft;
+ if sfTop in Flags then
+ Y := MulDiv(FTop, M, D) else
+ Y := FTop;
+ if (sfWidth in Flags) and not (csFixedWidth in ControlStyle) then
+ if sfLeft in Flags then
+ W := MulDiv(FLeft + FWidth, M, D) - X else
+ W := MulDiv(FWidth, M, D)
+ else W := FWidth;
+ if (sfHeight in Flags) and not (csFixedHeight in ControlStyle) then
+ if sfHeight in Flags then
+ H := MulDiv(FTop + FHeight, M, D) - Y else
+ H := MulDiv(FTop, M, D )
+ else H := FHeight;
+ SetBounds(X, Y, W, H);
+ if not ParentFont and (sfFont in Flags) then
+ Font.Size := MulDiv(Font.Size, M, D);
+ end;
+ FScalingFlags := [];
+end;
+
+procedure TControl.SetAutoSize(Value: Boolean);
+begin
+ if FAutoSize <> Value then
+ begin
+ FAutoSize := Value;
+ if Value then AdjustSize;
+ end;
+end;
+
+procedure TControl.SetName(const Value: TComponentName);
+var
+ ChangeText: Boolean;
+begin
+ ChangeText := (csSetCaption in ControlStyle) and (Name = Text) and
+ ((Owner = nil) or not (Owner is TControl) or
+ not (csLoading in TControl(Owner).ComponentState));
+ inherited SetName(Value);
+ if ChangeText then Text := Value;
+end;
+
+procedure TControl.SetClientSize(Value: TPoint);
+var
+ Client: TRect;
+begin
+ Client := GetClientRect;
+ SetBounds(FLeft, FTop, Width - Client.Right + Value.X, Height -
+ Client.Bottom + Value.Y);
+end;
+
+procedure TControl.SetParent(AParent: TWinControl);
+begin
+ if FParent <> AParent then
+ begin
+ if Parent = Self then
+ raise EInvalidOperation.Create(SControlParentSetToSelf);
+ if FParent <> nil then FParent.RemoveControl(Self);
+ if AParent <> nil then AParent.InsertControl(Self);
+ end;
+end;
+
+procedure TControl.SetVisible(Value: Boolean);
+begin
+ if FVisible <> Value then
+ begin
+ VisibleChanging;
+ FVisible := Value;
+ Perform(CM_VISIBLECHANGED, Ord(Value), 0);
+ RequestAlign;
+ end;
+end;
+
+procedure TControl.SetEnabled(Value: Boolean);
+begin
+ if FEnabled <> Value then
+ begin
+ FEnabled := Value;
+ Perform(CM_ENABLEDCHANGED, 0, 0);
+ end;
+end;
+
+function TControl.GetTextLen: Integer;
+begin
+ Result := Perform(WM_GETTEXTLENGTH, 0, 0);
+end;
+
+function TControl.GetTextBuf(Buffer: PChar; BufSize: Integer): Integer;
+begin
+ Result := Perform(WM_GETTEXT, BufSize, Longint(Buffer));
+end;
+
+function TControl.GetUndockHeight: Integer;
+begin
+ if FUndockHeight > 0 then Result := FUndockHeight
+ else Result := Height;
+end;
+
+function TControl.GetUndockWidth: Integer;
+begin
+ if FUndockWidth > 0 then Result := FUndockWidth
+ else Result := Width;
+end;
+
+function TControl.GetTBDockHeight: Integer;
+begin
+ if FTBDockHeight > 0 then Result := FTBDockHeight
+ else Result := UndockHeight;
+end;
+
+function TControl.GetLRDockWidth: Integer;
+begin
+ if FLRDockWidth > 0 then Result := FLRDockWidth
+ else Result := UndockWidth;
+end;
+
+procedure TControl.SetPopupMenu(Value: TPopupMenu);
+begin
+ FPopupMenu := Value;
+ if Value <> nil then
+ begin
+ Value.ParentBiDiModeChanged(Self);
+ Value.FreeNotification(Self);
+ end;
+end;
+
+procedure TControl.SetTextBuf(Buffer: PChar);
+begin
+ Perform(WM_SETTEXT, 0, Longint(Buffer));
+ Perform(CM_TEXTCHANGED, 0, 0);
+end;
+
+function TControl.GetText: TCaption;
+var
+ Len: Integer;
+begin
+ Len := GetTextLen;
+ SetString(Result, PChar(nil), Len);
+ if Len <> 0 then GetTextBuf(Pointer(Result), Len + 1);
+end;
+
+procedure TControl.SetText(const Value: TCaption);
+begin
+ if GetText <> Value then SetTextBuf(PChar(Value));
+end;
+
+procedure TControl.SetBiDiMode(Value: TBiDiMode);
+begin
+ if FBiDiMode <> Value then
+ begin
+ FBiDiMode := Value;
+ FParentBiDiMode := False;
+ Perform(CM_BIDIMODECHANGED, 0, 0);
+ end;
+end;
+
+procedure TControl.FontChanged(Sender: TObject);
+begin
+ FParentFont := False;
+ FDesktopFont := False;
+ if Font.Height <> FFontHeight then
+ begin
+ Include(FScalingFlags, sfFont);
+ FFontHeight := Font.Height;
+ end;
+ Perform(CM_FONTCHANGED, 0, 0);
+end;
+
+procedure TControl.SetFont(Value: TFont);
+begin
+ FFont.Assign(Value);
+end;
+
+function TControl.IsFontStored: Boolean;
+begin
+ Result := not ParentFont and not DesktopFont;
+end;
+
+function TControl.IsShowHintStored: Boolean;
+begin
+ Result := not ParentShowHint;
+end;
+
+function TControl.IsBiDiModeStored: Boolean;
+begin
+ Result := not ParentBiDiMode;
+end;
+
+procedure TControl.SetParentFont(Value: Boolean);
+begin
+ if FParentFont <> Value then
+ begin
+ FParentFont := Value;
+ if FParent <> nil then Perform(CM_PARENTFONTCHANGED, 0, 0);
+ end;
+end;
+
+procedure TControl.SetDesktopFont(Value: Boolean);
+begin
+ if FDesktopFont <> Value then
+ begin
+ FDesktopFont := Value;
+ Perform(CM_SYSFONTCHANGED, 0, 0);
+ end;
+end;
+
+procedure TControl.SetShowHint(Value: Boolean);
+begin
+ if FShowHint <> Value then
+ begin
+ FShowHint := Value;
+ FParentShowHint := False;
+ Perform(CM_SHOWHINTCHANGED, 0, 0);
+ end;
+end;
+
+procedure TControl.SetParentShowHint(Value: Boolean);
+begin
+ if FParentShowHint <> Value then
+ begin
+ FParentShowHint := Value;
+ if FParent <> nil then Perform(CM_PARENTSHOWHINTCHANGED, 0, 0);
+ end;
+end;
+
+procedure TControl.SetColor(Value: TColor);
+begin
+ if FColor <> Value then
+ begin
+ FColor := Value;
+ FParentColor := False;
+ Perform(CM_COLORCHANGED, 0, 0);
+ end;
+end;
+
+function TControl.IsColorStored: Boolean;
+begin
+ Result := not ParentColor;
+end;
+
+procedure TControl.SetParentColor(Value: Boolean);
+begin
+ if FParentColor <> Value then
+ begin
+ FParentColor := Value;
+ if FParent <> nil then Perform(CM_PARENTCOLORCHANGED, 0, 0);
+ end;
+end;
+
+procedure TControl.SetParentBiDiMode(Value: Boolean);
+begin
+ if FParentBiDiMode <> Value then
+ begin
+ FParentBiDiMode := Value;
+ if FParent <> nil then Perform(CM_PARENTBIDIMODECHANGED, 0, 0);
+ end;
+end;
+
+procedure TControl.SetCursor(Value: TCursor);
+begin
+ if FCursor <> Value then
+ begin
+ FCursor := Value;
+ Perform(CM_CURSORCHANGED, 0, 0);
+ end;
+end;
+
+function TControl.GetMouseCapture: Boolean;
+begin
+ Result := GetCaptureControl = Self;
+end;
+
+procedure TControl.SetMouseCapture(Value: Boolean);
+begin
+ if MouseCapture <> Value then
+ if Value then SetCaptureControl(Self) else SetCaptureControl(nil);
+end;
+
+procedure TControl.BringToFront;
+begin
+ SetZOrder(True);
+end;
+
+procedure TControl.SendToBack;
+begin
+ SetZOrder(False);
+end;
+
+procedure TControl.SetZOrderPosition(Position: Integer);
+var
+ I, Count: Integer;
+ ParentForm: TCustomForm;
+begin
+ if FParent <> nil then
+ begin
+ I := FParent.FControls.IndexOf(Self);
+ if I >= 0 then
+ begin
+ Count := FParent.FControls.Count;
+ if Position < 0 then Position := 0;
+ if Position >= Count then Position := Count - 1;
+ if Position <> I then
+ begin
+ FParent.FControls.Delete(I);
+ FParent.FControls.Insert(Position, Self);
+ InvalidateControl(Visible, True);
+ ParentForm := ValidParentForm(Self);
+ if csPalette in ParentForm.ControlState then
+ TControl(ParentForm).PaletteChanged(True);
+ end;
+ end;
+ end;
+end;
+
+procedure TControl.SetZOrder(TopMost: Boolean);
+begin
+ if FParent <> nil then
+ if TopMost then
+ SetZOrderPosition(FParent.FControls.Count - 1) else
+ SetZOrderPosition(0);
+end;
+
+function TControl.GetDeviceContext(var WindowHandle: HWnd): HDC;
+begin
+ if Parent = nil then
+ raise EInvalidOperation.CreateFmt(SParentRequired, [Name]);
+ Result := Parent.GetDeviceContext(WindowHandle);
+ SetViewportOrgEx(Result, Left, Top, nil);
+ IntersectClipRect(Result, 0, 0, Width, Height);
+end;
+
+procedure TControl.InvalidateControl(IsVisible, IsOpaque: Boolean);
+var
+ Rect: TRect;
+
+ function BackgroundClipped: Boolean;
+ var
+ R: TRect;
+ List: TList;
+ I: Integer;
+ C: TControl;
+ begin
+ Result := True;
+ List := FParent.FControls;
+ I := List.IndexOf(Self);
+ while I > 0 do
+ begin
+ Dec(I);
+ C := List[I];
+ with C do
+ if C.Visible and (csOpaque in ControlStyle) then
+ begin
+ IntersectRect(R, Rect, BoundsRect);
+ if EqualRect(R, Rect) then Exit;
+ end;
+ end;
+ Result := False;
+ end;
+
+begin
+ if (IsVisible or (csDesigning in ComponentState) and
+ not (csNoDesignVisible in ControlStyle)) and (Parent <> nil) and
+ Parent.HandleAllocated then
+ begin
+ Rect := BoundsRect;
+ InvalidateRect(Parent.Handle, @Rect, not (IsOpaque or
+ (csOpaque in Parent.ControlStyle) or BackgroundClipped));
+ end;
+end;
+
+procedure TControl.Invalidate;
+begin
+ InvalidateControl(Visible, csOpaque in ControlStyle);
+end;
+
+procedure TControl.Hide;
+begin
+ Visible := False;
+end;
+
+procedure TControl.Show;
+begin
+ if Parent <> nil then Parent.ShowControl(Self);
+ if not (csDesigning in ComponentState) or
+ (csNoDesignVisible in ControlStyle) then Visible := True;
+end;
+
+procedure TControl.Update;
+begin
+ if Parent <> nil then Parent.Update;
+end;
+
+procedure TControl.Refresh;
+begin
+ Repaint;
+end;
+
+function TControl.GetControlsAlignment: TAlignment;
+begin
+ Result := taLeftJustify;
+end;
+
+function TControl.IsRightToLeft: Boolean;
+begin
+ Result := SysLocale.MiddleEast and (BiDiMode <> bdLeftToRight);
+end;
+
+function TControl.UseRightToLeftReading: Boolean;
+begin
+ Result := SysLocale.MiddleEast and (BiDiMode <> bdLeftToRight);
+end;
+
+function TControl.UseRightToLeftAlignment: Boolean;
+begin
+ Result := SysLocale.MiddleEast and (BiDiMode = bdRightToLeft);
+end;
+
+function TControl.UseRightToLeftScrollBar: Boolean;
+begin
+ Result := SysLocale.MiddleEast and
+ (BiDiMode in [bdRightToLeft, bdRightToLeftNoAlign]);
+end;
+
+procedure TControl.BeginAutoDrag;
+begin
+ BeginDrag(Mouse.DragImmediate, Mouse.DragThreshold);
+end;
+
+procedure TControl.BeginDrag(Immediate: Boolean; Threshold: Integer);
+var
+ P: TPoint;
+begin
+ if (Self is TCustomForm) and (FDragKind <> dkDock) then
+ raise EInvalidOperation.Create(SCannotDragForm);
+ CalcDockSizes;
+ if (DragControl = nil) or (DragControl = Pointer($FFFFFFFF)) then
+ begin
+ DragControl := nil;
+ if csLButtonDown in ControlState then
+ begin
+ GetCursorPos(P);
+ P := ScreenToClient(P);
+ Perform(WM_LBUTTONUP, 0, Longint(PointToSmallPoint(P)));
+ end;
+ { Use default value when Threshold < 0 }
+ if Threshold < 0 then
+ Threshold := Mouse.DragThreshold;
+ // prevent calling EndDrag within BeginDrag
+ if DragControl <> Pointer($FFFFFFFF) then
+ DragInitControl(Self, Immediate, Threshold);
+ end;
+end;
+
+procedure TControl.EndDrag(Drop: Boolean);
+begin
+ if Dragging then DragDone(Drop)
+ // prevent calling EndDrag within BeginDrag
+ else if DragControl = nil then DragControl := Pointer($FFFFFFFF);
+end;
+
+procedure TControl.DragCanceled;
+begin
+end;
+
+function TControl.Dragging: Boolean;
+begin
+ Result := DragControl = Self;
+end;
+
+procedure TControl.DragOver(Source: TObject; X, Y: Integer;
+ State: TDragState; var Accept: Boolean);
+begin
+ Accept := False;
+ if Assigned(FOnDragOver) then
+ begin
+ Accept := True;
+ FOnDragOver(Self, Source, X, Y, State, Accept);
+ end;
+end;
+
+procedure TControl.DragDrop(Source: TObject; X, Y: Integer);
+begin
+ if Assigned(FOnDragDrop) then FOnDragDrop(Self, Source, X, Y);
+end;
+
+procedure TControl.DoStartDrag(var DragObject: TDragObject);
+begin
+ if Assigned(FOnStartDrag) then FOnStartDrag(Self, DragObject);
+end;
+
+procedure TControl.DoEndDrag(Target: TObject; X, Y: Integer);
+begin
+ if Assigned(FOnEndDrag) then FOnEndDrag(Self, Target, X, Y);
+end;
+
+procedure TControl.PositionDockRect(DragDockObject: TDragDockObject);
+var
+ NewWidth, NewHeight: Integer;
+ TempX, TempY: Double;
+begin
+ with DragDockObject do
+ begin
+ if (DragTarget = nil) or (not TWinControl(DragTarget).UseDockManager) then
+ begin
+ NewWidth := Control.UndockWidth;
+ NewHeight := Control.UndockHeight;
+ // Drag position for dock rect is scaled relative to control's click point.
+ TempX := DragPos.X - ((NewWidth) * FMouseDeltaX);
+ TempY := DragPos.Y - ((NewHeight) * FMouseDeltaY);
+ with FDockRect do
+ begin
+ Left := Round(TempX);
+ Top := Round(TempY);
+ Right := Left + NewWidth;
+ Bottom := Top + NewHeight;
+ end;
+ { Allow DragDockObject final say on this new dock rect }
+ AdjustDockRect(FDockRect);
+ end
+ else begin
+ GetWindowRect(TWinControl(DragTarget).Handle, FDockRect);
+ if TWinControl(DragTarget).UseDockManager and
+ (TWinControl(DragTarget).DockManager <> nil) then
+ TWinControl(DragTarget).DockManager.PositionDockRect(Control,
+ DropOnControl, DropAlign, FDockRect);
+ end;
+ end;
+end;
+
+procedure TControl.DockTrackNoTarget(Source: TDragDockObject; X, Y: Integer);
+begin
+ PositionDockRect(Source);
+end;
+
+procedure TControl.DoEndDock(Target: TObject; X, Y: Integer);
+begin
+ if Assigned(FOnEndDock) then FOnEndDock(Self, Target, X, Y);
+end;
+
+procedure TControl.DoStartDock(var DragObject: TDragObject);
+begin
+ if Assigned(FOnStartDock) then FOnStartDock(Self, TDragDockObject(DragObject));
+end;
+
+procedure TControl.DefaultDockImage(DragDockObject: TDragDockObject;
+ Erase: Boolean);
+var
+ DesktopWindow: HWND;
+ DC: HDC;
+ OldBrush: HBrush;
+ DrawRect: TRect;
+ PenSize: Integer;
+begin
+ with DragDockObject do
+ begin
+ PenSize := FrameWidth;
+ if Erase then DrawRect := FEraseDockRect
+ else DrawRect := FDockRect;
+ end;
+ DesktopWindow := GetDesktopWindow;
+ DC := GetDCEx(DesktopWindow, 0, DCX_CACHE or DCX_LOCKWINDOWUPDATE);
+ try
+ OldBrush := SelectObject(DC, DragDockObject.Brush.Handle);
+ with DrawRect do
+ begin
+ PatBlt(DC, Left + PenSize, Top, Right - Left - PenSize, PenSize, PATINVERT);
+ PatBlt(DC, Right - PenSize, Top + PenSize, PenSize, Bottom - Top - PenSize, PATINVERT);
+ PatBlt(DC, Left, Bottom - PenSize, Right - Left - PenSize, PenSize, PATINVERT);
+ PatBlt(DC, Left, Top, PenSize, Bottom - Top - PenSize, PATINVERT);
+ end;
+ SelectObject(DC, OldBrush);
+ finally
+ ReleaseDC(DesktopWindow, DC);
+ end;
+end;
+
+procedure TControl.DrawDragDockImage(DragDockObject: TDragDockObject);
+begin
+ DefaultDockImage(DragDockObject, False);
+end;
+
+procedure TControl.EraseDragDockImage(DragDockObject: TDragDockObject);
+begin
+ DefaultDockImage(DragDockObject, True);
+end;
+
+procedure TControl.DoDragMsg(var DragMsg: TCMDrag);
+var
+ S: TObject;
+ Accepts, IsDockOp: Boolean;
+begin
+ with DragMsg, DragRec^ do
+ begin
+ S := Source;
+ IsDockOp := S is TDragDockObject;
+ if DragFreeObject and not IsDockOp then
+ S := (S as TDragControlObject).Control;
+ with ScreenToClient(Pos) do
+ case DragMessage of
+ dmDragEnter, dmDragLeave, dmDragMove:
+ begin
+ Accepts := True;
+ if IsDockOp then
+ begin
+ TWinControl(Target).DockOver(TDragDockObject(S), X, Y,
+ TDragState(DragMessage), Accepts)
+ end
+ else
+ DragOver(S, X, Y, TDragState(DragMessage), Accepts);
+ Result := Ord(Accepts);
+ end;
+ dmDragDrop:
+ begin
+ if IsDockOp then TWinControl(Target).DockDrop(TDragDockObject(S), X, Y)
+ else DragDrop(S, X, Y);
+ end;
+ end;
+ end;
+end;
+
+function TControl.ManualDock(NewDockSite: TWinControl; DropControl: TControl;
+ ControlSide: TAlign): Boolean;
+var
+ R: TRect;
+ DockObject: TDragDockObject;
+ HostDockSiteHandle: THandle;
+begin
+ if (NewDockSite = nil) or (NewDockSite = NullDockSite) then
+ begin
+ if (HostDockSite <> nil) and HostDockSite.UseDockManager and
+ (HostDockSite.DockManager <> nil) then
+ begin
+ HostDockSite.DockManager.GetControlBounds(Self, R);
+ MapWindowPoints(HostDockSite.Handle, 0, R.TopLeft, 2);
+ end
+ else begin
+ R.TopLeft := Point(Left, Top);
+ if Parent <> nil then R.TopLeft := Parent.ClientToScreen(R.TopLeft);
+ end;
+ R := Bounds(R.Left, R.Top, UndockWidth, UndockHeight);
+ Result := ManualFloat(R);
+ end
+ else
+ begin
+ CalcDockSizes;
+ Result := (HostDockSite = nil) or HostDockSite.DoUndock(NewDockSite, Self);
+ if Result then
+ begin
+ DockObject := TDragDockObject.Create(Self);
+ try
+ if HostDockSite <> nil then
+ HostDockSiteHandle := HostDockSite.Handle else
+ HostDockSiteHandle := 0;
+ R := BoundsRect;
+ if HostDockSiteHandle <> 0 then
+ MapWindowPoints(HostDockSiteHandle, 0, R, 2);
+ with DockObject do
+ begin
+ FDragTarget := NewDockSite;
+ FDropAlign := ControlSide;
+ FDropOnControl := DropControl;
+ DockRect := R;
+ end;
+ MapWindowPoints(0, NewDockSite.Handle, R.TopLeft, 1);
+ NewDockSite.DockDrop(DockObject, R.Left, R.Top);
+ finally
+ DockObject.Free;
+ end;
+ end;
+ end;
+end;
+
+function TControl.ManualFloat(ScreenPos: TRect): Boolean;
+var
+ FloatHost: TWinControl;
+begin
+ Result := (HostDockSite = nil) or HostDockSite.DoUndock(nil, Self);
+ if Result then
+ begin
+ FloatHost := CreateFloatingDockSite(ScreenPos);
+ if FloatHost <> nil then
+ Dock(FloatHost, Rect(0, 0, FloatHost.ClientWidth, FloatHost.ClientHeight))
+ else
+ Dock(FloatHost, ScreenPos);
+ end;
+end;
+
+function TControl.ReplaceDockedControl(Control: TControl;
+ NewDockSite: TWinControl; DropControl: TControl; ControlSide: TAlign): Boolean;
+var
+ OldDockSite: TWinControl;
+begin
+ Result := False;
+ if (Control.HostDockSite = nil) or ((Control.HostDockSite.UseDockManager) and
+ (Control.HostDockSite.DockManager <> nil)) then
+ begin
+ OldDockSite := Control.HostDockSite;
+ if OldDockSite <> nil then
+ OldDockSite.DockManager.SetReplacingControl(Control);
+ try
+ ManualDock(OldDockSite, nil, alTop);
+ finally
+ if OldDockSite <> nil then
+ OldDockSite.DockManager.SetReplacingControl(nil);
+ end;
+ if Control.ManualDock(NewDockSite, DropControl, ControlSide) then
+ Result := True;
+ end;
+end;
+
+procedure TControl.DoConstraintsChange(Sender: TObject);
+begin
+ AdjustSize;
+end;
+
+function TControl.CanAutoSize(var NewWidth, NewHeight: Integer): Boolean;
+begin
+ Result := True;
+end;
+
+function TControl.CanResize(var NewWidth, NewHeight: Integer): Boolean;
+begin
+ Result := True;
+ if Assigned(FOnCanResize) then FOnCanResize(Self, NewWidth, NewHeight, Result);
+end;
+
+function TControl.DoCanAutoSize(var NewWidth, NewHeight: Integer): Boolean;
+var
+ W, H: Integer;
+begin
+ if Align <> alClient then
+ begin
+ W := NewWidth;
+ H := NewHeight;
+ Result := CanAutoSize(W, H);
+ if Align in [alNone, alLeft, alRight] then
+ NewWidth := W;
+ if Align in [alNone, alTop, alBottom] then
+ NewHeight := H;
+ end
+ else Result := True;
+end;
+
+function TControl.DoCanResize(var NewWidth, NewHeight: Integer): Boolean;
+begin
+ Result := CanResize(NewWidth, NewHeight);
+ if Result then DoConstrainedResize(NewWidth, NewHeight);
+end;
+
+procedure TControl.ConstrainedResize(var MinWidth, MinHeight, MaxWidth,
+ MaxHeight: Integer);
+begin
+ if Assigned(FOnConstrainedResize) then FOnConstrainedResize(Self, MinWidth,
+ MinHeight, MaxWidth, MaxHeight);
+end;
+
+procedure TControl.DoConstrainedResize(var NewWidth, NewHeight: Integer);
+var
+ MinWidth, MinHeight, MaxWidth, MaxHeight: Integer;
+begin
+ if Constraints.MinWidth > 0 then
+ MinWidth := Constraints.MinWidth
+ else
+ MinWidth := 0;
+ if Constraints.MinHeight > 0 then
+ MinHeight := Constraints.MinHeight
+ else
+ MinHeight := 0;
+ if Constraints.MaxWidth > 0 then
+ MaxWidth := Constraints.MaxWidth
+ else
+ MaxWidth := 0;
+ if Constraints.MaxHeight > 0 then
+ MaxHeight := Constraints.MaxHeight
+ else
+ MaxHeight := 0;
+ { Allow override of constraints }
+ ConstrainedResize(MinWidth, MinHeight, MaxWidth, MaxHeight);
+ if (MaxWidth > 0) and (NewWidth > MaxWidth) then
+ NewWidth := MaxWidth
+ else if (MinWidth > 0) and (NewWidth < MinWidth) then
+ NewWidth := MinWidth;
+ if (MaxHeight > 0) and (NewHeight > MaxHeight) then
+ NewHeight := MaxHeight
+ else if (MinHeight > 0) and (NewHeight < MinHeight) then
+ NewHeight := MinHeight;
+end;
+
+function TControl.Perform(Msg: Cardinal; WParam, LParam: Longint): Longint;
+var
+ Message: TMessage;
+begin
+ Message.Msg := Msg;
+ Message.WParam := WParam;
+ Message.LParam := LParam;
+ Message.Result := 0;
+ if Self <> nil then WindowProc(Message);
+ Result := Message.Result;
+end;
+
+procedure TControl.CalcDockSizes;
+begin
+ if Floating then
+ begin
+ UndockHeight := Height;
+ UndockWidth := Width;
+ end
+ else if HostDockSite <> nil then
+ begin
+ if (DockOrientation = doVertical) or
+ (HostDockSite.Align in [alTop, alBottom]) then
+ TBDockHeight := Height
+ else if (DockOrientation = doHorizontal) or
+ (HostDockSite.Align in [alLeft, alRight]) then
+ LRDockWidth := Width;
+ end;
+end;
+
+procedure TControl.UpdateBoundsRect(const R: TRect);
+begin
+ UpdateLastResize(R.Right - R.Left, R.Bottom - R.Top);
+ FLeft := R.Left;
+ FTop := R.Top;
+ FWidth := R.Right - R.Left;
+ FHeight := R.Bottom - R.Top;
+end;
+
+procedure TControl.VisibleChanging;
+begin
+end;
+
+procedure TControl.WndProc(var Message: TMessage);
+var
+ Form: TCustomForm;
+begin
+ if (csDesigning in ComponentState) then
+ begin
+ Form := GetParentForm(Self);
+ if (Form <> nil) and (Form.Designer <> nil) and
+ Form.Designer.IsDesignMsg(Self, Message) then Exit;
+ end
+ else if (Message.Msg >= WM_KEYFIRST) and (Message.Msg <= WM_KEYLAST) then
+ begin
+ Form := GetParentForm(Self);
+ if (Form <> nil) and Form.WantChildKey(Self, Message) then Exit;
+ end
+ else if (Message.Msg >= WM_MOUSEFIRST) and (Message.Msg <= WM_MOUSELAST) then
+ begin
+ if not (csDoubleClicks in ControlStyle) then
+ case Message.Msg of
+ WM_LBUTTONDBLCLK, WM_RBUTTONDBLCLK, WM_MBUTTONDBLCLK:
+ Dec(Message.Msg, WM_LBUTTONDBLCLK - WM_LBUTTONDOWN);
+ end;
+ case Message.Msg of
+ WM_MOUSEMOVE: Application.HintMouseMessage(Self, Message);
+ WM_LBUTTONDOWN, WM_LBUTTONDBLCLK:
+ begin
+ if FDragMode = dmAutomatic then
+ begin
+ BeginAutoDrag;
+ Exit;
+ end;
+ Include(FControlState, csLButtonDown);
+ end;
+ WM_LBUTTONUP:
+ Exclude(FControlState, csLButtonDown);
+ end;
+ end
+ else if Message.Msg = CM_VISIBLECHANGED then
+ with Message do
+ SendDockNotification(Msg, WParam, LParam);
+ Dispatch(Message);
+end;
+
+procedure TControl.DefaultHandler(var Message);
+var
+ P: PChar;
+begin
+ with TMessage(Message) do
+ case Msg of
+ WM_GETTEXT:
+ begin
+ if FText <> nil then P := FText else P := '';
+ Result := StrLen(StrLCopy(PChar(LParam), P, WParam - 1));
+ end;
+ WM_GETTEXTLENGTH:
+ if FText = nil then Result := 0 else Result := StrLen(FText);
+ WM_SETTEXT:
+ begin
+ P := StrNew(PChar(LParam));
+ StrDispose(FText);
+ FText := P;
+ SendDockNotification(Msg, WParam, LParam);
+ end;
+ end;
+end;
+
+procedure TControl.ReadIsControl(Reader: TReader);
+begin
+ FIsControl := Reader.ReadBoolean;
+end;
+
+procedure TControl.WriteIsControl(Writer: TWriter);
+begin
+ Writer.WriteBoolean(FIsControl);
+end;
+
+procedure TControl.DefineProperties(Filer: TFiler);
+
+ function DoWrite: Boolean;
+ begin
+ if Filer.Ancestor <> nil then
+ Result := TControl(Filer.Ancestor).IsControl <> IsControl else
+ Result := IsControl;
+ end;
+
+begin
+ { The call to inherited DefinedProperties is omitted since the Left and
+ Top special properties are redefined with real properties }
+ Filer.DefineProperty('IsControl', ReadIsControl, WriteIsControl, DoWrite);
+end;
+
+procedure TControl.Click;
+begin
+ { Call OnClick if assigned and not equal to associated action's OnExecute.
+ If associated action's OnExecute assigned then call it, otherwise, call
+ OnClick. }
+ if Assigned(FOnClick) and (Action <> nil) and (@FOnClick <> @Action.OnExecute) then
+ FOnClick(Self)
+ else if not (csDesigning in ComponentState) and (ActionLink <> nil) then
+ ActionLink.Execute
+ else if Assigned(FOnClick) then
+ FOnClick(Self);
+end;
+
+procedure TControl.DblClick;
+begin
+ if Assigned(FOnDblClick) then FOnDblClick(Self);
+end;
+
+procedure TControl.MouseDown(Button: TMouseButton;
+ Shift: TShiftState; X, Y: Integer);
+begin
+ if Assigned(FOnMouseDown) then FOnMouseDown(Self, Button, Shift, X, Y);
+end;
+
+procedure TControl.DoMouseDown(var Message: TWMMouse; Button: TMouseButton;
+ Shift: TShiftState);
+begin
+ if not (csNoStdEvents in ControlStyle) then
+ with Message do
+ MouseDown(Button, KeysToShiftState(Keys) + Shift, XPos, YPos);
+end;
+
+procedure TControl.WMLButtonDown(var Message: TWMLButtonDown);
+begin
+ SendCancelMode(Self);
+ inherited;
+ if csCaptureMouse in ControlStyle then MouseCapture := True;
+ if csClickEvents in ControlStyle then Include(FControlState, csClicked);
+ DoMouseDown(Message, mbLeft, []);
+end;
+
+procedure TControl.WMNCLButtonDown(var Message: TWMNCLButtonDown);
+begin
+ SendCancelMode(Self);
+ inherited;
+end;
+
+procedure TControl.WMLButtonDblClk(var Message: TWMLButtonDblClk);
+begin
+ SendCancelMode(Self);
+ inherited;
+ if csCaptureMouse in ControlStyle then MouseCapture := True;
+ if csClickEvents in ControlStyle then DblClick;
+ DoMouseDown(Message, mbLeft, [ssDouble]);
+end;
+
+function TControl.GetPopupMenu: TPopupMenu;
+begin
+ Result := FPopupMenu;
+end;
+
+procedure TControl.CheckMenuPopup(const Pos: TSmallPoint);
+var
+ Control: TControl;
+ PopupMenu: TPopupMenu;
+begin
+ if csDesigning in ComponentState then Exit;
+ Control := Self;
+ while Control <> nil do
+ begin
+ PopupMenu := Control.GetPopupMenu;
+ if (PopupMenu <> nil) then
+ begin
+ if not PopupMenu.AutoPopup then Exit;
+ SendCancelMode(nil);
+ PopupMenu.PopupComponent := Control;
+ with ClientToScreen(SmallPointToPoint(Pos)) do
+ PopupMenu.Popup(X, Y);
+ Exit;
+ end;
+ Control := Control.Parent;
+ end;
+end;
+
+function TControl.CheckNewSize(var NewWidth, NewHeight: Integer): Boolean;
+var
+ W, H, W2, H2: Integer;
+begin
+ Result := False;
+ W := NewWidth;
+ H := NewHeight;
+ if DoCanResize(W, H) then
+ begin
+ W2 := W;
+ H2 := H;
+ Result := not AutoSize or (DoCanAutoSize(W2, H2) and (W2 = W) and (H2 = H)) or
+ DoCanResize(W2, H2);
+ if Result then
+ begin
+ NewWidth := W2;
+ NewHeight := H2;
+ end;
+ end;
+end;
+
+procedure TControl.WMRButtonDown(var Message: TWMRButtonDown);
+begin
+ inherited;
+ DoMouseDown(Message, mbRight, []);
+end;
+
+procedure TControl.WMRButtonDblClk(var Message: TWMRButtonDblClk);
+begin
+ inherited;
+ DoMouseDown(Message, mbRight, [ssDouble]);
+end;
+
+procedure TControl.WMMButtonDown(var Message: TWMMButtonDown);
+begin
+ inherited;
+ DoMouseDown(Message, mbMiddle, []);
+end;
+
+procedure TControl.WMMButtonDblClk(var Message: TWMMButtonDblClk);
+begin
+ inherited;
+ DoMouseDown(Message, mbMiddle, [ssDouble]);
+end;
+
+procedure TControl.MouseMove(Shift: TShiftState; X, Y: Integer);
+begin
+ if Assigned(FOnMouseMove) then FOnMouseMove(Self, Shift, X, Y);
+end;
+
+procedure TControl.WMMouseMove(var Message: TWMMouseMove);
+begin
+ inherited;
+ if not (csNoStdEvents in ControlStyle) then
+ with Message do MouseMove(KeysToShiftState(Keys), XPos, YPos);
+end;
+
+procedure TControl.MouseUp(Button: TMouseButton;
+ Shift: TShiftState; X, Y: Integer);
+begin
+ if Assigned(FOnMouseUp) then FOnMouseUp(Self, Button, Shift, X, Y);
+end;
+
+procedure TControl.DoMouseUp(var Message: TWMMouse; Button: TMouseButton);
+begin
+ if not (csNoStdEvents in ControlStyle) then
+ with Message do MouseUp(Button, KeysToShiftState(Keys), XPos, YPos);
+end;
+
+procedure TControl.WMLButtonUp(var Message: TWMLButtonUp);
+begin
+ inherited;
+ if csCaptureMouse in ControlStyle then MouseCapture := False;
+ if csClicked in ControlState then
+ begin
+ Exclude(FControlState, csClicked);
+ if PtInRect(ClientRect, SmallPointToPoint(Message.Pos)) then Click;
+ end;
+ DoMouseUp(Message, mbLeft);
+end;
+
+procedure TControl.WMRButtonUp(var Message: TWMRButtonUp);
+begin
+ inherited;
+ DoMouseUp(Message, mbRight);
+ if Message.Result = 0 then CheckMenuPopup(Message.Pos);
+end;
+
+procedure TControl.WMMButtonUp(var Message: TWMMButtonUp);
+begin
+ inherited;
+ DoMouseUp(Message, mbMiddle);
+end;
+
+procedure TControl.WMCancelMode(var Message: TWMCancelMode);
+begin
+ inherited;
+ if MouseCapture then
+ begin
+ MouseCapture := False;
+ if csLButtonDown in ControlState then Perform(WM_LBUTTONUP, 0,
+ Integer($FFFFFFFF));
+ end
+ else
+ Exclude(FControlState, csLButtonDown);
+end;
+
+procedure TControl.WMWindowPosChanged(var Message: TWMWindowPosChanged);
+begin
+ inherited;
+ { Update min/max width/height to actual extents control will allow }
+ if ComponentState * [csReading, csLoading] = [] then
+ begin
+ with Constraints do
+ begin
+ if (MaxWidth > 0) and (Width > MaxWidth) then
+ FMaxWidth := Width
+ else if (MinWidth > 0) and (Width < MinWidth) then
+ FMinWidth := Width;
+ if (MaxHeight > 0) and (Height > MaxHeight) then
+ FMaxHeight := Height
+ else if (MinHeight > 0) and (Height < MinHeight) then
+ FMinHeight := Height;
+ end;
+ if Message.WindowPos <> nil then
+ with Message.WindowPos^ do
+ if (FHostDockSite <> nil) and not (csDocking in ControlState) and
+ (Flags and SWP_NOSIZE = 0) and (cx <> 0) and (cy <> 0) then
+ CalcDockSizes;
+ end;
+end;
+
+procedure TControl.CMVisibleChanged(var Message: TMessage);
+begin
+ if not (csDesigning in ComponentState) or
+ (csNoDesignVisible in ControlStyle) then
+ InvalidateControl(True, FVisible and (csOpaque in ControlStyle));
+end;
+
+procedure TControl.CMEnabledChanged(var Message: TMessage);
+begin
+ Invalidate;
+end;
+
+procedure TControl.CMFontChanged(var Message: TMessage);
+begin
+ Invalidate;
+end;
+
+procedure TControl.CMColorChanged(var Message: TMessage);
+begin
+ Invalidate;
+end;
+
+procedure TControl.CMParentColorChanged(var Message: TMessage);
+begin
+ if FParentColor then
+ begin
+ if Message.wParam <> 0 then
+ SetColor(TColor(Message.lParam)) else
+ SetColor(FParent.FColor);
+ FParentColor := True;
+ end;
+end;
+
+procedure TControl.CMParentBiDiModeChanged(var Message: TMessage);
+begin
+ if FParentBiDiMode then
+ begin
+ if FParent <> nil then BiDiMode := FParent.BiDiMode;
+ FParentBiDiMode := True;
+ end;
+end;
+
+procedure TControl.CMBiDiModeChanged(var Message: TMessage);
+begin
+ if (SysLocale.MiddleEast) and (Message.wParam = 0) then Invalidate;
+end;
+
+procedure TControl.CMParentShowHintChanged(var Message: TMessage);
+begin
+ if FParentShowHint then
+ begin
+ SetShowHint(FParent.FShowHint);
+ FParentShowHint := True;
+ end;
+end;
+
+procedure TControl.CMParentFontChanged(var Message: TMessage);
+begin
+ if FParentFont then
+ begin
+ if Message.wParam <> 0 then
+ SetFont(TFont(Message.lParam)) else
+ SetFont(FParent.FFont);
+ FParentFont := True;
+ end;
+end;
+
+procedure TControl.CMSysFontChanged(var Message: TMessage);
+begin
+ if FDesktopFont then
+ begin
+ SetFont(Screen.IconFont);
+ FDesktopFont := True;
+ end;
+end;
+
+procedure TControl.CMHitTest(var Message: TCMHitTest);
+begin
+ Message.Result := 1;
+end;
+
+procedure TControl.CMMouseEnter(var Message: TMessage);
+begin
+ if FParent <> nil then
+ FParent.Perform(CM_MOUSEENTER, 0, Longint(Self));
+end;
+
+procedure TControl.CMMouseLeave(var Message: TMessage);
+begin
+ if FParent <> nil then
+ FParent.Perform(CM_MOUSELEAVE, 0, Longint(Self));
+end;
+
+procedure TControl.CMDesignHitTest(var Message: TCMDesignHitTest);
+begin
+ Message.Result := 0;
+end;
+
+function TControl.CreateFloatingDockSite(Bounds: TRect): TWinControl;
+begin
+ Result := nil;
+ if (FloatingDockSiteClass <> nil) and
+ (FloatingDockSiteClass <> TWinControlClass(ClassType)) then
+ begin
+ Result := FloatingDockSiteClass.Create(Application);
+ with Bounds do
+ begin
+ Result.Top := Top;
+ Result.Left := Left;
+ Result.ClientWidth := Right - Left;
+ Result.ClientHeight := Bottom - Top;
+ end;
+ end;
+end;
+
+procedure TControl.CMFloat(var Message: TCMFloat);
+var
+ FloatHost: TWinControl;
+
+ procedure UpdateFloatingDockSitePos;
+ var
+ P: TPoint;
+ begin
+ P := Parent.ClientToScreen(Point(Left, Top));
+ with Message.DockSource.DockRect do
+ Parent.BoundsRect := Bounds(Left + Parent.Left - P.X,
+ Top + Parent.Top - P.Y,
+ Right - Left + Parent.Width - Width,
+ Bottom - Top + Parent.Height - Height);
+ end;
+
+begin
+ if Floating and (Parent <> nil) then
+ UpdateFloatingDockSitePos
+ else
+ begin
+ FloatHost := CreateFloatingDockSite(Message.DockSource.DockRect);
+ if FloatHost <> nil then
+ begin
+ Message.DockSource.DragTarget := FloatHost;
+ Message.DockSource.DragHandle := FloatHost.Handle;
+ end;
+ end;
+end;
+
+procedure TControl.ActionChange(Sender: TObject; CheckDefaults: Boolean);
+begin
+ if Sender is TCustomAction then
+ with TCustomAction(Sender) do
+ begin
+ if not CheckDefaults or (Self.Caption = '') then
+ Self.Caption := Caption;
+ if not CheckDefaults or (Self.Enabled = True) then
+ Self.Enabled := Enabled;
+ if not CheckDefaults or (Self.Hint = '') then
+ Self.Hint := Hint;
+ if not CheckDefaults or (Self.Visible = True) then
+ Self.Visible := Visible;
+ if not CheckDefaults or not Assigned(Self.OnClick) then
+ Self.OnClick := OnExecute;
+ end;
+end;
+
+procedure TControl.DoActionChange(Sender: TObject);
+begin
+ if Sender = Action then ActionChange(Sender, False);
+end;
+
+function TControl.GetActionLinkClass: TControlActionLinkClass;
+begin
+ Result := TControlActionLink;
+end;
+
+function TControl.IsCaptionStored: Boolean;
+begin
+ Result := (ActionLink = nil) or not ActionLink.IsCaptionLinked;
+end;
+
+function TControl.IsEnabledStored: Boolean;
+begin
+ Result := (ActionLink = nil) or not ActionLink.IsEnabledLinked;
+end;
+
+function TControl.IsHintStored: Boolean;
+begin
+ Result := (ActionLink = nil) or not ActionLink.IsHintLinked;
+end;
+
+function TControl.IsVisibleStored: Boolean;
+begin
+ Result := (ActionLink = nil) or not ActionLink.IsVisibleLinked;
+end;
+
+function TControl.IsOnClickStored: Boolean;
+begin
+ Result := (ActionLink = nil) or not ActionLink.IsOnExecuteLinked;
+end;
+
+procedure TControl.Loaded;
+begin
+ inherited Loaded;
+ if Action <> nil then ActionChange(Action, True);
+end;
+
+procedure TControl.AssignTo(Dest: TPersistent);
+begin
+ if Dest is TCustomAction then
+ with TCustomAction(Dest) do
+ begin
+ Enabled := Self.Enabled;
+ Hint := Self.Hint;
+ Caption := Self.Caption;
+ Visible := Self.Visible;
+ OnExecute := Self.OnClick;
+ end
+ else inherited AssignTo(Dest);
+end;
+
+function TControl.GetDockEdge(MousePos: TPoint): TAlign;
+
+ function MinVar(const Data: array of Double): Integer;
+ var
+ I: Integer;
+ begin
+ Result := 0;
+ for I := Low(Data) + 1 to High(Data) do
+ if Data[I] < Data[Result] then Result := I;
+ end;
+
+var
+ T, L, B, R: Integer;
+begin
+ Result := alNone;
+ R := Width;
+ B := Height;
+ // if Point is outside control, then we can determine side quickly
+ if MousePos.X <= 0 then Result := alLeft
+ else if MousePos.X >= R then Result := alRight
+ else if MousePos.Y <= 0 then Result := alTop
+ else if MousePos.Y >= B then Result := alBottom
+ else begin
+ // if MousePos is inside the control, then we need to figure out which side
+ // MousePos is closest to.
+ T := MousePos.Y;
+ B := B - MousePos.Y;
+ L := MousePos.X;
+ R := R - MousePos.X;
+ case MinVar([L, R, T, B]) of
+ 0: Result := alLeft;
+ 1: Result := alRight;
+ 2: Result := alTop;
+ 3: Result := alBottom;
+ end;
+ end;
+end;
+
+function TControl.GetFloating: Boolean;
+begin
+ Result := (HostDockSite <> nil) and (HostDockSite is FloatingDockSiteClass);
+end;
+
+function TControl.GetFloatingDockSiteClass: TWinControlClass;
+begin
+ Result := FFloatingDockSiteClass;
+end;
+
+procedure TControl.AdjustSize;
+begin
+ if not (csLoading in ComponentState) then SetBounds(Left, Top, Width, Height);
+end;
+
+function TControl.DrawTextBiDiModeFlags(Flags: Longint): Longint;
+begin
+ Result := Flags;
+ { do not change center alignment }
+ if UseRightToLeftAlignment then
+ if Result and DT_RIGHT = DT_RIGHT then
+ Result := Result and not DT_RIGHT { removing DT_RIGHT, makes it DT_LEFT }
+ else if not (Result and DT_CENTER = DT_CENTER) then
+ Result := Result or DT_RIGHT;
+ Result := Result or DrawTextBiDiModeFlagsReadingOnly;
+end;
+
+function TControl.DrawTextBiDiModeFlagsReadingOnly: Longint;
+begin
+ if UseRightToLeftReading then
+ Result := DT_RTLREADING
+ else
+ Result := 0;
+end;
+
+procedure TControl.InitiateAction;
+begin
+ if ActionLink <> nil then ActionLink.Update;
+end;
+
+procedure TControl.CMHintShow(var Message: TMessage);
+begin
+ if (ActionLink <> nil) and
+ not ActionLink.DoShowHint(TCMHintShow(Message).HintInfo^.HintStr) then
+ Message.Result := 1;
+end;
+
+procedure TControl.UpdateLastResize(NewWidth, NewHeight: Integer);
+begin
+ FLastWidth := NewWidth;
+ FLastHeight := NewHeight;
+end;
+*/
diff --git a/apps/X11/VCL/TControl.h b/apps/X11/VCL/TControl.h
new file mode 100644
index 0000000..0969339
--- /dev/null
+++ b/apps/X11/VCL/TControl.h
@@ -0,0 +1,331 @@
+#ifndef TCONTROL_H
+#define TCONTROL_H
+
+#include <TComponent.h>
+
+class TControl : public TComponent {
+private:
+/*
+ FParent: TWinControl;
+ FWindowProc: TWndMethod;
+ FLeft: Integer;
+ FTop: Integer;
+ FWidth: Integer;
+ FHeight: Integer;
+ FControlStyle: TControlStyle;
+ FControlState: TControlState;
+ FDesktopFont: Boolean;
+ FVisible: Boolean;
+ FEnabled: Boolean;
+ FParentFont: Boolean;
+ FParentColor: Boolean;
+ FAlign: TAlign;
+ FAutoSize: Boolean;
+ FDragMode: TDragMode;
+ FIsControl: Boolean;
+ FBiDiMode: TBiDiMode;
+ FParentBiDiMode: Boolean;
+ FText: PChar;
+ FFont: TFont;
+ FActionLink: TControlActionLink;
+ FAnchors: TAnchors;
+ FColor: TColor;
+ FConstraints: TSizeConstraints;
+ FCursor: TCursor;
+ FDragCursor: TCursor;
+ FPopupMenu: TPopupMenu;
+ FHint: string;
+ FFontHeight: Integer;
+ FLastHeight: Integer;
+ FLastWidth: Integer;
+ FScalingFlags: TScalingFlags;
+ FShowHint: Boolean;
+ FParentShowHint: Boolean;
+ FDragKind: TDragKind;
+ FDockOrientation: TDockOrientation;
+ FHostDockSite: TWinControl;
+ FUndockWidth: Integer;
+ FUndockHeight: Integer;
+ FLRDockWidth: Integer;
+ FTBDockHeight: Integer;
+ FFloatingDockSiteClass: TWinControlClass;
+ FOnCanResize: TCanResizeEvent;
+ FOnConstrainedResize: TConstrainedResizeEvent;
+ FOnMouseDown: TMouseEvent;
+ FOnMouseMove: TMouseMoveEvent;
+ FOnMouseUp: TMouseEvent;
+ FOnDragDrop: TDragDropEvent;
+ FOnDragOver: TDragOverEvent;
+ FOnResize: TNotifyEvent;
+ FOnStartDock: TStartDockEvent;
+ FOnEndDock: TEndDragEvent;
+ FOnStartDrag: TStartDragEvent;
+ FOnEndDrag: TEndDragEvent;
+ FOnClick: TNotifyEvent;
+ FOnDblClick: TNotifyEvent;
+ procedure CalcDockSizes;
+ procedure CheckMenuPopup(const Pos: TSmallPoint);
+ function CheckNewSize(var NewWidth, NewHeight: Integer): Boolean;
+ function CreateFloatingDockSite(Bounds: TRect): TWinControl;
+ procedure DoActionChange(Sender: TObject);
+ function DoCanAutoSize(var NewWidth, NewHeight: Integer): Boolean;
+ function DoCanResize(var NewWidth, NewHeight: Integer): Boolean;
+ procedure DoConstraintsChange(Sender: TObject);
+ procedure DoConstrainedResize(var NewWidth, NewHeight: Integer);
+ procedure DoDragMsg(var DragMsg: TCMDrag);
+ procedure DoMouseDown(var Message: TWMMouse; Button: TMouseButton;
+ Shift: TShiftState);
+ procedure DoMouseUp(var Message: TWMMouse; Button: TMouseButton);
+ procedure FontChanged(Sender: TObject);
+ function GetAction: TBasicAction;
+ function GetBoundsRect: TRect;
+ function GetClientHeight: Integer;
+ function GetClientWidth: Integer;
+ function GetLRDockWidth: Integer;
+ function GetMouseCapture: Boolean;
+ function GetText: TCaption;
+ function GetTBDockHeight: Integer;
+ function GetUndockWidth: Integer;
+ function GetUndockHeight: Integer;
+ procedure InvalidateControl(IsVisible, IsOpaque: Boolean);
+ function IsAnchorsStored: Boolean;
+ function IsBiDiModeStored: Boolean;
+ function IsCaptionStored: Boolean;
+ function IsColorStored: Boolean;
+ function IsEnabledStored: Boolean;
+ function IsFontStored: Boolean;
+ function IsHintStored: Boolean;
+ function IsOnClickStored: Boolean;
+ function IsShowHintStored: Boolean;
+ function IsVisibleStored: Boolean;
+ procedure ReadIsControl(Reader: TReader);
+ procedure SetAction(Value: TBasicAction);
+ procedure SetAlign(Value: TAlign);
+ procedure SetAutoSize(Value: Boolean);
+ procedure SetBoundsRect(const Rect: TRect);
+ procedure SetClientHeight(Value: Integer);
+ procedure SetClientSize(Value: TPoint);
+ procedure SetClientWidth(Value: Integer);
+ procedure SetColor(Value: TColor);
+ procedure SetCursor(Value: TCursor);
+ procedure SetDesktopFont(Value: Boolean);
+ procedure SetFont(Value: TFont);
+ procedure SetHeight(Value: Integer);
+ procedure SetHostDockSite(Value: TWinControl);
+ procedure SetLeft(Value: Integer);
+ procedure SetMouseCapture(Value: Boolean);
+ procedure SetParentColor(Value: Boolean);
+ procedure SetParentFont(Value: Boolean);
+ procedure SetShowHint(Value: Boolean);
+ procedure SetParentShowHint(Value: Boolean);
+ procedure SetPopupMenu(Value: TPopupMenu);
+ procedure SetText(const Value: TCaption);
+ procedure SetTop(Value: Integer);
+ procedure SetVisible(Value: Boolean);
+ procedure SetWidth(Value: Integer);
+ procedure SetZOrderPosition(Position: Integer);
+ procedure UpdateLastResize(NewWidth, NewHeight: Integer); virtual;
+ procedure WriteIsControl(Writer: TWriter);
+ procedure WMLButtonDown(var Message: TWMLButtonDown); message WM_LBUTTONDOWN;
+ procedure WMNCLButtonDown(var Message: TWMNCLButtonDown); message WM_NCLBUTTONDOWN;
+ procedure WMRButtonDown(var Message: TWMRButtonDown); message WM_RBUTTONDOWN;
+ procedure WMMButtonDown(var Message: TWMMButtonDown); message WM_MBUTTONDOWN;
+ procedure WMLButtonDblClk(var Message: TWMLButtonDblClk); message WM_LBUTTONDBLCLK;
+ procedure WMRButtonDblClk(var Message: TWMRButtonDblClk); message WM_RBUTTONDBLCLK;
+ procedure WMMButtonDblClk(var Message: TWMMButtonDblClk); message WM_MBUTTONDBLCLK;
+ procedure WMMouseMove(var Message: TWMMouseMove); message WM_MOUSEMOVE;
+ procedure WMLButtonUp(var Message: TWMLButtonUp); message WM_LBUTTONUP;
+ procedure WMRButtonUp(var Message: TWMRButtonUp); message WM_RBUTTONUP;
+ procedure WMMButtonUp(var Message: TWMMButtonUp); message WM_MBUTTONUP;
+ procedure WMCancelMode(var Message: TWMCancelMode); message WM_CANCELMODE;
+ procedure WMWindowPosChanged(var Message: TWMWindowPosChanged); message WM_WINDOWPOSCHANGED;
+ procedure CMVisibleChanged(var Message: TMessage); message CM_VISIBLECHANGED;
+ procedure CMEnabledChanged(var Message: TMessage); message CM_ENABLEDCHANGED;
+ procedure CMFontChanged(var Message: TMessage); message CM_FONTCHANGED;
+ procedure CMColorChanged(var Message: TMessage); message CM_COLORCHANGED;
+ procedure CMParentFontChanged(var Message: TMessage); message CM_PARENTFONTCHANGED;
+ procedure CMSysFontChanged(var Message: TMessage); message CM_SYSFONTCHANGED;
+ procedure CMParentColorChanged(var Message: TMessage); message CM_PARENTCOLORCHANGED;
+ procedure CMParentShowHintChanged(var Message: TMessage); message CM_PARENTSHOWHINTCHANGED;
+ procedure CMHintShow(var Message: TMessage); message CM_HINTSHOW;
+ procedure CMHitTest(var Message: TCMHitTest); message CM_HITTEST;
+ procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
+ procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
+ procedure CMDesignHitTest(var Message: TCMDesignHitTest); message CM_DESIGNHITTEST;
+ procedure CMFloat(var Message: TCMFloat); message CM_FLOAT;
+ procedure CMBiDiModeChanged(var Message: TMessage); message CM_BIDIMODECHANGED;
+ procedure CMParentBiDiModeChanged(var Message: TMessage); message CM_PARENTBIDIMODECHANGED;
+ protected
+ procedure ActionChange(Sender: TObject; CheckDefaults: Boolean); dynamic;
+ procedure AdjustSize; dynamic;
+ procedure AssignTo(Dest: TPersistent); override;
+ procedure BeginAutoDrag; dynamic;
+ function CanResize(var NewWidth, NewHeight: Integer): Boolean; virtual;
+ function CanAutoSize(var NewWidth, NewHeight: Integer): Boolean; virtual;
+ procedure Changed;
+ procedure ChangeScale(M, D: Integer); dynamic;
+ procedure Click; dynamic;
+ procedure ConstrainedResize(var MinWidth, MinHeight, MaxWidth, MaxHeight: Integer); virtual;
+ procedure DblClick; dynamic;
+ procedure DefaultDockImage(DragDockObject: TDragDockObject; Erase: Boolean); dynamic;
+ procedure DefineProperties(Filer: TFiler); override;
+ procedure DockTrackNoTarget(Source: TDragDockObject; X, Y: Integer); dynamic;
+ procedure DoEndDock(Target: TObject; X, Y: Integer); dynamic;
+ procedure DoDock(NewDockSite: TWinControl; var ARect: TRect); dynamic;
+ procedure DoStartDock(var DragObject: TDragObject); dynamic;
+ procedure DragCanceled; dynamic;
+ procedure DragOver(Source: TObject; X, Y: Integer; State: TDragState;
+ var Accept: Boolean); dynamic;
+ procedure DoEndDrag(Target: TObject; X, Y: Integer); dynamic;
+ procedure DoStartDrag(var DragObject: TDragObject); dynamic;
+ procedure DrawDragDockImage(DragDockObject: TDragDockObject); dynamic;
+ procedure EraseDragDockImage(DragDockObject: TDragDockObject); dynamic;
+ function GetActionLinkClass: TControlActionLinkClass; dynamic;
+ function GetClientOrigin: TPoint; virtual;
+ function GetClientRect: TRect; virtual;
+ function GetDeviceContext(var WindowHandle: HWnd): HDC; virtual;
+ function GetDockEdge(MousePos: TPoint): TAlign; dynamic;
+ function GetDragImages: TDragImageList; virtual;
+ function GetEnabled: Boolean; virtual;
+ function GetFloating: Boolean; virtual;
+ function GetFloatingDockSiteClass: TWinControlClass; virtual;
+ function GetPalette: HPALETTE; dynamic;
+ function GetPopupMenu: TPopupMenu; dynamic;
+ procedure Loaded; override;
+ procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
+ X, Y: Integer); dynamic;
+ procedure MouseMove(Shift: TShiftState; X, Y: Integer); dynamic;
+ procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
+ X, Y: Integer); dynamic;
+ procedure Notification(AComponent: TComponent;
+ Operation: TOperation); override;
+ procedure PositionDockRect(DragDockObject: TDragDockObject); dynamic;
+ function PaletteChanged(Foreground: Boolean): Boolean; dynamic;
+ procedure ReadState(Reader: TReader); override;
+ procedure RequestAlign; dynamic;
+ procedure Resize; dynamic;
+ procedure SendCancelMode(Sender: TControl);
+ procedure SendDockNotification(Msg: Cardinal; WParam, LParam: Integer);
+ procedure SetDragMode(Value: TDragMode); virtual;
+ procedure SetEnabled(Value: Boolean); virtual;
+ procedure SetName(const Value: TComponentName); override;
+ procedure SetParent(AParent: TWinControl); virtual;
+ procedure SetParentComponent(Value: TComponent); override;
+ procedure SetParentBiDiMode(Value: Boolean); virtual;
+ procedure SetBiDiMode(Value: TBiDiMode); virtual;
+ procedure SetZOrder(TopMost: Boolean); dynamic;
+ procedure UpdateBoundsRect(const R: TRect);
+ procedure VisibleChanging; dynamic;
+ procedure WndProc(var Message: TMessage); virtual;
+ property ActionLink: TControlActionLink read FActionLink write FActionLink;
+ property AutoSize: Boolean read FAutoSize write SetAutoSize default False;
+ property Caption: TCaption read GetText write SetText stored IsCaptionStored;
+ property Color: TColor read FColor write SetColor stored IsColorStored default clWindow;
+ property DesktopFont: Boolean read FDesktopFont write SetDesktopFont default False;
+ property DragKind: TDragKind read FDragKind write FDragKind default dkDrag;
+ property DragCursor: TCursor read FDragCursor write FDragCursor default crDrag;
+ property DragMode: TDragMode read FDragMode write SetDragMode default dmManual;
+ property Font: TFont read FFont write SetFont stored IsFontStored;
+ property IsControl: Boolean read FIsControl write FIsControl;
+ property MouseCapture: Boolean read GetMouseCapture write SetMouseCapture;
+ property ParentBiDiMode: Boolean read FParentBiDiMode write SetParentBiDiMode default True;
+ property ParentColor: Boolean read FParentColor write SetParentColor default True;
+ property ParentFont: Boolean read FParentFont write SetParentFont default True;
+ property ParentShowHint: Boolean read FParentShowHint write SetParentShowHint default True;
+ property PopupMenu: TPopupMenu read FPopupMenu write SetPopupMenu;
+ property ScalingFlags: TScalingFlags read FScalingFlags write FScalingFlags;
+ property Text: TCaption read GetText write SetText;
+ property WindowText: PChar read FText write FText;
+ property OnCanResize: TCanResizeEvent read FOnCanResize write FOnCanResize;
+ property OnConstrainedResize: TConstrainedResizeEvent read FOnConstrainedResize write FOnConstrainedResize;
+ property OnClick: TNotifyEvent read FOnClick write FOnClick stored IsOnClickStored;
+ property OnDblClick: TNotifyEvent read FOnDblClick write FOnDblClick;
+ property OnDragDrop: TDragDropEvent read FOnDragDrop write FOnDragDrop;
+ property OnDragOver: TDragOverEvent read FOnDragOver write FOnDragOver;
+ property OnEndDock: TEndDragEvent read FOnEndDock write FOnEndDock;
+ property OnEndDrag: TEndDragEvent read FOnEndDrag write FOnEndDrag;
+ property OnMouseDown: TMouseEvent read FOnMouseDown write FOnMouseDown;
+ property OnMouseMove: TMouseMoveEvent read FOnMouseMove write FOnMouseMove;
+ property OnMouseUp: TMouseEvent read FOnMouseUp write FOnMouseUp;
+ property OnResize: TNotifyEvent read FOnResize write FOnResize;
+ property OnStartDock: TStartDockEvent read FOnStartDock write FOnStartDock;
+ property OnStartDrag: TStartDragEvent read FOnStartDrag write FOnStartDrag;
+*/
+public:
+ TControl(TComponent *AOwner);
+ ~TControl();
+
+// procedure Repaint; virtual;
+ void Repaint();
+/*
+ procedure BeginDrag(Immediate: Boolean; Threshold: Integer = -1);
+ procedure BringToFront;
+ function ClientToScreen(const Point: TPoint): TPoint;
+ procedure Dock(NewDockSite: TWinControl; ARect: TRect); dynamic;
+ procedure DefaultHandler(var Message); override;
+ function Dragging: Boolean;
+ procedure DragDrop(Source: TObject; X, Y: Integer); dynamic;
+ function DrawTextBiDiModeFlags(Flags: Longint): Longint;
+ function DrawTextBiDiModeFlagsReadingOnly: Longint;
+ property Enabled: Boolean read GetEnabled write SetEnabled stored IsEnabledStored default True;
+ procedure EndDrag(Drop: Boolean);
+ function GetControlsAlignment: TAlignment; dynamic;
+ function GetParentComponent: TComponent; override;
+ function GetTextBuf(Buffer: PChar; BufSize: Integer): Integer;
+ function GetTextLen: Integer;
+ function HasParent: Boolean; override;
+ procedure Hide;
+ procedure InitiateAction; virtual;
+ procedure Invalidate; virtual;
+ function IsRightToLeft: Boolean;
+ function ManualDock(NewDockSite: TWinControl; DropControl: TControl = nil;
+ ControlSide: TAlign = alNone): Boolean;
+ function ManualFloat(ScreenPos: TRect): Boolean;
+ function Perform(Msg: Cardinal; WParam, LParam: Longint): Longint;
+ procedure Refresh;
+ function ReplaceDockedControl(Control: TControl; NewDockSite: TWinControl;
+ DropControl: TControl; ControlSide: TAlign): Boolean;
+ function ScreenToClient(const Point: TPoint): TPoint;
+ procedure SendToBack;
+ procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); virtual;
+ procedure SetTextBuf(Buffer: PChar);
+ procedure Show;
+ procedure Update; virtual;
+ function UseRightToLeftAlignment: Boolean; dynamic;
+ function UseRightToLeftReading: Boolean;
+ function UseRightToLeftScrollBar: Boolean;
+ property Action: TBasicAction read GetAction write SetAction;
+ property Align: TAlign read FAlign write SetAlign default alNone;
+ property Anchors: TAnchors read FAnchors write FAnchors stored IsAnchorsStored default [akLeft, akTop];
+ property BiDiMode: TBiDiMode read FBiDiMode write SetBiDiMode stored IsBiDiModeStored;
+ property BoundsRect: TRect read GetBoundsRect write SetBoundsRect;
+ property ClientHeight: Integer read GetClientHeight write SetClientHeight stored False;
+ property ClientOrigin: TPoint read GetClientOrigin;
+ property ClientRect: TRect read GetClientRect;
+ property ClientWidth: Integer read GetClientWidth write SetClientWidth stored False;
+ property Constraints: TSizeConstraints read FConstraints write FConstraints;
+ property ControlState: TControlState read FControlState write FControlState;
+ property ControlStyle: TControlStyle read FControlStyle write FControlStyle;
+ property DockOrientation: TDockOrientation read FDockOrientation write FDockOrientation;
+ property Floating: Boolean read GetFloating;
+ property FloatingDockSiteClass: TWinControlClass read GetFloatingDockSiteClass write FFloatingDockSiteClass;
+ property HostDockSite: TWinControl read FHostDockSite write SetHostDockSite;
+ property LRDockWidth: Integer read GetLRDockWidth write FLRDockWidth;
+ property Parent: TWinControl read FParent write SetParent;
+ property ShowHint: Boolean read FShowHint write SetShowHint stored IsShowHintStored;
+ property TBDockHeight: Integer read GetTBDockHeight write FTBDockHeight;
+ property UndockHeight: Integer read GetUndockHeight write FUndockHeight;
+ property UndockWidth: Integer read GetUndockWidth write FUndockWidth;
+ property Visible: Boolean read FVisible write SetVisible stored IsVisibleStored default True;
+ property WindowProc: TWndMethod read FWindowProc write FWindowProc;
+ published
+ property Left: Integer read FLeft write SetLeft;
+ property Top: Integer read FTop write SetTop;
+ property Width: Integer read FWidth write SetWidth;
+ property Height: Integer read FHeight write SetHeight;
+ property Cursor: TCursor read FCursor write SetCursor default crDefault;
+ property Hint: string read FHint write FHint stored IsHintStored;
+*/
+};
+
+#endif
diff --git a/apps/X11/VCL/TCustomImageList.cpp b/apps/X11/VCL/TCustomImageList.cpp
new file mode 100644
index 0000000..6a63a24
--- /dev/null
+++ b/apps/X11/VCL/TCustomImageList.cpp
@@ -0,0 +1,1142 @@
+
+#include <TCustomImageList.h>
+
+TCustomImageList::TCustomImageList(TComponent *AOwner) :
+ TComponent(AOwner) {
+}
+
+TCustomImageList::TCustomImageList(int AWidth, int AHeight) :
+ TComponent(0) {
+}
+
+TCustomImageList::~TCustomImageList() {
+}
+
+/*
+function TCustomImageList.Add(Image, Mask: TBitmap): Integer;
+var
+ ImageDDB, MaskDDB: TBitmap;
+begin
+ ImageDDB := TBitmap.Create;
+ try
+ MaskDDB := TBitmap.Create;
+ try
+ HandleNeeded;
+ Result := ImageList_Add(FHandle, GetImageHandle(Image, ImageDDB),
+ GetImageHandle(Mask, MaskDDB));
+ finally
+ MaskDDB.Free;
+ end;
+ finally
+ ImageDDB.Free;
+ end;
+ Change;
+end;
+*/
+
+int TCustomImageList::Add(gchar **xpm_data, GtkWidget *canvas) {
+
+ /* GtkWidget is the storage type for widgets */
+ GtkWidget *pixmapwid;
+ GdkPixmap *pixmap;
+ GdkBitmap *mask;
+ GdkWindow *window = 0;
+ GtkStyle *style;
+
+ while ((!window) && (canvas->parent)) {
+ window = gtk_widget_get_parent_window(GTK_WIDGET(canvas));
+ canvas = canvas->parent;
+ }
+ style = gtk_widget_get_style( GTK_WIDGET(canvas) );
+ pixmap = gdk_pixmap_create_from_xpm_d( window, &mask,
+ &style->bg[GTK_STATE_NORMAL],
+ (gchar **)xpm_data);
+
+ pixmapwid = gtk_pixmap_new( pixmap, mask );
+ images.push_back(GTK_PIXMAP(pixmapwid));
+ return images.size();
+}
+
+
+/*
+procedure TCustomImageList.GetBitmap(Index: Integer; Image: TBitmap);
+begin
+ if (Image <> nil) and HandleAllocated then
+ with Image do
+ begin
+ Height := FHeight;
+ Width := FWidth;
+ Draw(Canvas, 0, 0, Index);
+ end;
+end;
+*/
+GtkPixmap *TCustomImageList::GetPixmap(int index) {
+ if ((unsigned int)index < images.size())
+ return images[index];
+ else return 0;
+}
+
+
+/*
+{ TCustomImageList }
+
+function GetRGBColor(Value: TColor): DWORD;
+begin
+ Result := ColorToRGB(Value);
+ case Result of
+ clNone: Result := CLR_NONE;
+ clDefault: Result := CLR_DEFAULT;
+ end;
+end;
+
+function GetColor(Value: DWORD): TColor;
+begin
+ case Value of
+ CLR_NONE: Result := clNone;
+ CLR_DEFAULT: Result := clDefault;
+ else
+ Result := TColor(Value);
+ end;
+end;
+
+constructor TCustomImageList.Create(AOwner: TComponent);
+begin
+ inherited Create(AOwner);
+ FWidth := 16;
+ FHeight := 16;
+ Initialize;
+end;
+
+constructor TCustomImageList.CreateSize(AWidth, AHeight: Integer);
+begin
+ inherited Create(nil);
+ FWidth := AWidth;
+ FHeight := AHeight;
+ Initialize;
+end;
+
+destructor TCustomImageList.Destroy;
+begin
+ while FClients.Count > 0 do
+ UnRegisterChanges(TChangeLink(FClients.Last));
+ FBitmap.Free;
+ FreeHandle;
+ FClients.Free;
+ FClients := nil;
+ if FMonoBitmap <> nil then FMonoBitmap.Free;
+ inherited Destroy;
+end;
+
+procedure TCustomImageList.Initialize;
+const
+ MaxSize = 32768;
+begin
+ FClients := TList.Create;
+ if (Height < 1) or (Height > MaxSize) or (Width < 1) then
+ raise EInvalidOperation.Create(SInvalidImageSize);
+ AllocBy := 4;
+ Masked := True;
+ DrawingStyle := dsNormal;
+ ImageType := itImage;
+ FBkColor := clNone;
+ FBlendColor := clNone;
+ FBitmap := TBitmap.Create;
+ InitBitmap;
+end;
+
+function TCustomImageList.HandleAllocated: Boolean;
+begin
+ Result := FHandle <> 0;
+end;
+
+procedure TCustomImageList.HandleNeeded;
+begin
+ if FHandle = 0 then CreateImageList;
+end;
+
+procedure TCustomImageList.InitBitmap;
+var
+ ScreenDC: HDC;
+begin
+ ScreenDC := GetDC(0);
+ try
+ with FBitmap do
+ begin
+ Handle := CreateCompatibleBitmap(ScreenDC, Self.Width, Self.Height);
+ Canvas.Brush.Color := clBlack;
+ Canvas.FillRect(Rect(0, 0, Width, Height));
+ end;
+ finally
+ ReleaseDC(0, ScreenDC);
+ end;
+ if FMonoBitmap <> nil then
+ begin
+ FMonoBitmap.Free;
+ FMonoBitmap := nil;
+ end;
+end;
+
+procedure TCustomImageList.SetNewDimensions(Value: HImageList);
+var
+ AHeight, AWidth: Integer;
+begin
+ AWidth := Width;
+ AHeight := Height;
+ ImageList_GetIconSize(Value, AWidth, AHeight);
+ FWidth := AWidth;
+ FHeight := AHeight;
+ InitBitmap;
+end;
+
+procedure TCustomImageList.SetWidth(Value: Integer);
+begin
+ if Value <> Width then
+ begin
+ FWidth := Value;
+ if HandleAllocated then ImageList_SetIconSize(FHandle, Width, Height);
+ Clear;
+ InitBitmap;
+ Change;
+ end;
+end;
+
+procedure TCustomImageList.SetHeight(Value: Integer);
+begin
+ if Value <> Height then
+ begin
+ FHeight := Value;
+ if HandleAllocated then ImageList_SetIconSize(FHandle, Width, Height);
+ Clear;
+ InitBitmap;
+ Change;
+ end;
+end;
+
+procedure TCustomImageList.SetHandle(Value: HImageList);
+begin
+ FreeHandle;
+ if Value <> 0 then
+ begin
+ SetNewDimensions(Value);
+ FHandle := Value;
+ Change;
+ end;
+end;
+
+function TCustomImageList.GetBitmapHandle(Bitmap: HBITMAP): HBITMAP;
+begin
+ if Bitmap <> 0 then
+ Result := Bitmap else
+ Result := FBitmap.Handle;
+end;
+
+function TCustomImageList.GetHandle: HImageList;
+begin
+ HandleNeeded;
+ Result := FHandle;
+end;
+
+function TCustomImageList.GetImageHandle(Image, ImageDDB: TBitmap): HBITMAP;
+begin
+ CheckImage(Image);
+ if Image <> nil then
+ if Image.HandleType = bmDDB then
+ Result := Image.Handle
+ else
+ begin
+ ImageDDB.Assign(Image);
+ ImageDDB.HandleType := bmDDB;
+ Result := ImageDDB.Handle;
+ end
+ else Result := FBitmap.Handle;
+end;
+
+procedure TCustomImageList.FreeHandle;
+begin
+ if HandleAllocated and not ShareImages then
+ ImageList_Destroy(Handle);
+ FHandle := 0;
+ Change;
+end;
+
+procedure TCustomImageList.CreateImageList;
+const
+ Mask: array[Boolean] of Longint = (0, ILC_MASK);
+begin
+ FHandle := ImageList_Create(Width, Height, ILC_COLOR or Mask[Masked],
+ AllocBy, AllocBy);
+ if FHandle = 0 then raise EInvalidOperation.Create(SInvalidImageList);
+ if FBkColor <> clNone then BkColor := FBkColor;
+end;
+
+function TCustomImageList.GetImageBitmap: HBITMAP;
+var
+ Info: TImageInfo;
+begin
+ if (Count > 0) and ImageList_GetImageInfo(Handle, 0, Info) then
+ begin
+ Result := Info.hbmImage;
+ DeleteObject(Info.hbmMask);
+ end
+ else Result := 0;
+end;
+
+function TCustomImageList.GetMaskBitmap: HBITMAP;
+var
+ Info: TImageInfo;
+begin
+ if (Count > 0) and ImageList_GetImageInfo(Handle, 0, Info) then
+ begin
+ Result := Info.hbmMask;
+ DeleteObject(Info.hbmImage);
+ end
+ else Result := 0;
+end;
+
+function TCustomImageList.AddMasked(Image: TBitmap; MaskColor: TColor): Integer;
+var
+ ImageDDB: TBitmap;
+begin
+ ImageDDB := TBitmap.Create;
+ try
+ if Masked and (MaskColor <> -1) then
+ begin
+ with TBitmap.Create do
+ try
+ Assign(Image);
+ TransparentColor := MaskColor;
+ Self.HandleNeeded;
+ Result := ImageList_Add(Self.FHandle, GetImageHandle(Image, ImageDDB),
+ GetBitmapHandle(MaskHandle));
+ finally
+ Free;
+ end;
+ end
+ else Result := ImageList_Add(Handle, GetImageHandle(Image, ImageDDB), 0);
+ finally
+ ImageDDB.Free;
+ end;
+ Change;
+end;
+
+function TCustomImageList.AddIcon(Image: TIcon): Integer;
+begin
+ if Image = nil then
+ Result := Add(nil, nil)
+ else
+ begin
+ CheckImage(Image);
+ Result := ImageList_AddIcon(Handle, Image.Handle);
+ end;
+ Change;
+end;
+
+procedure TCustomImageList.GetIcon(Index: Integer; Image: TIcon);
+const
+ DrawingStyles: array[TDrawingStyle] of Longint = (ILD_FOCUS,
+ ILD_SELECTED, ILD_NORMAL, ILD_TRANSPARENT);
+ Images: array[TImageType] of Longint = (0, ILD_MASK);
+begin
+ if (Image <> nil) and HandleAllocated then
+ Image.Handle := ImageList_GetIcon(Handle, Index,
+ DrawingStyles[DrawingStyle] or Images[ImageType]);
+end;
+
+function TCustomImageList.GetCount: Integer;
+begin
+ if HandleAllocated then Result := ImageList_GetImageCount(Handle)
+ else Result := 0;
+end;
+
+procedure TCustomImageList.Replace(Index: Integer; Image, Mask: TBitmap);
+var
+ ImageDDB, MaskDDB: TBitmap;
+begin
+ ImageDDB := TBitmap.Create;
+ try
+ MaskDDB := TBitmap.Create;
+ try
+ if HandleAllocated and not ImageList_Replace(Handle, Index,
+ GetImageHandle(Image, ImageDDB), GetImageHandle(Mask, MaskDDB)) then
+ raise EInvalidOperation.Create(SReplaceImage);
+ finally
+ MaskDDB.Free;
+ end;
+ finally
+ ImageDDB.Free;
+ end;
+ Change;
+end;
+
+procedure TCustomImageList.ReplaceMasked(Index: Integer; NewImage: TBitmap; MaskColor: TColor);
+var
+ TempIndex: Integer;
+ Image, Mask: TBitmap;
+begin
+ if HandleAllocated then
+ begin
+ CheckImage(NewImage);
+ TempIndex := AddMasked(NewImage, MaskColor);
+ if TempIndex <> -1 then
+ try
+ Image := TBitmap.Create;
+ try
+ with Image do
+ begin
+ Height := FHeight;
+ Width := FWidth;
+ end;
+ Mask := TBitmap.Create;
+ try
+ with Mask do
+ begin
+ Monochrome := True;
+ Height := FHeight;
+ Width := FWidth;
+ end;
+ ImageList_Draw(Handle, TempIndex, Image.Canvas.Handle, 0, 0, ILD_NORMAL);
+ ImageList_Draw(Handle, TempIndex, Mask.Canvas.Handle, 0, 0, ILD_MASK);
+ if not ImageList_Replace(Handle, Index, Image.Handle, Mask.Handle) then
+ raise EInvalidOperation.Create(SReplaceImage);
+ finally
+ Mask.Free;
+ end;
+ finally
+ Image.Free;
+ end;
+ finally
+ Delete(TempIndex);
+ end
+ else raise EInvalidOperation.Create(SReplaceImage);
+ end;
+ Change;
+end;
+
+procedure TCustomImageList.ReplaceIcon(Index: Integer; Image: TIcon);
+begin
+ if HandleAllocated then
+ if Image = nil then Replace(Index, nil, nil)
+ else begin
+ CheckImage(Image);
+ if ImageList_ReplaceIcon(Handle, Index, Image.Handle) = -1 then
+ raise EInvalidOperation.Create(SReplaceImage);
+ end;
+ Change;
+end;
+
+procedure TCustomImageList.Delete(Index: Integer);
+begin
+ if Index >= Count then raise EInvalidOperation.Create(SImageIndexError);
+ if HandleAllocated then ImageList_Remove(Handle, Index);
+ Change;
+end;
+
+procedure TCustomImageList.Clear;
+begin
+ Delete(-1);
+end;
+
+procedure TCustomImageList.SetBkColor(Value: TColor);
+begin
+ if HandleAllocated then ImageList_SetBkColor(FHandle, GetRGBColor(Value))
+ else FBkColor := Value;
+ Change;
+end;
+
+function TCustomImageList.GetBkColor: TColor;
+begin
+ if HandleAllocated then Result := GetColor(ImageList_GetBkColor(Handle))
+ else Result := FBkColor;
+end;
+
+procedure TCustomImageList.DoDraw(Index: Integer; Canvas: TCanvas; X, Y: Integer;
+ Style: Cardinal; Enabled: Boolean);
+const
+ ROP_DSPDxax = $00E20746;
+var
+ R: TRect;
+ DestDC, SrcDC: HDC;
+begin
+ if HandleAllocated then
+ begin
+ if Enabled then
+ ImageList_DrawEx(Handle, Index, Canvas.Handle, X, Y, 0, 0,
+ GetRGBColor(BkColor), GetRGBColor(BlendColor), Style)
+ else
+ begin
+ if FMonoBitmap = nil then
+ begin
+ FMonoBitmap := TBitmap.Create;
+ with FMonoBitmap do
+ begin
+ Monochrome := True;
+ Width := Self.Width;
+ Height := Self.Height;
+ end;
+ end;
+ { Store masked version of image temporarily in FBitmap }
+ FMonoBitmap.Canvas.Brush.Color := clWhite;
+ FMonoBitmap.Canvas.FillRect(Rect(0, 0, Self.Width, Self.Height));
+ ImageList_DrawEx(Handle, Index, FMonoBitmap.Canvas.Handle, 0,0,0,0,
+ CLR_DEFAULT, 0, ILD_NORMAL);
+ R := Rect(X, Y, X+Width, Y+Height);
+ SrcDC := FMonoBitmap.Canvas.Handle;
+ { Convert Black to clBtnHighlight }
+ Canvas.Brush.Color := clBtnHighlight;
+ DestDC := Canvas.Handle;
+ Windows.SetTextColor(DestDC, clWhite);
+ Windows.SetBkColor(DestDC, clBlack);
+ BitBlt(DestDC, X+1, Y+1, Width, Height, SrcDC, 0, 0, ROP_DSPDxax);
+ { Convert Black to clBtnShadow }
+ Canvas.Brush.Color := clBtnShadow;
+ DestDC := Canvas.Handle;
+ Windows.SetTextColor(DestDC, clWhite);
+ Windows.SetBkColor(DestDC, clBlack);
+ BitBlt(DestDC, X, Y, Width, Height, SrcDC, 0, 0, ROP_DSPDxax);
+ end;
+ end;
+end;
+
+procedure TCustomImageList.Draw(Canvas: TCanvas; X, Y, Index: Integer;
+ Enabled: Boolean);
+const
+ DrawingStyles: array[TDrawingStyle] of Longint = (ILD_FOCUS, ILD_SELECTED,
+ ILD_NORMAL, ILD_TRANSPARENT);
+ Images: array[TImageType] of Longint = (0, ILD_MASK);
+begin
+ if HandleAllocated then
+ DoDraw(Index, Canvas, X, Y, DrawingStyles[DrawingStyle] or
+ Images[ImageType], Enabled);
+end;
+
+procedure TCustomImageList.DrawOverlay(Canvas: TCanvas; X, Y: Integer;
+ ImageIndex: Integer; Overlay: TOverlay; Enabled: Boolean);
+const
+ Images: array[TImageType] of Longint = (0, ILD_MASK);
+var
+ Index: Integer;
+begin
+ if HandleAllocated then
+ begin
+ Index := IndexToOverlayMask(Overlay + 1);
+ DoDraw(ImageIndex, Canvas, X, Y, Images[ImageType] or ILD_OVERLAYMASK and
+ Index, Enabled);
+ end;
+end;
+
+function TCustomImageList.Overlay(ImageIndex: Integer; Overlay: TOverlay): Boolean;
+begin
+ if HandleAllocated then
+ Result := ImageList_SetOverlayImage(Handle, ImageIndex, Overlay + 1)
+ else Result := False;
+end;
+
+procedure TCustomImageList.CopyImages(Value: HImageList);
+var
+ I: Integer;
+ Image, Mask: TBitmap;
+ ARect: TRect;
+begin
+ ARect := Rect(0, 0, Width, Height);
+ BeginUpdate;
+ try
+ Image := TBitmap.Create;
+ try
+ with Image do
+ begin
+ Height := FHeight;
+ Width := FWidth;
+ end;
+ Mask := TBitmap.Create;
+ try
+ with Mask do
+ begin
+ Monochrome := True;
+ Height := FHeight;
+ Width := FWidth;
+ end;
+ for I := 0 to ImageList_GetImageCount(Value) - 1 do
+ begin
+ with Image.Canvas do
+ begin
+ FillRect(ARect);
+ ImageList_Draw(Value, I, Handle, 0, 0, ILD_NORMAL);
+ end;
+ with Mask.Canvas do
+ begin
+ FillRect(ARect);
+ ImageList_Draw(Value, I, Handle, 0, 0, ILD_MASK);
+ end;
+ Add(Image, Mask);
+ end;
+ finally
+ Mask.Free;
+ end;
+ finally
+ Image.Free;
+ end;
+ finally
+ EndUpdate;
+ end;
+end;
+
+procedure TCustomImageList.GetImages(Index: Integer; Image, Mask: TBitmap);
+var
+ R: TRect;
+begin
+ R := Rect(0, 0, Width, Height);
+ with Image.Canvas do
+ begin
+ Brush.Color := clWhite;
+ FillRect(R);
+ ImageList_Draw(Self.Handle, Index, Handle, 0, 0, ILD_NORMAL);
+ end;
+ with Mask.Canvas do
+ begin
+ Brush.Color := clWhite;
+ FillRect(R);
+ ImageList_Draw(Self.Handle, Index, Handle, 0, 0, ILD_MASK);
+ end;
+end;
+
+procedure TCustomImageList.InsertImage(Index: Integer; Image, Mask: TBitmap;
+ MaskColor: TColor);
+var
+ I: Integer;
+ OldImage, OldMask: TBitmap;
+ TempList: TCustomImageList;
+begin
+ BeginUpdate;
+ try
+ OldImage := TBitmap.Create;
+ try
+ with OldImage do
+ begin
+ Height := FHeight;
+ Width := FWidth;
+ end;
+ OldMask := TBitmap.Create;
+ try
+ with OldMask do
+ begin
+ Monochrome := True;
+ Height := FHeight;
+ Width := FWidth;
+ end;
+ TempList := TCustomImageList.CreateSize(5, 5);
+ try
+ TempList.Assign(Self);
+ Clear;
+ if Index > TempList.Count then
+ raise EInvalidOperation.Create(SImageIndexError);
+ for I := 0 to Index - 1 do
+ begin
+ TempList.GetImages(I, OldImage, OldMask);
+ Add(OldImage, OldMask);
+ end;
+ if MaskColor <> -1 then
+ AddMasked(Image, MaskColor) else
+ Add(Image, Mask);
+ for I := Index to TempList.Count - 1 do
+ begin
+ TempList.GetImages(I, OldImage, OldMask);
+ Add(OldImage, OldMask);
+ end;
+ finally
+ TempList.Free;
+ end;
+ finally
+ OldMask.Free;
+ end;
+ finally
+ OldImage.Free;
+ end;
+ finally
+ EndUpdate;
+ end;
+end;
+
+procedure TCustomImageList.Insert(Index: Integer; Image, Mask: TBitmap);
+begin
+ InsertImage(Index, Image, Mask, -1);
+end;
+
+procedure TCustomImageList.InsertMasked(Index: Integer; Image: TBitmap;
+ MaskColor: TColor);
+begin
+ InsertImage(Index, Image, nil, MaskColor);
+end;
+
+procedure TCustomImageList.InsertIcon(Index: Integer; Image: TIcon);
+var
+ I: Integer;
+ TempList: TCustomImageList;
+ Icon: TIcon;
+begin
+ Icon := TIcon.Create;
+ TempList := TCustomImageList.CreateSize(5, 5);
+ TempList.Assign(Self);
+ Clear;
+ if Index > TempList.Count then raise EInvalidOperation.Create(SImageIndexError);
+ BeginUpdate;
+ try
+ for I := 0 to Index - 1 do
+ begin
+ TempList.GetIcon(I, Icon);
+ AddIcon(Icon);
+ end;
+ AddIcon(Image);
+ for I := Index to TempList.Count - 1 do
+ begin
+ TempList.GetIcon(I, Icon);
+ AddIcon(Icon);
+ end;
+ finally
+ TempList.Free;
+ EndUpdate;
+ end;
+end;
+
+procedure TCustomImageList.Move(CurIndex, NewIndex: Integer);
+var
+ Image, Mask: TBitmap;
+begin
+ if CurIndex <> NewIndex then
+ begin
+ Image := TBitmap.Create;
+ try
+ with Image do
+ begin
+ Height := FHeight;
+ Width := FWidth;
+ end;
+ Mask := TBitmap.Create;
+ try
+ with Mask do
+ begin
+ Height := FHeight;
+ Width := FWidth;
+ end;
+ GetImages(CurIndex, Image, Mask);
+ Delete(CurIndex);
+ Insert(NewIndex, Image, Mask);
+ finally
+ Mask.Free;
+ end;
+ finally
+ Image.Free;
+ end;
+ end;
+end;
+
+procedure TCustomImageList.AddImages(Value: TCustomImageList);
+begin
+ if Value <> nil then CopyImages(Value.Handle);
+end;
+
+procedure TCustomImageList.Assign(Source: TPersistent);
+var
+ ImageList: TCustomImageList;
+begin
+ if Source = nil then FreeHandle
+ else if Source is TCustomImageList then
+ begin
+ Clear;
+ ImageList := TCustomImageList(Source);
+ Masked := ImageList.Masked;
+ ImageType := ImageList.ImageType;
+ DrawingStyle := ImageList.DrawingStyle;
+ ShareImages := ImageList.ShareImages;
+ SetNewDimensions(ImageList.Handle);
+ if not HandleAllocated then HandleNeeded
+ else ImageList_SetIconSize(Handle, Width, Height);
+ BkColor := GetColor(ImageList_GetBkColor(ImageList.Handle));
+ BlendColor := ImageList.BlendColor;
+ AddImages(ImageList);
+ end
+ else inherited Assign(Source);
+end;
+
+procedure TCustomImageList.AssignTo(Dest: TPersistent);
+var
+ ImageList: TCustomImageList;
+begin
+ if Dest is TCustomImageList then
+ begin
+ ImageList := TCustomImageList(Dest);
+ ImageList.Masked := Masked;
+ ImageList.ImageType := ImageType;
+ ImageList.DrawingStyle := DrawingStyle;
+ ImageList.ShareImages := ShareImages;
+ ImageList.BlendColor := BlendColor;
+ with ImageList do
+ begin
+ Clear;
+ SetNewDimensions(Self.Handle);
+ if not HandleAllocated then HandleNeeded
+ else ImageList_SetIconSize(Handle, Width, Height);
+ BkColor := GetColor(ImageList_GetBkColor(Self.Handle));
+ AddImages(Self);
+ end;
+ end
+ else inherited AssignTo(Dest);
+end;
+
+procedure TCustomImageList.CheckImage(Image: TGraphic);
+begin
+ if Image = nil then Exit;
+ with Image do
+ if (Height < FHeight) or (Width < FWidth) then
+ raise EInvalidOperation.Create(SInvalidImageSize);
+end;
+
+procedure TCustomImageList.SetDrawingStyle(Value: TDrawingStyle);
+begin
+ if Value <> DrawingStyle then
+ begin
+ FDrawingStyle := Value;
+ Change;
+ end;
+end;
+
+function TCustomImageList.GetHotSpot: TPoint;
+begin
+ Result := Point(0, 0);
+end;
+
+function TCustomImageList.GetInstRes(Instance: THandle; ResType: TResType;
+ Name: string; Width: Integer; LoadFlags: TLoadResources; MaskColor: TColor):
+ Boolean;
+const
+ ResMap: array [TResType] of Integer = (IMAGE_BITMAP, IMAGE_CURSOR, IMAGE_ICON);
+var
+ hImage: HImageList;
+ Flags: Integer;
+begin
+ Flags := 0;
+ if lrDefaultColor in LoadFlags then Flags := Flags or LR_DEFAULTCOLOR;
+ if lrDefaultSize in LoadFlags then Flags := Flags or LR_DEFAULTSIZE;
+ if lrFromFile in LoadFlags then Flags := Flags or LR_LOADFROMFILE;
+ if lrMap3DColors in LoadFlags then Flags := Flags or LR_LOADMAP3DCOLORS;
+ if lrTransparent in LoadFlags then Flags := Flags or LR_LOADTRANSPARENT;
+ if lrMonoChrome in LoadFlags then Flags := Flags or LR_MONOCHROME;
+ hImage := ImageList_LoadImage(Instance, PChar(Name), Width, AllocBy,
+ MaskColor, ResMap[ResType], Flags);
+ if hImage <> 0 then
+ begin
+ CopyImages(hImage);
+ ImageList_Destroy(hImage);
+ Result := True;
+ end
+ else Result := False;
+end;
+
+function TCustomImageList.GetResource(ResType: TResType; Name: string;
+ Width: Integer; LoadFlags: TLoadResources; MaskColor: TColor): Boolean;
+begin
+ Result := GetInstRes(MainInstance, ResType, Name, Width, LoadFlags, MaskColor);
+end;
+
+function TCustomImageList.ResInstLoad(Instance: THandle; ResType: TResType;
+ Name: string; MaskColor: TColor): Boolean;
+begin
+ Result := GetInstRes(Instance, ResType, Name, Width, [], MaskColor);
+end;
+
+function TCustomImageList.ResourceLoad(ResType: TResType; Name: string;
+ MaskColor: TColor): Boolean;
+var
+ LibModule: PLibModule;
+begin
+ Result := False;
+ if HInstance = MainInstance then
+ Result := GetInstRes(MainInstance, ResType, Name, Width, [], MaskColor)
+ else
+ begin
+ LibModule := LibModuleList;
+ while LibModule <> nil do
+ with LibModule^ do
+ begin
+ Result := GetInstRes(ResInstance, ResType, Name, Width, [], MaskColor);
+ if not Result and (Instance <> ResInstance) then
+ Result := GetInstRes(Instance, ResType, Name, Width, [], MaskColor);
+ if Result then Exit;
+ LibModule := LibModule.Next;
+ end;
+ end;
+end;
+
+function TCustomImageList.FileLoad(ResType: TResType; Name: string;
+ MaskColor: TColor): Boolean;
+begin
+ Result := GetResource(ResType, Name, Width, [lrFromFile], MaskColor);
+end;
+
+procedure TCustomImageList.Change;
+var
+ I: Integer;
+begin
+ FChanged := True;
+ if FUpdateCount > 0 then Exit;
+ if FClients <> nil then
+ for I := 0 to FClients.Count - 1 do
+ TChangeLink(FClients[I]).Change;
+ if Assigned(FOnChange) then FOnChange(Self);
+end;
+
+procedure TCustomImageList.UnRegisterChanges(Value: TChangeLink);
+var
+ I: Integer;
+begin
+ if FClients <> nil then
+ for I := 0 to FClients.Count - 1 do
+ if FClients[I] = Value then
+ begin
+ Value.Sender := nil;
+ FClients.Delete(I);
+ Break;
+ end;
+end;
+
+procedure TCustomImageList.RegisterChanges(Value: TChangeLink);
+begin
+ Value.Sender := Self;
+ if FClients <> nil then FClients.Add(Value);
+end;
+
+function TCustomImageList.Equal(IL: TCustomImageList): Boolean;
+
+ function StreamsEqual(S1, S2: TMemoryStream): Boolean;
+ begin
+ Result := (S1.Size = S2.Size) and CompareMem(S1.Memory, S2.Memory, S1.Size);
+ end;
+
+var
+ MyImage, OtherImage: TMemoryStream;
+begin
+ if (IL = nil) or (Count <> IL.Count) then
+ begin
+ Result := False;
+ Exit;
+ end;
+ if (Count = 0) and (IL.Count = 0) then
+ begin
+ Result := True;
+ Exit;
+ end;
+ MyImage := TMemoryStream.Create;
+ try
+ WriteData(MyImage);
+ OtherImage := TMemoryStream.Create;
+ try
+ IL.WriteData(OtherImage);
+ Result := StreamsEqual(MyImage, OtherImage);
+ finally
+ OtherImage.Free;
+ end;
+ finally
+ MyImage.Free;
+ end;
+end;
+
+procedure TCustomImageList.DefineProperties(Filer: TFiler);
+
+ function DoWrite: Boolean;
+ begin
+ if Filer.Ancestor <> nil then
+ Result := not (Filer.Ancestor is TCustomImageList) or
+ not Equal(TCustomImageList(Filer.Ancestor))
+ else
+ Result := Count > 0;
+ end;
+
+begin
+ inherited DefineProperties(Filer);
+ Filer.DefineBinaryProperty('Bitmap', ReadData, WriteData, DoWrite);
+end;
+
+procedure TCustomImageList.ReadD2Stream(Stream: TStream);
+var
+ FullImage, Image, FullMask, Mask: TBitmap;
+ I, J, Size, Pos, Count: Integer;
+ SrcRect: TRect;
+begin
+ Stream.ReadBuffer(Size, SizeOf(Size));
+ Stream.ReadBuffer(Count, SizeOf(Count));
+ FullImage := TBitmap.Create;
+ try
+ Pos := Stream.Position;
+ FullImage.LoadFromStream(Stream);
+ Stream.Position := Pos + Size;
+ FullMask := TBitmap.Create;
+ try
+ FullMask.LoadFromStream(Stream);
+ Image := TBitmap.Create;
+ Image.Width := Width;
+ Image.Height := Height;
+ Mask := TBitmap.Create;
+ Mask.Monochrome := True;
+ Mask.Width := Width;
+ Mask.Height := Height;
+ SrcRect := Rect(0, 0, Width, Height);
+ BeginUpdate;
+ try
+ for J := 0 to (FullImage.Height div Height) - 1 do
+ begin
+ if Count = 0 then Break;
+ for I := 0 to (FullImage.Width div Width) - 1 do
+ begin
+ if Count = 0 then Break;
+ Image.Canvas.CopyRect(SrcRect, FullImage.Canvas,
+ Bounds(I * Width, J * Height, Width, Height));
+ Mask.Canvas.CopyRect(SrcRect, FullMask.Canvas,
+ Bounds(I * Width, J * Height, Width, Height));
+ Add(Image, Mask);
+ Dec(Count);
+ end;
+ end;
+ finally
+ Image.Free;
+ Mask.Free;
+ EndUpdate;
+ end;
+ finally
+ FullMask.Free;
+ end;
+ finally
+ FullImage.Free;
+ end;
+end;
+
+procedure TCustomImageList.ReadD3Stream(Stream: TStream);
+var
+ SA: TStreamAdapter;
+begin
+ SA := TStreamAdapter.Create(Stream);
+ try
+ Handle := ImageList_Read(SA);
+ if Handle = 0 then
+ raise EReadError.Create(SImageReadFail);
+ finally
+ SA.Free;
+ end;
+end;
+
+procedure TCustomImageList.ReadData(Stream: TStream);
+var
+ CheckInt1, CheckInt2: Integer;
+ CheckByte1, CheckByte2: Byte;
+ StreamPos: Integer;
+begin
+ FreeHandle;
+ StreamPos := Stream.Position; // check stream signature to
+ Stream.Read(CheckInt1, SizeOf(CheckInt1)); // determine a Delphi 2 or Delphi
+ Stream.Read(CheckInt2, SizeOf(CheckInt2)); // 3 imagelist stream. Delphi 2
+ CheckByte1 := Lo(LoWord(CheckInt1)); // streams can be read, but only
+ CheckByte2 := Hi(LoWord(CheckInt1)); // Delphi 3 streams will be written
+ Stream.Position := StreamPos;
+ if (CheckInt1 <> CheckInt2) and (CheckByte1 = $49) and (CheckByte2 = $4C) then
+ ReadD3Stream(Stream)
+ else
+ ReadD2Stream(Stream);
+end;
+
+procedure TCustomImageList.WriteData(Stream: TStream);
+var
+ SA: TStreamAdapter;
+begin
+ SA := TStreamAdapter.Create(Stream);
+ try
+ if not ImageList_Write(Handle, SA) then
+ raise EWriteError.Create(SImageWriteFail);
+ finally
+ SA.Free;
+ end;
+end;
+(*
+var
+ I: Integer;
+ DIB1, DIB2: TBitmap;
+ DC: HDC;
+ S: TMemoryStream;
+
+ procedure WriteDIB(BM: HBitmap);
+ { The ImageList leaves its bitmap handle selected into a DC somewhere,
+ so we can't select it into our own DC to copy from it. The only safe
+ operation is GetDIB (GetDIBits), which extracts the pixel bits without
+ selecting the BM into a DC. This code builds our own bitmap from
+ those bits, then crops it to the minimum size before writing it out.}
+ var
+ BitsSize: DWORD;
+ Header, Bits: PChar;
+ DIBBits: Pointer;
+ R: TRect;
+ HeaderSize: DWORD;
+ GlyphsPerRow, Rows: Integer;
+ begin
+ if BM = 0 then Exit;
+ GetDIBSizes(BM, HeaderSize, BitsSize);
+ GetMem(Header, HeaderSize + BitsSize);
+ try
+ Bits := Header + HeaderSize;
+ GetDIB(BM, 0, Header^, Bits^);
+ DIB1.Handle := CreateDIBSection(DC, PBitmapInfo(Header)^, DIB_RGB_COLORS, DIBBits, 0, 0);
+ System.Move(Bits^, DIBBits^, BitsSize);
+ with PBitmapInfo(Header)^.bmiHeader do
+ begin
+ GlyphsPerRow := biWidth div Width;
+ if GlyphsPerRow = 0 then Inc(GlyphsPerRow);
+ if GlyphsPerRow > Count then GlyphsPerRow := Count;
+ biWidth := GlyphsPerRow * Width;
+ Rows := Count div GlyphsPerRow;
+ if Count > Rows * GlyphsPerRow then Inc(Rows);
+ biHeight := Rows * Height;
+ R := Rect(0, 0, biWidth, biHeight);
+ end;
+ DIB2.Handle := CreateDIBSection(DC, PBitmapInfo(Header)^, DIB_RGB_COLORS, DIBBits, 0, 0);
+ DIB2.Canvas.CopyRect(R, DIB1.Canvas, R);
+ DIB2.SaveToStream(S);
+ finally
+ FreeMem(Header);
+ end;
+ end;
+
+begin
+ DIB1 := nil;
+ DIB2 := nil;
+ DC := 0;
+ S := TMemoryStream.Create;
+ try
+ DIB1 := TBitmap.Create;
+ DIB2 := TBitmap.Create;
+ DC := GetDC(0);
+ WriteDIB(GetImageBitmap);
+ I := S.Size;
+ WriteDIB(GetMaskBitmap);
+ Stream.WriteBuffer(I, sizeof(I));
+ I := Count;
+ Stream.WriteBuffer(I, sizeof(I));
+ Stream.WriteBuffer(S.Memory^, S.Size);
+ finally
+ ReleaseDC(0, DC);
+ DIB1.Free;
+ DIB2.Free;
+ S.Free;
+ end;
+end;
+*)
+procedure TCustomImageList.BeginUpdate;
+begin
+ Inc(FUpdateCount);
+end;
+
+procedure TCustomImageList.EndUpdate;
+begin
+ if FUpdateCount > 0 then Dec(FUpdateCount);
+ if FChanged then
+ begin
+ FChanged := False;
+ Change;
+ end;
+end;
+*/
diff --git a/apps/X11/VCL/TCustomImageList.h b/apps/X11/VCL/TCustomImageList.h
new file mode 100644
index 0000000..b9b7cab
--- /dev/null
+++ b/apps/X11/VCL/TCustomImageList.h
@@ -0,0 +1,136 @@
+
+#ifndef TCUSTOMIMAGELIST_H
+#define TCUSTOMIMAGELIST_H
+
+#include <TComponent.h>
+#include <vector>
+#include <gtk/gtkpixmap.h>
+
+class TCustomImageList : public TComponent {
+/*
+
+ TDrawingStyle = (dsFocus, dsSelected, dsNormal, dsTransparent);
+ TImageType = (itImage, itMask);
+ TResType = (rtBitmap, rtCursor, rtIcon);
+ TOverlay = 0..3;
+ TLoadResource = (lrDefaultColor, lrDefaultSize, lrFromFile,
+ lrMap3DColors, lrTransparent, lrMonoChrome);
+ TLoadResources = set of TLoadResource;
+
+ TCustomImageList = class(TComponent)
+*/
+private:
+ vector <GtkPixmap *> images;
+/*
+ FHeight: Integer;
+ FWidth: Integer;
+ FAllocBy: Integer;
+ FHandle: HImageList;
+ FDrawingStyle: TDrawingStyle;
+ FMasked: Boolean;
+ FShareImages: Boolean;
+ FImageType: TImageType;
+ FBkColor: TColor;
+ FBlendColor: TColor;
+ FClients: TList;
+ FBitmap: TBitmap;
+ FMonoBitmap: TBitmap;
+ FChanged: Boolean;
+ FUpdateCount: Integer;
+ FOnChange: TNotifyEvent;
+ procedure AssignTo(Dest: TPersistent); override;
+ procedure BeginUpdate;
+ procedure EndUpdate;
+ procedure InitBitmap;
+ procedure CheckImage(Image: TGraphic);
+ procedure CopyImages(Value: HImageList);
+ procedure CreateImageList;
+ function Equal(IL: TCustomImageList): Boolean;
+ procedure FreeHandle;
+ function GetCount: Integer;
+ function GetBitmapHandle(Bitmap: HBITMAP): HBITMAP;
+ function GetBkColor: TColor;
+ function GetHandle: HImageList;
+ function GetImageHandle(Image, ImageDDB: TBitmap): HBITMAP;
+ procedure InsertImage(Index: Integer; Image, Mask: TBitmap; MaskColor: TColor);
+ procedure ReadData(Stream: TStream);
+ procedure SetBkColor(Value: TColor);
+ procedure SetDrawingStyle(Value: TDrawingStyle);
+ procedure SetHandle(Value: HImageList);
+ procedure SetHeight(Value: Integer);
+ procedure SetNewDimensions(Value: HImageList);
+ procedure SetWidth(Value: Integer);
+ procedure WriteData(Stream: TStream);
+ procedure ReadD2Stream(Stream: TStream);
+ procedure ReadD3Stream(Stream: TStream);
+ protected
+ procedure Change; dynamic;
+ procedure DefineProperties(Filer: TFiler); override;
+ procedure DoDraw(Index: Integer; Canvas: TCanvas; X, Y: Integer;
+ Style: Cardinal; Enabled: Boolean); virtual;
+ procedure GetImages(Index: Integer; Image, Mask: TBitmap);
+ procedure HandleNeeded;
+ procedure Initialize; virtual;
+*/
+public:
+ TCustomImageList(TComponent *AOwner);
+ TCustomImageList(int AWidth, int AHeight);
+ virtual ~TCustomImageList();
+// int Add(TBitmap *Image, TBitmap *Mask);
+ int Add(gchar **xpm_data, GtkWidget *canvas);
+// procedure GetBitmap(Index: Integer; Image: TBitmap);
+// void GetBitmap(int Index, TBitmap *);
+ GtkPixmap *GetPixmap(int Index);
+/*
+ procedure Assign(Source: TPersistent); override;
+ function AddIcon(Image: TIcon): Integer;
+ procedure AddImages(Value: TCustomImageList);
+ function AddMasked(Image: TBitmap; MaskColor: TColor): Integer;
+ procedure Clear;
+ procedure Delete(Index: Integer);
+ procedure Draw(Canvas: TCanvas; X, Y, Index: Integer; Enabled: Boolean=True);
+ procedure DrawOverlay(Canvas: TCanvas; X, Y: Integer;
+ ImageIndex: Integer; Overlay: TOverlay; Enabled: Boolean=True);
+ function FileLoad(ResType: TResType; Name: string;
+ MaskColor: TColor): Boolean;
+ function GetHotSpot: TPoint; virtual;
+ procedure GetIcon(Index: Integer; Image: TIcon);
+ function GetImageBitmap: HBITMAP;
+ function GetMaskBitmap: HBITMAP;
+ function GetResource(ResType: TResType; Name: string;
+ Width: Integer; LoadFlags: TLoadResources; MaskColor: TColor): Boolean;
+ function GetInstRes(Instance: THandle; ResType: TResType; Name: string;
+ Width: Integer; LoadFlags: TLoadResources; MaskColor: TColor): Boolean;
+ function HandleAllocated: Boolean;
+ procedure Insert(Index: Integer; Image, Mask: TBitmap);
+ procedure InsertIcon(Index: Integer; Image: TIcon);
+ procedure InsertMasked(Index: Integer; Image: TBitmap; MaskColor: TColor);
+ procedure Move(CurIndex, NewIndex: Integer);
+ function Overlay(ImageIndex: Integer; Overlay: TOverlay): Boolean;
+ procedure RegisterChanges(Value: TChangeLink);
+ function ResourceLoad(ResType: TResType; Name: string;
+ MaskColor: TColor): Boolean;
+ function ResInstLoad(Instance: THandle; ResType: TResType; Name: string;
+ MaskColor: TColor): Boolean;
+ procedure Replace(Index: Integer; Image, Mask: TBitmap);
+ procedure ReplaceIcon(Index: Integer; Image: TIcon);
+ procedure ReplaceMasked(Index: Integer; NewImage: TBitmap; MaskColor: TColor);
+ procedure UnRegisterChanges(Value: TChangeLink);
+ property Count: Integer read GetCount;
+ property Handle: HImageList read GetHandle write SetHandle;
+ public
+ property AllocBy: Integer read FAllocBy write FAllocBy default 4;
+ property BlendColor: TColor read FBlendColor write FBlendColor default clNone;
+ property BkColor: TColor read GetBkColor write SetBkColor default clNone;
+ property DrawingStyle: TDrawingStyle read FDrawingStyle write SetDrawingStyle default dsNormal;
+ property Height: Integer read FHeight write SetHeight default 16;
+ property ImageType: TImageType read FImageType write FImageType default itImage;
+ property Masked: Boolean read FMasked write FMasked default True;
+ property ShareImages: Boolean read FShareImages write FShareImages default False;
+ property Width: Integer read FWidth write SetWidth default 16;
+ property OnChange: TNotifyEvent read FOnChange write FOnChange;
+ end;
+*/
+};
+
+#endif
diff --git a/apps/X11/VCL/TCustomTabControl.cpp b/apps/X11/VCL/TCustomTabControl.cpp
new file mode 100644
index 0000000..40f9c3e
--- /dev/null
+++ b/apps/X11/VCL/TCustomTabControl.cpp
@@ -0,0 +1,7 @@
+#include <TCustomTabControl.h>
+
+TCustomTabControl::TCustomTabControl(TComponent *AOwner) : TWinControl(AOwner) {
+}
+
+TCustomTabControl::~TCustomTabControl() {
+}
diff --git a/apps/X11/VCL/TCustomTabControl.h b/apps/X11/VCL/TCustomTabControl.h
new file mode 100644
index 0000000..0b1e2b7
--- /dev/null
+++ b/apps/X11/VCL/TCustomTabControl.h
@@ -0,0 +1,103 @@
+#ifndef TCUSTOMTABCONTROL_H
+#define TCUSTOMTABCONTROL_H
+
+#include <TWinControl.h>
+
+class TCustomTabControl : public TWinControl {
+
+private:
+/*
+ FCanvas: TCanvas;
+ FHotTrack: Boolean;
+ FImageChangeLink: TChangeLink;
+ FImages: TCustomImageList;
+ FMultiLine: Boolean;
+ FMultiSelect: Boolean;
+ FOwnerDraw: Boolean;
+ FRaggedRight: Boolean;
+ FSaveTabIndex: Integer;
+ FSaveTabs: TStringList;
+ FScrollOpposite: Boolean;
+ FStyle: TTabStyle;
+ FTabPosition: TTabPosition;
+ FTabs: TStrings;
+ FTabSize: TSmallPoint;
+ FUpdating: Boolean;
+ FOnChange: TNotifyEvent;
+ FOnChanging: TTabChangingEvent;
+ FOnDrawTab: TDrawTabEvent;
+ FOnGetImageIndex: TTabGetImageEvent;
+ function GetDisplayRect: TRect;
+ function GetTabIndex: Integer;
+ procedure ImageListChange(Sender: TObject);
+ function InternalSetMultiLine(Value: Boolean): Boolean;
+ procedure SetHotTrack(Value: Boolean);
+ procedure SetImages(Value: TCustomImageList);
+ procedure SetMultiLine(Value: Boolean);
+ procedure SetMultiSelect(Value: Boolean);
+ procedure SetOwnerDraw(Value: Boolean);
+ procedure SetRaggedRight(Value: Boolean);
+ procedure SetScrollOpposite(Value: Boolean);
+ procedure SetStyle(Value: TTabStyle);
+ procedure SetTabHeight(Value: Smallint);
+ procedure SetTabIndex(Value: Integer);
+ procedure SetTabPosition(Value: TTabPosition);
+ procedure SetTabs(Value: TStrings);
+ procedure SetTabWidth(Value: Smallint);
+ procedure TabsChanged;
+ procedure UpdateTabSize;
+ procedure CMFontChanged(var Message); message CM_FONTCHANGED;
+ procedure CMSysColorChange(var Message: TMessage); message CM_SYSCOLORCHANGE;
+ procedure CMTabStopChanged(var Message: TMessage); message CM_TABSTOPCHANGED;
+ procedure CNNotify(var Message: TWMNotify); message CN_NOTIFY;
+ procedure CMDialogChar(var Message: TCMDialogChar); message CM_DIALOGCHAR;
+ procedure CNDrawItem(var Message: TWMDrawItem); message CN_DRAWITEM;
+ procedure WMDestroy(var Message: TWMDestroy); message WM_DESTROY;
+ procedure WMNotifyFormat(var Message: TMessage); message WM_NOTIFYFORMAT;
+ procedure WMSize(var Message: TMessage); message WM_SIZE;
+ protected
+ procedure AdjustClientRect(var Rect: TRect); override;
+ function CanChange: Boolean; dynamic;
+ function CanShowTab(TabIndex: Integer): Boolean; virtual;
+ procedure Change; dynamic;
+ procedure CreateParams(var Params: TCreateParams); override;
+ procedure CreateWnd; override;
+ procedure DestroyWnd; override;
+ procedure DrawTab(TabIndex: Integer; const Rect: TRect; Active: Boolean); virtual;
+ function GetImageIndex(TabIndex: Integer): Integer; virtual;
+ procedure Loaded; override;
+ procedure UpdateTabImages;
+ property DisplayRect: TRect read GetDisplayRect;
+ property HotTrack: Boolean read FHotTrack write SetHotTrack default False;
+ property Images: TCustomImageList read FImages write SetImages;
+ property MultiLine: Boolean read FMultiLine write SetMultiLine default False;
+ property MultiSelect: Boolean read FMultiSelect write SetMultiSelect default False;
+ procedure Notification(AComponent: TComponent; Operation: TOperation); override;
+ property OwnerDraw: Boolean read FOwnerDraw write SetOwnerDraw default False;
+ property RaggedRight: Boolean read FRaggedRight write SetRaggedRight default False;
+ property ScrollOpposite: Boolean read FScrollOpposite
+ write SetScrollOpposite default False;
+ property Style: TTabStyle read FStyle write SetStyle default tsTabs;
+ property TabHeight: Smallint read FTabSize.Y write SetTabHeight default 0;
+ property TabIndex: Integer read GetTabIndex write SetTabIndex default -1;
+ property TabPosition: TTabPosition read FTabPosition write SetTabPosition
+ default tpTop;
+ property Tabs: TStrings read FTabs write SetTabs;
+ property TabWidth: Smallint read FTabSize.X write SetTabWidth default 0;
+ property OnChange: TNotifyEvent read FOnChange write FOnChange;
+ property OnChanging: TTabChangingEvent read FOnChanging write FOnChanging;
+ property OnDrawTab: TDrawTabEvent read FOnDrawTab write FOnDrawTab;
+ property OnGetImageIndex: TTabGetImageEvent read FOnGetImageIndex write FOnGetImageIndex;
+*/
+public:
+ TCustomTabControl(TComponent *AOwner);
+ ~TCustomTabControl();
+/*
+ property Canvas: TCanvas read FCanvas;
+ property TabStop default True;
+ end;
+*/
+};
+
+#endif
+
diff --git a/apps/X11/VCL/TCustomTreeView.cpp b/apps/X11/VCL/TCustomTreeView.cpp
new file mode 100644
index 0000000..18e4c29
--- /dev/null
+++ b/apps/X11/VCL/TCustomTreeView.cpp
@@ -0,0 +1,1169 @@
+#include <TCustomTreeView.h>
+#include <TTreeNodes.h>
+
+TCustomTreeView::TCustomTreeView(TComponent *AOwner) :
+ TWinControl(AOwner),
+ Items(this, &TCustomTreeView::getItems, &TCustomTreeView::SetTreeNodes),
+ Images(this, &TCustomTreeView::getImages, &TCustomTreeView::SetImages),
+ StateImages(this, &TCustomTreeView::getStateImages, &TCustomTreeView::SetStateImages),
+ Selected(this, &TCustomTreeView::GetSelection, &TCustomTreeView::SetSelection) {
+ init(AOwner);
+}
+
+
+TCustomTreeView::TCustomTreeView(GtkWidget *parent) :
+ TWinControl(parent),
+ Items(this, &TCustomTreeView::getItems, &TCustomTreeView::SetTreeNodes),
+ Images(this, &TCustomTreeView::getImages, &TCustomTreeView::SetImages),
+ StateImages(this, &TCustomTreeView::getStateImages, &TCustomTreeView::SetStateImages),
+ Selected(this, &TCustomTreeView::GetSelection, &TCustomTreeView::SetSelection) {
+ nativeControl = gtk_tree_new();
+/*
+ gtk_widget_ref (nativeControl);
+ gtk_object_set_data_full (GTK_OBJECT (InstallMgrApp), "LocalTree", LocalTree,
+ (GtkDestroyNotify) gtk_widget_unref);
+*/
+ gtk_widget_show (nativeControl);
+ gtk_container_add (GTK_CONTAINER (parent), nativeControl);
+ init(0);
+}
+
+TCustomTreeView::~TCustomTreeView() {
+}
+
+void TCustomTreeView::init(TComponent *AOwner) {
+/*
+ ControlStyle := ControlStyle - [csCaptureMouse] + [csDisplayDragImage, csReflector];
+ Width := 121;
+ Height := 97;
+ TabStop := True;
+ ParentColor := False;
+ FCanvas := TControlCanvas.Create;
+ TControlCanvas(FCanvas).Control := Self;
+*/
+// FTreeNodes := TTreeNodes.Create(Self);
+ FTreeNodes = new TTreeNodes(this);
+/*
+ FBorderStyle := bsSingle;
+ FShowButtons := True;
+ FShowRoot := True;
+ FShowLines := True;
+ FHideSelection := True;
+ FDragImage := TDragImageList.CreateSize(32, 32);
+ FSaveIndent := -1;
+ FChangeTimer := TTimer.Create(Self);
+ FChangeTimer.Enabled := False;
+ FChangeTimer.Interval := 0;
+ FChangeTimer.OnTimer := OnChangeTimer;
+ FToolTips := True;
+ FEditInstance := MakeObjectInstance(EditWndProc);
+ FImageChangeLink := TChangeLink.Create;
+ FImageChangeLink.OnChange := ImageListChange;
+ FStateChangeLink := TChangeLink.Create;
+ FStateChangeLink.OnChange := ImageListChange;
+*/
+}
+
+
+/*
+procedure TCustomTreeView.SetTreeNodes(Value: TTreeNodes);
+begin
+ Items.Assign(Value);
+end;
+*/
+
+void TCustomTreeView::SetTreeNodes(TTreeNodes* Value) {
+// Items->Assign(Value);
+}
+
+/*
+procedure TCustomTreeView.GetSelectedIndex(Node: TTreeNode);
+begin
+ if Assigned(FOnGetSelectedIndex) then FOnGetSelectedIndex(Self, Node);
+end;
+
+TTreeNode *TCustomTreeView::GetSelected() {
+}
+
+*/
+
+/*
+function TCustomTreeView.GetSelection: TTreeNode;
+begin
+ if HandleAllocated then
+ begin
+ if FRightClickSelect and Assigned(FRClickNode) then
+ Result := FRClickNode
+ else
+ Result := Items.GetNode(TreeView_GetSelection(Handle));
+ end
+ else Result := nil;
+end;
+
+procedure TCustomTreeView.SetSelection(Value: TTreeNode);
+begin
+ if Value <> nil then Value.Selected := True
+ else TreeView_SelectItem(Handle, nil);
+end;
+*/
+
+TTreeNode *TCustomTreeView::GetSelection() {
+ GList *selected_nodes = GTK_TREE_SELECTION (nativeControl);
+ selected_nodes = g_list_first(selected_nodes);
+ return (selected_nodes) ? Items->GetNode(GTK_TREE_ITEM(selected_nodes->data)) : 0;
+}
+
+void TCustomTreeView::SetSelection(TTreeNode *node) {
+}
+
+
+/*
+procedure TCustomTreeView.SetImages(Value: TCustomImageList);
+begin
+ if Images <> nil then
+ Images.UnRegisterChanges(FImageChangeLink);
+ FImages := Value;
+ if Images <> nil then
+ begin
+ Images.RegisterChanges(FImageChangeLink);
+ Images.FreeNotification(Self);
+ SetImageList(Images.Handle, TVSIL_NORMAL)
+ end
+ else SetImageList(0, TVSIL_NORMAL);
+end;
+
+procedure TCustomTreeView.SetStateImages(Value: TCustomImageList);
+begin
+ if StateImages <> nil then
+ StateImages.UnRegisterChanges(FStateChangeLink);
+ FStateImages := Value;
+ if StateImages <> nil then
+ begin
+ StateImages.RegisterChanges(FStateChangeLink);
+ StateImages.FreeNotification(Self);
+ SetImageList(StateImages.Handle, TVSIL_STATE)
+ end
+ else SetImageList(0, TVSIL_STATE);
+end;
+*/
+
+void TCustomTreeView::SetImages(TCustomImageList *images) {
+ FImages = images;
+}
+
+void TCustomTreeView::SetStateImages(TCustomImageList *images) {
+ FStateImages = images;
+}
+
+
+/*
+{ TCustomTreeView }
+destructor TCustomTreeView.Destroy;
+begin
+ Items.Free;
+ FChangeTimer.Free;
+ FSaveItems.Free;
+ FDragImage.Free;
+ FMemStream.Free;
+ FreeObjectInstance(FEditInstance);
+ FImageChangeLink.Free;
+ FStateChangeLink.Free;
+ FCanvas.Free;
+ inherited Destroy;
+end;
+
+procedure TCustomTreeView.CreateParams(var Params: TCreateParams);
+const
+ BorderStyles: array[TBorderStyle] of DWORD = (0, WS_BORDER);
+ LineStyles: array[Boolean] of DWORD = (0, TVS_HASLINES);
+ RootStyles: array[Boolean] of DWORD = (0, TVS_LINESATROOT);
+ ButtonStyles: array[Boolean] of DWORD = (0, TVS_HASBUTTONS);
+ EditStyles: array[Boolean] of DWORD = (TVS_EDITLABELS, 0);
+ HideSelections: array[Boolean] of DWORD = (TVS_SHOWSELALWAYS, 0);
+ DragStyles: array[TDragMode] of DWORD = (TVS_DISABLEDRAGDROP, 0);
+ RTLStyles: array[Boolean] of DWORD = (0, TVS_RTLREADING);
+ ToolTipStyles: array[Boolean] of DWORD = (TVS_NOTOOLTIPS, 0);
+ AutoExpandStyles: array[Boolean] of DWORD = (0, TVS_SINGLEEXPAND);
+ HotTrackStyles: array[Boolean] of DWORD = (0, TVS_TRACKSELECT);
+ RowSelectStyles: array[Boolean] of DWORD = (0, TVS_FULLROWSELECT);
+begin
+ InitCommonControl(ICC_TREEVIEW_CLASSES);
+ inherited CreateParams(Params);
+ CreateSubClass(Params, WC_TREEVIEW);
+ with Params do
+ begin
+ Style := Style or LineStyles[FShowLines] or BorderStyles[FBorderStyle] or
+ RootStyles[FShowRoot] or ButtonStyles[FShowButtons] or
+ EditStyles[FReadOnly] or HideSelections[FHideSelection] or
+ DragStyles[DragMode] or RTLStyles[UseRightToLeftReading] or
+ ToolTipStyles[FToolTips] or AutoExpandStyles[FAutoExpand] or
+ HotTrackStyles[FHotTrack] or RowSelectStyles[FRowSelect];
+ if Ctl3D and NewStyleControls and (FBorderStyle = bsSingle) then
+ begin
+ Style := Style and not WS_BORDER;
+ ExStyle := Params.ExStyle or WS_EX_CLIENTEDGE;
+ end;
+ WindowClass.style := WindowClass.style and not (CS_HREDRAW or CS_VREDRAW);
+ end;
+end;
+
+procedure TCustomTreeView.CreateWnd;
+begin
+ FStateChanging := False;
+ inherited CreateWnd;
+ TreeView_SetBkColor(Handle, ColorToRGB(Color));
+ TreeView_SetTextColor(Handle, ColorToRGB(Font.Color));
+ if FMemStream <> nil then
+ begin
+ Items.ReadData(FMemStream);
+ FMemStream.Destroy;
+ FMemStream := nil;
+ SetTopItem(Items.GetNodeFromIndex(FSaveTopIndex));
+ FSaveTopIndex := 0;
+ SetSelection(Items.GetNodeFromIndex(FSaveIndex));
+ FSaveIndex := 0;
+ end;
+ if FSaveIndent <> -1 then Indent := FSaveIndent;
+ if (Images <> nil) and Images.HandleAllocated then
+ SetImageList(Images.Handle, TVSIL_NORMAL);
+ if (StateImages <> nil) and StateImages.HandleAllocated then
+ SetImageList(StateImages.Handle, TVSIL_STATE);
+end;
+
+procedure TCustomTreeView.DestroyWnd;
+var
+ Node: TTreeNode;
+begin
+ FStateChanging := True;
+ if Items.Count > 0 then
+ begin
+ FMemStream := TMemoryStream.Create;
+ Items.WriteData(FMemStream);
+ FMemStream.Position := 0;
+ Node := GetTopItem;
+ if Node <> nil then FSaveTopIndex := Node.AbsoluteIndex;
+ Node := Selected;
+ if Node <> nil then FSaveIndex := Node.AbsoluteIndex;
+ end;
+ FSaveIndent := Indent;
+ inherited DestroyWnd;
+end;
+
+procedure TCustomTreeView.EditWndProc(var Message: TMessage);
+begin
+ try
+ with Message do
+ begin
+ case Msg of
+ WM_KEYDOWN,
+ WM_SYSKEYDOWN: if DoKeyDown(TWMKey(Message)) then Exit;
+ WM_CHAR: if DoKeyPress(TWMKey(Message)) then Exit;
+ WM_KEYUP,
+ WM_SYSKEYUP: if DoKeyUp(TWMKey(Message)) then Exit;
+ CN_KEYDOWN,
+ CN_CHAR, CN_SYSKEYDOWN,
+ CN_SYSCHAR:
+ begin
+ WndProc(Message);
+ Exit;
+ end;
+ end;
+ Result := CallWindowProc(FDefEditProc, FEditHandle, Msg, WParam, LParam);
+ end;
+ except
+ Application.HandleException(Self);
+ end;
+end;
+
+procedure TCustomTreeView.CMColorChanged(var Message: TMessage);
+begin
+ inherited;
+ RecreateWnd;
+end;
+
+procedure TCustomTreeView.CMCtl3DChanged(var Message: TMessage);
+begin
+ inherited;
+ if FBorderStyle = bsSingle then RecreateWnd;
+end;
+
+procedure TCustomTreeView.CMFontChanged(var Message: TMessage);
+begin
+ inherited;
+ TreeView_SetTextColor(Handle, ColorToRGB(Font.Color));
+end;
+
+procedure TCustomTreeView.CMSysColorChange(var Message: TMessage);
+begin
+ inherited;
+ if not (csLoading in ComponentState) then
+ begin
+ Message.Msg := WM_SYSCOLORCHANGE;
+ DefaultHandler(Message);
+ end;
+end;
+
+function TCustomTreeView.AlphaSort: Boolean;
+var
+ Node: TTreeNode;
+begin
+ if HandleAllocated then
+ begin
+ Result := CustomSort(nil, 0);
+ Node := FTreeNodes.GetFirstNode;
+ while Node <> nil do
+ begin
+ if Node.HasChildren then Node.AlphaSort;
+ Node := Node.GetNext;
+ end;
+ end
+ else
+ Result := False;
+end;
+
+function TCustomTreeView.CustomSort(SortProc: TTVCompare; Data: Longint): Boolean;
+var
+ SortCB: TTVSortCB;
+ Node: TTreeNode;
+begin
+ Result := False;
+ if HandleAllocated then
+ begin
+ with SortCB do
+ begin
+ if not Assigned(SortProc) then lpfnCompare := @DefaultTreeViewSort
+ else lpfnCompare := SortProc;
+ hParent := TVI_ROOT;
+ lParam := Data;
+ Result := TreeView_SortChildrenCB(Handle, SortCB, 0);
+ end;
+ Node := FTreeNodes.GetFirstNode;
+ while Node <> nil do
+ begin
+ if Node.HasChildren then Node.CustomSort(SortProc, Data);
+ Node := Node.GetNext;
+ end;
+ Items.ClearCache;
+ end;
+end;
+
+procedure TCustomTreeView.SetAutoExpand(Value: Boolean);
+begin
+ if FAutoExpand <> Value then
+ begin
+ FAutoExpand := Value;
+ SetComCtlStyle(Self, TVS_SINGLEEXPAND, Value);
+ end;
+end;
+
+procedure TCustomTreeView.SetHotTrack(Value: Boolean);
+begin
+ if FHotTrack <> Value then
+ begin
+ FHotTrack := Value;
+ SetComCtlStyle(Self, TVS_TRACKSELECT, Value);
+ end;
+end;
+
+procedure TCustomTreeView.SetRowSelect(Value: Boolean);
+begin
+ if FRowSelect <> Value then
+ begin
+ FRowSelect := Value;
+ SetComCtlStyle(Self, TVS_FULLROWSELECT, Value);
+ end;
+end;
+
+procedure TCustomTreeView.SetToolTips(Value: Boolean);
+begin
+ if FToolTips <> Value then
+ begin
+ FToolTips := Value;
+ SetComCtlStyle(Self, TVS_NOTOOLTIPS, not Value);
+ end;
+end;
+
+procedure TCustomTreeView.SetSortType(Value: TSortType);
+begin
+ if SortType <> Value then
+ begin
+ FSortType := Value;
+ if ((SortType in [stData, stBoth]) and Assigned(OnCompare)) or
+ (SortType in [stText, stBoth]) then
+ AlphaSort;
+ end;
+end;
+
+procedure TCustomTreeView.SetBorderStyle(Value: TBorderStyle);
+begin
+ if BorderStyle <> Value then
+ begin
+ FBorderStyle := Value;
+ RecreateWnd;
+ end;
+end;
+
+procedure TCustomTreeView.SetDragMode(Value: TDragMode);
+begin
+ if Value <> DragMode then
+ SetComCtlStyle(Self, TVS_DISABLEDRAGDROP, Value = dmManual);
+ inherited;
+end;
+
+procedure TCustomTreeView.SetButtonStyle(Value: Boolean);
+begin
+ if ShowButtons <> Value then
+ begin
+ FShowButtons := Value;
+ SetComCtlStyle(Self, TVS_HASBUTTONS, Value);
+ end;
+end;
+
+procedure TCustomTreeView.SetLineStyle(Value: Boolean);
+begin
+ if ShowLines <> Value then
+ begin
+ FShowLines := Value;
+ SetComCtlStyle(Self, TVS_HASLINES, Value);
+ end;
+end;
+
+procedure TCustomTreeView.SetRootStyle(Value: Boolean);
+begin
+ if ShowRoot <> Value then
+ begin
+ FShowRoot := Value;
+ SetComCtlStyle(Self, TVS_LINESATROOT, Value);
+ end;
+end;
+
+procedure TCustomTreeView.SetReadOnly(Value: Boolean);
+begin
+ if ReadOnly <> Value then
+ begin
+ FReadOnly := Value;
+ SetComCtlStyle(Self, TVS_EDITLABELS, not Value);
+ end;
+end;
+
+procedure TCustomTreeView.SetHideSelection(Value: Boolean);
+begin
+ if HideSelection <> Value then
+ begin
+ FHideSelection := Value;
+ SetComCtlStyle(Self, TVS_SHOWSELALWAYS, not Value);
+ Invalidate;
+ end;
+end;
+
+function TCustomTreeView.GetNodeAt(X, Y: Integer): TTreeNode;
+var
+ HitTest: TTVHitTestInfo;
+begin
+ with HitTest do
+ begin
+ pt.X := X;
+ pt.Y := Y;
+ if TreeView_HitTest(Handle, HitTest) <> nil then
+ Result := Items.GetNode(HitTest.hItem)
+ else Result := nil;
+ end;
+end;
+
+function TCustomTreeView.GetHitTestInfoAt(X, Y: Integer): THitTests;
+var
+ HitTest: TTVHitTestInfo;
+begin
+ Result := [];
+ with HitTest do
+ begin
+ pt.X := X;
+ pt.Y := Y;
+ TreeView_HitTest(Handle, HitTest);
+ if (flags and TVHT_ABOVE) <> 0 then Include(Result, htAbove);
+ if (flags and TVHT_BELOW) <> 0 then Include(Result, htBelow);
+ if (flags and TVHT_NOWHERE) <> 0 then Include(Result, htNowhere);
+ if (flags and TVHT_ONITEM) = TVHT_ONITEM then
+ Include(Result, htOnItem)
+ else
+ begin
+ if (flags and TVHT_ONITEM) <> 0 then Include(Result, htOnItem);
+ if (flags and TVHT_ONITEMICON) <> 0 then Include(Result, htOnIcon);
+ if (flags and TVHT_ONITEMLABEL) <> 0 then Include(Result, htOnLabel);
+ if (flags and TVHT_ONITEMSTATEICON) <> 0 then Include(Result, htOnStateIcon);
+ end;
+ if (flags and TVHT_ONITEMBUTTON) <> 0 then Include(Result, htOnButton);
+ if (flags and TVHT_ONITEMINDENT) <> 0 then Include(Result, htOnIndent);
+ if (flags and TVHT_ONITEMRIGHT) <> 0 then Include(Result, htOnRight);
+ if (flags and TVHT_TOLEFT) <> 0 then Include(Result, htToLeft);
+ if (flags and TVHT_TORIGHT) <> 0 then Include(Result, htToRight);
+ end;
+end;
+
+procedure TCustomTreeView.SetIndent(Value: Integer);
+begin
+ if Value <> Indent then TreeView_SetIndent(Handle, Value);
+end;
+
+function TCustomTreeView.GetIndent: Integer;
+begin
+ Result := TreeView_GetIndent(Handle)
+end;
+
+procedure TCustomTreeView.FullExpand;
+var
+ Node: TTreeNode;
+begin
+ Node := Items.GetFirstNode;
+ while Node <> nil do
+ begin
+ Node.Expand(True);
+ Node := Node.GetNextSibling;
+ end;
+end;
+
+procedure TCustomTreeView.FullCollapse;
+var
+ Node: TTreeNode;
+begin
+ Node := Items.GetFirstNode;
+ while Node <> nil do
+ begin
+ Node.Collapse(True);
+ Node := Node.GetNextSibling;
+ end;
+end;
+
+procedure TCustomTreeView.Loaded;
+begin
+ inherited Loaded;
+ if csDesigning in ComponentState then FullExpand;
+end;
+
+function TCustomTreeView.GetTopItem: TTreeNode;
+begin
+ if HandleAllocated then
+ Result := Items.GetNode(TreeView_GetFirstVisible(Handle))
+ else Result := nil;
+end;
+
+procedure TCustomTreeView.SetTopItem(Value: TTreeNode);
+begin
+ if HandleAllocated and (Value <> nil) then
+ TreeView_SelectSetFirstVisible(Handle, Value.ItemId);
+end;
+
+procedure TCustomTreeView.OnChangeTimer(Sender: TObject);
+begin
+ FChangeTimer.Enabled := False;
+ Change(TTreeNode(FChangeTimer.Tag));
+end;
+
+procedure TCustomTreeView.SetChangeDelay(Value: Integer);
+begin
+ FChangeTimer.Interval := Value;
+end;
+
+function TCustomTreeView.GetChangeDelay: Integer;
+begin
+ Result := FChangeTimer.Interval;
+end;
+
+function TCustomTreeView.GetDropTarget: TTreeNode;
+begin
+ if HandleAllocated then
+ begin
+ Result := Items.GetNode(TreeView_GetDropHilite(Handle));
+ if Result = nil then Result := FLastDropTarget;
+ end
+ else Result := nil;
+end;
+
+procedure TCustomTreeView.SetDropTarget(Value: TTreeNode);
+begin
+ if HandleAllocated then
+ if Value <> nil then Value.DropTarget := True
+ else TreeView_SelectDropTarget(Handle, nil);
+end;
+
+function TCustomTreeView.GetNodeFromItem(const Item: TTVItem): TTreeNode;
+begin
+ with Item do
+ if (state and TVIF_PARAM) <> 0 then Result := Pointer(lParam)
+ else Result := Items.GetNode(hItem);
+end;
+
+function TCustomTreeView.IsEditing: Boolean;
+var
+ ControlHand: HWnd;
+begin
+ ControlHand := TreeView_GetEditControl(Handle);
+ Result := (ControlHand <> 0) and IsWindowVisible(ControlHand);
+end;
+
+procedure TCustomTreeView.CNNotify(var Message: TWMNotify);
+var
+ Node: TTreeNode;
+ MousePos: TPoint;
+ R: TRect;
+ DefaultDraw: Boolean;
+ TmpItem: TTVItem;
+begin
+ with Message do
+ case NMHdr^.code of
+ NM_CUSTOMDRAW:
+ with PNMCustomDraw(NMHdr)^ do
+ begin
+ Result := CDRF_DODEFAULT;
+ if dwDrawStage = CDDS_PREPAINT then
+ begin
+ if IsCustomDrawn(dtControl, cdPrePaint) then
+ begin
+ FCanvas.Handle := hdc;
+ FCanvas.Font := Font;
+ FCanvas.Brush := Brush;
+ R := ClientRect;
+ DefaultDraw := CustomDraw(R, cdPrePaint);
+ FCanvas.Handle := 0;
+ if not DefaultDraw then
+ begin
+ Result := CDRF_SKIPDEFAULT;
+ Exit;
+ end;
+ end;
+ if IsCustomDrawn(dtControl, cdPostPaint) then
+ Result := CDRF_NOTIFYPOSTPAINT;
+ if IsCustomDrawn(dtItem, cdPrePaint) then
+ Result := Result or CDRF_NOTIFYITEMDRAW else
+ Result := Result or CDRF_DODEFAULT;
+ end
+ else if dwDrawStage = CDDS_ITEMPREPAINT then
+ begin
+ FillChar(TmpItem, SizeOf(TmpItem), 0);
+ TmpItem.hItem := HTREEITEM(dwItemSpec);
+ Node := GetNodeFromItem(TmpItem);
+ if Node <> nil then
+ begin
+ FCanvas.Handle := hdc;
+ FCanvas.Font := Font;
+ FCanvas.Brush := Brush;
+ { Unlike the list view, the tree view doesn't override the text
+ foreground and background colors of selected items. }
+ if uItemState and CDIS_SELECTED <> 0 then
+ begin
+ FCanvas.Font.Color := clHighlightText;
+ FCanvas.Brush.Color := clHighlight;
+ end;
+ FCanvas.Font.OnChange := CanvasChanged;
+ FCanvas.Brush.OnChange := CanvasChanged;
+ DefaultDraw := CustomDrawItem(Node,
+ TCustomDrawState(Word(uItemState)), cdPrePaint);
+ if not DefaultDraw then
+ Result := Result or CDRF_SKIPDEFAULT
+ else if FCanvasChanged then
+ begin
+ FCanvasChanged := False;
+ FCanvas.Font.OnChange := nil;
+ FCanvas.Brush.OnChange := nil;
+ with PNMTVCustomDraw(NMHdr)^ do
+ begin
+ clrText := ColorToRGB(FCanvas.Font.Color);
+ clrTextBk := ColorToRGB(FCanvas.Brush.Color);
+ SelectObject(hdc, FCanvas.Font.Handle);
+ Result := Result or CDRF_NEWFONT;
+ end;
+ end;
+ FCanvas.Handle := 0;
+ if IsCustomDrawn(dtItem, cdPostPaint) then
+ Result := Result or CDRF_NOTIFYPOSTPAINT;
+ end;
+ end;
+ end;
+ TVN_BEGINDRAG:
+ begin
+ FDragged := True;
+ with PNMTreeView(NMHdr)^ do
+ FDragNode := GetNodeFromItem(ItemNew);
+ end;
+ TVN_BEGINLABELEDIT:
+ begin
+ with PTVDispInfo(NMHdr)^ do
+ if Dragging or not CanEdit(GetNodeFromItem(item)) then
+ Result := 1;
+ if Result = 0 then
+ begin
+ FEditHandle := TreeView_GetEditControl(Handle);
+ FDefEditProc := Pointer(GetWindowLong(FEditHandle, GWL_WNDPROC));
+ SetWindowLong(FEditHandle, GWL_WNDPROC, LongInt(FEditInstance));
+ end;
+ end;
+ TVN_ENDLABELEDIT: Edit(PTVDispInfo(NMHdr)^.item);
+ TVN_ITEMEXPANDING:
+ if not FManualNotify then
+ begin
+ with PNMTreeView(NMHdr)^ do
+ begin
+ Node := GetNodeFromItem(ItemNew);
+ if (action = TVE_EXPAND) and not CanExpand(Node) then
+ Result := 1
+ else if (action = TVE_COLLAPSE) and
+ not CanCollapse(Node) then Result := 1;
+ end;
+ end;
+ TVN_ITEMEXPANDED:
+ if not FManualNotify then
+ begin
+ with PNMTreeView(NMHdr)^ do
+ begin
+ Node := GetNodeFromItem(itemNew);
+ if (action = TVE_EXPAND) then Expand(Node)
+ else if (action = TVE_COLLAPSE) then Collapse(Node);
+ end;
+ end;
+ TVN_SELCHANGINGA, TVN_SELCHANGINGW:
+ if not CanChange(GetNodeFromItem(PNMTreeView(NMHdr)^.itemNew)) then
+ Result := 1;
+ TVN_SELCHANGEDA, TVN_SELCHANGEDW:
+ with PNMTreeView(NMHdr)^ do
+ if FChangeTimer.Interval > 0 then
+ with FChangeTimer do
+ begin
+ Enabled := False;
+ Tag := Integer(GetNodeFromItem(itemNew));
+ Enabled := True;
+ end
+ else
+ Change(GetNodeFromItem(itemNew));
+ TVN_DELETEITEM:
+ begin
+ Node := GetNodeFromItem(PNMTreeView(NMHdr)^.itemOld);
+ if Node <> nil then
+ begin
+ Node.FItemId := nil;
+ FChangeTimer.Enabled := False;
+ if FStateChanging then Node.Delete
+ else Items.Delete(Node);
+ end;
+ end;
+ TVN_SETDISPINFO:
+ with PTVDispInfo(NMHdr)^ do
+ begin
+ Node := GetNodeFromItem(item);
+ if (Node <> nil) and ((item.mask and TVIF_TEXT) <> 0) then
+ Node.Text := item.pszText;
+ end;
+ TVN_GETDISPINFO:
+ with PTVDispInfo(NMHdr)^ do
+ begin
+ Node := GetNodeFromItem(item);
+ if Node <> nil then
+ begin
+ if (item.mask and TVIF_TEXT) <> 0 then
+ StrLCopy(item.pszText, PChar(Node.Text), item.cchTextMax);
+ if (item.mask and TVIF_IMAGE) <> 0 then
+ begin
+ GetImageIndex(Node);
+ item.iImage := Node.ImageIndex;
+ end;
+ if (item.mask and TVIF_SELECTEDIMAGE) <> 0 then
+ begin
+ GetSelectedIndex(Node);
+ item.iSelectedImage := Node.SelectedIndex;
+ end;
+ end;
+ end;
+ NM_RCLICK:
+ begin
+ if RightClickSelect then
+ begin
+ GetCursorPos(MousePos);
+ with PointToSmallPoint(ScreenToClient(MousePos)) do
+ begin
+ FRClickNode := GetNodeAt(X, Y);
+ Perform(WM_RBUTTONUP, 0, MakeLong(X, Y));
+ end;
+ end
+ else FRClickNode := Pointer(1);
+ end;
+ end;
+end;
+
+function TCustomTreeView.GetDragImages: TDragImageList;
+begin
+ if FDragImage.Count > 0 then
+ Result := FDragImage else
+ Result := nil;
+end;
+
+procedure TCustomTreeView.WndProc(var Message: TMessage);
+begin
+ if not (csDesigning in ComponentState) and ((Message.Msg = WM_LBUTTONDOWN) or
+ (Message.Msg = WM_LBUTTONDBLCLK)) and not Dragging and
+ (DragMode = dmAutomatic) and (DragKind = dkDrag) then
+ begin
+ if not IsControlMouseMsg(TWMMouse(Message)) then
+ begin
+ ControlState := ControlState + [csLButtonDown];
+ Dispatch(Message);
+ end;
+ end
+ else inherited WndProc(Message);
+end;
+
+procedure TCustomTreeView.DoStartDrag(var DragObject: TDragObject);
+var
+ ImageHandle: HImageList;
+ DragNode: TTreeNode;
+ P: TPoint;
+begin
+ inherited DoStartDrag(DragObject);
+ DragNode := FDragNode;
+ FLastDropTarget := nil;
+ FDragNode := nil;
+ if DragNode = nil then
+ begin
+ GetCursorPos(P);
+ with ScreenToClient(P) do DragNode := GetNodeAt(X, Y);
+ end;
+ if DragNode <> nil then
+ begin
+ ImageHandle := TreeView_CreateDragImage(Handle, DragNode.ItemId);
+ if ImageHandle <> 0 then
+ with FDragImage do
+ begin
+ Handle := ImageHandle;
+ SetDragImage(0, 2, 2);
+ end;
+ end;
+end;
+
+procedure TCustomTreeView.DoEndDrag(Target: TObject; X, Y: Integer);
+begin
+ inherited DoEndDrag(Target, X, Y);
+ FLastDropTarget := nil;
+end;
+
+procedure TCustomTreeView.CMDrag(var Message: TCMDrag);
+begin
+ inherited;
+ with Message, DragRec^ do
+ case DragMessage of
+ dmDragMove:
+ with ScreenToClient(Pos) do
+ DoDragOver(Source, X, Y, Message.Result <> 0);
+ dmDragLeave:
+ begin
+ TDragObject(Source).HideDragImage;
+ FLastDropTarget := DropTarget;
+ DropTarget := nil;
+ TDragObject(Source).ShowDragImage;
+ end;
+ dmDragDrop: FLastDropTarget := nil;
+ end;
+end;
+
+procedure TCustomTreeView.DoDragOver(Source: TDragObject; X, Y: Integer; CanDrop: Boolean);
+var
+ Node: TTreeNode;
+begin
+ Node := GetNodeAt(X, Y);
+ if (Node <> nil) and
+ ((Node <> DropTarget) or (Node = FLastDropTarget)) then
+ begin
+ FLastDropTarget := nil;
+ TDragObject(Source).HideDragImage;
+ Node.DropTarget := True;
+ TDragObject(Source).ShowDragImage;
+ end;
+end;
+
+procedure TCustomTreeView.GetImageIndex(Node: TTreeNode);
+begin
+ if Assigned(FOnGetImageIndex) then FOnGetImageIndex(Self, Node);
+end;
+
+function TCustomTreeView.CanChange(Node: TTreeNode): Boolean;
+begin
+ Result := True;
+ if Assigned(FOnChanging) then FOnChanging(Self, Node, Result);
+end;
+
+procedure TCustomTreeView.Change(Node: TTreeNode);
+begin
+ if Assigned(FOnChange) then FOnChange(Self, Node);
+end;
+
+procedure TCustomTreeView.Delete(Node: TTreeNode);
+begin
+ if Assigned(FOnDeletion) then FOnDeletion(Self, Node);
+end;
+
+procedure TCustomTreeView.Expand(Node: TTreeNode);
+begin
+ if Assigned(FOnExpanded) then FOnExpanded(Self, Node);
+end;
+
+function TCustomTreeView.CanExpand(Node: TTreeNode): Boolean;
+begin
+ Result := True;
+ if Assigned(FOnExpanding) then FOnExpanding(Self, Node, Result);
+end;
+
+procedure TCustomTreeView.Collapse(Node: TTreeNode);
+begin
+ if Assigned(FOnCollapsed) then FOnCollapsed(Self, Node);
+end;
+
+function TCustomTreeView.CanCollapse(Node: TTreeNode): Boolean;
+begin
+ Result := True;
+ if Assigned(FOnCollapsing) then FOnCollapsing(Self, Node, Result);
+end;
+
+function TCustomTreeView.CanEdit(Node: TTreeNode): Boolean;
+begin
+ Result := True;
+ if Assigned(FOnEditing) then FOnEditing(Self, Node, Result);
+end;
+
+procedure TCustomTreeView.Edit(const Item: TTVItem);
+var
+ S: string;
+ Node: TTreeNode;
+begin
+ with Item do
+ if pszText <> nil then
+ begin
+ S := pszText;
+ Node := GetNodeFromItem(Item);
+ if Assigned(FOnEdited) then FOnEdited(Self, Node, S);
+ if Node <> nil then Node.Text := S;
+ end;
+end;
+
+function TCustomTreeView.CreateNode: TTreeNode;
+begin
+ Result := TTreeNode.Create(Items);
+end;
+
+procedure TCustomTreeView.SetImageList(Value: HImageList; Flags: Integer);
+begin
+ if HandleAllocated then TreeView_SetImageList(Handle, Value, Flags);
+end;
+
+procedure TCustomTreeView.ImageListChange(Sender: TObject);
+var
+ ImageHandle: HImageList;
+begin
+ if HandleAllocated then
+ begin
+ if TCustomImageList(Sender).HandleAllocated then
+ ImageHandle := TCustomImageList(Sender).Handle
+ else
+ ImageHandle := 0;
+ if Sender = Images then
+ SetImageList(ImageHandle, TVSIL_NORMAL)
+ else if Sender = StateImages then
+ SetImageList(ImageHandle, TVSIL_STATE);
+ end;
+end;
+
+procedure TCustomTreeView.Notification(AComponent: TComponent;
+ Operation: TOperation);
+begin
+ inherited Notification(AComponent, Operation);
+ if Operation = opRemove then
+ begin
+ if AComponent = Images then Images := nil;
+ if AComponent = StateImages then StateImages := nil;
+ end;
+end;
+
+procedure TCustomTreeView.LoadFromFile(const FileName: string);
+var
+ Stream: TStream;
+begin
+ Stream := TFileStream.Create(FileName, fmOpenRead);
+ try
+ LoadFromStream(Stream);
+ finally
+ Stream.Free;
+ end;
+end;
+
+procedure TCustomTreeView.LoadFromStream(Stream: TStream);
+begin
+ with TTreeStrings.Create(Items) do
+ try
+ LoadTreeFromStream(Stream);
+ finally
+ Free;
+ end;
+end;
+
+procedure TCustomTreeView.SaveToFile(const FileName: string);
+var
+ Stream: TStream;
+begin
+ Stream := TFileStream.Create(FileName, fmCreate);
+ try
+ SaveToStream(Stream);
+ finally
+ Stream.Free;
+ end;
+end;
+
+procedure TCustomTreeView.SaveToStream(Stream: TStream);
+begin
+ with TTreeStrings.Create(Items) do
+ try
+ SaveTreeToStream(Stream);
+ finally
+ Free;
+ end;
+end;
+
+procedure TCustomTreeView.WMRButtonDown(var Message: TWMRButtonDown);
+var
+ MousePos: TPoint;
+begin
+ FRClickNode := nil;
+ try
+ if not RightClickSelect then
+ begin
+ inherited;
+ if FRClickNode <> nil then
+ begin
+ GetCursorPos(MousePos);
+ with PointToSmallPoint(ScreenToClient(MousePos)) do
+ Perform(WM_RBUTTONUP, 0, MakeLong(X, Y));
+ end;
+ end
+ else DefaultHandler(Message);
+ finally
+ FRClickNode := nil;
+
+ end;
+end;
+
+procedure TCustomTreeView.WMRButtonUp(var Message: TWMRButtonUp);
+
+ procedure DoMouseDown(var Message: TWMMouse; Button: TMouseButton;
+ Shift: TShiftState);
+ begin
+ if not (csNoStdEvents in ControlStyle) then
+ with Message do
+ MouseDown(Button, KeysToShiftState(Keys) + Shift, XPos, YPos);
+ end;
+
+begin
+ if RightClickSelect then DoMouseDown(Message, mbRight, []);
+ inherited;
+end;
+
+procedure TCustomTreeView.WMLButtonDown(var Message: TWMLButtonDown);
+var
+ Node: TTreeNode;
+ MousePos: TPoint;
+begin
+ FDragged := False;
+ FDragNode := nil;
+ try
+ inherited;
+ if (DragMode = dmAutomatic) and (DragKind = dkDrag) then
+ begin
+ SetFocus;
+ if not FDragged then
+ begin
+ GetCursorPos(MousePos);
+ with PointToSmallPoint(ScreenToClient(MousePos)) do
+ Perform(WM_LBUTTONUP, 0, MakeLong(X, Y));
+ end
+ else begin
+ Node := GetNodeAt(Message.XPos, Message.YPos);
+ if Node <> nil then
+ begin
+ Node.Focused := True;
+ Node.Selected := True;
+ BeginDrag(False);
+ end;
+ end;
+ end;
+ finally
+ FDragNode := nil;
+ end;
+end;
+
+procedure TCustomTreeView.WMNotify(var Message: TWMNotify);
+var
+ Node: TTreeNode;
+ MaxTextLen: Integer;
+ Pt: TPoint;
+begin
+ with Message do
+ if NMHdr^.code = TTN_NEEDTEXTW then
+ begin
+ // Work around NT COMCTL32 problem with tool tips >= 80 characters
+ GetCursorPos(Pt);
+ Pt := ScreenToClient(Pt);
+ Node := GetNodeAt(Pt.X, Pt.Y);
+ if (Node = nil) or (Node.Text = '') or
+ (PToolTipTextW(NMHdr)^.uFlags and TTF_IDISHWND = 0) then Exit;
+ if (GetComCtlVersion >= ComCtlVersionIE4) and (Length(Node.Text) < 80) then
+ begin
+ inherited;
+ Exit;
+ end;
+ FWideText := Node.Text;
+ MaxTextLen := SizeOf(PToolTipTextW(NMHdr)^.szText) div SizeOf(WideChar);
+ if Length(FWideText) >= MaxTextLen then
+ SetLength(FWideText, MaxTextLen - 1);
+ PToolTipTextW(NMHdr)^.lpszText := PWideChar(FWideText);
+ FillChar(PToolTipTextW(NMHdr)^.szText, MaxTextLen, 0);
+ Move(Pointer(FWideText)^, PToolTipTextW(NMHdr)^.szText, Length(FWideText) * SizeOf(WideChar));
+ PToolTipTextW(NMHdr)^.hInst := 0;
+ SetWindowPos(NMHdr^.hwndFrom, HWND_TOP, 0, 0, 0, 0, SWP_NOACTIVATE or
+ SWP_NOSIZE or SWP_NOMOVE or SWP_NOOWNERZORDER);
+ Result := 1;
+ end
+ else inherited;
+end;
+
+{ CustomDraw support }
+
+procedure TCustomTreeView.CanvasChanged;
+begin
+ FCanvasChanged := True;
+end;
+
+function TCustomTreeView.IsCustomDrawn(Target: TCustomDrawTarget;
+ Stage: TCustomDrawStage): Boolean;
+begin
+ { Tree view doesn't support erase notifications }
+ if Stage = cdPrePaint then
+ begin
+ if Target = dtItem then
+ Result := Assigned(FOnCustomDrawItem)
+ else if Target = dtControl then
+ Result := Assigned(FOnCustomDraw)
+ else
+ Result := False;
+ end
+ else
+ Result := False;
+end;
+
+function TCustomTreeView.CustomDraw(const ARect: TRect; Stage: TCustomDrawStage): Boolean;
+begin
+ Result := True;
+ if Assigned(FOnCustomDraw) then FOnCustomDraw(Self, ARect, Result);
+end;
+
+function TCustomTreeView.CustomDrawItem(Node: TTreeNode; State: TCustomDrawState;
+ Stage: TCustomDrawStage): Boolean;
+begin
+ Result := True;
+ if Assigned(FOnCustomDrawItem) then FOnCustomDrawItem(Self, Node, State, Result);
+end;
+
+*/
diff --git a/apps/X11/VCL/TCustomTreeView.h b/apps/X11/VCL/TCustomTreeView.h
new file mode 100644
index 0000000..0b3c91d
--- /dev/null
+++ b/apps/X11/VCL/TCustomTreeView.h
@@ -0,0 +1,238 @@
+#ifndef TCUSTOMTREEVIEW_H
+#define TCUSTOMTREEVIEW_H
+
+#include <TWinControl.h>
+#include <TTreeNode.h>
+#include <TCustomImageList.h>
+#include <gtk/gtktree.h>
+#include <gtk/gtktreeitem.h>
+
+ enum THitTest {htAbove, htBelow, htNowhere, htOnItem, htOnButton, htOnIcon,
+ htOnIndent, htOnLabel, htOnRight, htOnStateIcon, htToLeft, htToRight};
+// THitTests = set of THitTest;
+ enum TSortType {stNone, stData, stText, stBoth};
+
+/*
+ ETreeViewError = class(Exception);
+ TTVChangingEvent = procedure(Sender: TObject; Node: TTreeNode;
+ var AllowChange: Boolean) of object;
+ TTVChangedEvent = procedure(Sender: TObject; Node: TTreeNode) of object;
+ TTVEditingEvent = procedure(Sender: TObject; Node: TTreeNode;
+ var AllowEdit: Boolean) of object;
+ TTVEditedEvent = procedure(Sender: TObject; Node: TTreeNode; var S: string) of object;
+ TTVExpandingEvent = procedure(Sender: TObject; Node: TTreeNode;
+ var AllowExpansion: Boolean) of object;
+ TTVCollapsingEvent = procedure(Sender: TObject; Node: TTreeNode;
+ var AllowCollapse: Boolean) of object;
+ TTVExpandedEvent = procedure(Sender: TObject; Node: TTreeNode) of object;
+ TTVCompareEvent = procedure(Sender: TObject; Node1, Node2: TTreeNode;
+ Data: Integer; var Compare: Integer) of object;
+ TTVCustomDrawEvent = procedure(Sender: TCustomTreeView; const ARect: TRect;
+ var DefaultDraw: Boolean) of object;
+ TTVCustomDrawItemEvent = procedure(Sender: TCustomTreeView; Node: TTreeNode;
+ State: TCustomDrawState; var DefaultDraw: Boolean) of object;
+*/
+
+class TTreeNodes;
+
+class TCustomTreeView : public TWinControl {
+friend TTreeNodes;
+friend TTreeNode;
+protected:
+ void init(TComponent *AOwner);
+
+// procedure SetTreeNodes(Value: TTreeNodes);
+ void SetTreeNodes(TTreeNodes* Value);
+// FImages: TCustomImageList;
+ TCustomImageList *FImages;
+// FStateImages: TCustomImageList;
+ TCustomImageList *FStateImages;
+// procedure SetImages(Value: TCustomImageList);
+ void SetImages(TCustomImageList *val);
+ TCustomImageList * getImages() { return FImages; }
+// procedure SetStateImages(Value: TCustomImageList);
+ void SetStateImages(TCustomImageList *val);
+ TCustomImageList * getStateImages() { return FStateImages; }
+/*
+ FAutoExpand: Boolean;
+ FBorderStyle: TBorderStyle;
+ FCanvas: TCanvas;
+ FCanvasChanged: Boolean;
+ FDefEditProc: Pointer;
+ FDragged: Boolean;
+ FDragImage: TDragImageList;
+ FDragNode: TTreeNode;
+ FEditHandle: HWND;
+ FEditInstance: Pointer;
+ FHideSelection: Boolean;
+ FHotTrack: Boolean;
+ FImageChangeLink: TChangeLink;
+ FLastDropTarget: TTreeNode;
+ FManualNotify: Boolean;
+ FMemStream: TMemoryStream;
+ FRClickNode: TTreeNode;
+ FRightClickSelect: Boolean;
+ FReadOnly: Boolean;
+ FRowSelect: Boolean;
+ FSaveIndex: Integer;
+ FSaveIndent: Integer;
+ FSaveItems: TStringList;
+ FSaveTopIndex: Integer;
+ FShowButtons: Boolean;
+ FShowLines: Boolean;
+ FShowRoot: Boolean;
+ FSortType: TSortType;
+ FStateChanging: Boolean;
+ FStateChangeLink: TChangeLink;
+ FToolTips: Boolean;
+ FWideText: WideString;
+ FOnEditing: TTVEditingEvent;
+ FOnEdited: TTVEditedEvent;
+ FOnExpanded: TTVExpandedEvent;
+ FOnExpanding: TTVExpandingEvent;
+ FOnCollapsed: TTVExpandedEvent;
+ FOnCollapsing: TTVCollapsingEvent;
+ FOnChanging: TTVChangingEvent;
+ FOnChange: TTVChangedEvent;
+ FOnCompare: TTVCompareEvent;
+ FOnDeletion: TTVExpandedEvent;
+ FOnCustomDraw: TTVCustomDrawEvent;
+ FOnCustomDrawItem: TTVCustomDrawItemEvent;
+ FOnGetImageIndex: TTVExpandedEvent;
+ FOnGetSelectedIndex: TTVExpandedEvent;
+ procedure CanvasChanged(Sender: TObject);
+ procedure CMColorChanged(var Message: TMessage); message CM_COLORCHANGED;
+ procedure CMCtl3DChanged(var Message: TMessage); message CM_CTL3DCHANGED;
+ procedure CMFontChanged(var Message: TMessage); message CM_FONTCHANGED;
+ procedure CMDrag(var Message: TCMDrag); message CM_DRAG;
+ procedure CNNotify(var Message: TWMNotify); message CN_NOTIFY;
+ procedure EditWndProc(var Message: TMessage);
+ procedure DoDragOver(Source: TDragObject; X, Y: Integer; CanDrop: Boolean);
+ function GetChangeDelay: Integer;
+ function GetDropTarget: TTreeNode;
+ function GetIndent: Integer;
+ function GetNodeFromItem(const Item: TTVItem): TTreeNode;
+ function GetTopItem: TTreeNode;
+ procedure ImageListChange(Sender: TObject);
+ procedure SetAutoExpand(Value: Boolean);
+ procedure SetBorderStyle(Value: TBorderStyle);
+ procedure SetButtonStyle(Value: Boolean);
+ procedure SetChangeDelay(Value: Integer);
+ procedure SetDropTarget(Value: TTreeNode);
+ procedure SetHideSelection(Value: Boolean);
+ procedure SetHotTrack(Value: Boolean);
+ procedure SetImageList(Value: HImageList; Flags: Integer);
+ procedure SetIndent(Value: Integer);
+ procedure SetLineStyle(Value: Boolean);
+ procedure SetReadOnly(Value: Boolean);
+ procedure SetRootStyle(Value: Boolean);
+ procedure SetRowSelect(Value: Boolean);
+ procedure SetSortType(Value: TSortType);
+ procedure SetToolTips(Value: Boolean);
+ procedure SetTopItem(Value: TTreeNode);
+ procedure OnChangeTimer(Sender: TObject);
+ procedure WMLButtonDown(var Message: TWMLButtonDown); message WM_LBUTTONDOWN;
+ procedure WMRButtonDown(var Message: TWMRButtonDown); message WM_RBUTTONDOWN;
+ procedure WMRButtonUp(var Message: TWMRButtonUp); message WM_RBUTTONUP;
+ procedure WMNotify(var Message: TWMNotify); message WM_NOTIFY;
+ procedure CMSysColorChange(var Message: TMessage); message CM_SYSCOLORCHANGE;
+*/
+ protected:
+// property Items: TTreeNodes read FTreeNodes write SetTreeNodes;
+ TTreeNodes *FTreeNodes;
+ property <TCustomTreeView, TTreeNodes*> Items;
+ TTreeNodes *getItems() { return FTreeNodes; }
+
+// property Images: TCustomImageList read FImages write SetImages;
+ property <TCustomTreeView, TCustomImageList *> Images;
+// property StateImages: TCustomImageList read FStateImages write SetStateImages;
+ property <TCustomTreeView, TCustomImageList *> StateImages;
+
+// property Selected: TTreeNode read GetSelection write SetSelection;
+// function GetSelection: TTreeNode;
+// procedure SetSelection(Value: TTreeNode);
+ TTreeNode *GetSelection();
+ void SetSelection(TTreeNode *);
+
+/*
+ FChangeTimer: TTimer;
+ function CanEdit(Node: TTreeNode): Boolean; dynamic;
+ function CanChange(Node: TTreeNode): Boolean; dynamic;
+ function CanCollapse(Node: TTreeNode): Boolean; dynamic;
+ function CanExpand(Node: TTreeNode): Boolean; dynamic;
+ procedure Change(Node: TTreeNode); dynamic;
+ procedure Collapse(Node: TTreeNode); dynamic;
+ function CreateNode: TTreeNode; virtual;
+ procedure CreateParams(var Params: TCreateParams); override;
+ procedure CreateWnd; override;
+ function CustomDraw(const ARect: TRect; Stage: TCustomDrawStage): Boolean; virtual;
+ function CustomDrawItem(Node: TTreeNode; State: TCustomDrawState;
+ Stage: TCustomDrawStage): Boolean; virtual;
+ procedure Delete(Node: TTreeNode); dynamic;
+ procedure DestroyWnd; override;
+ procedure DoEndDrag(Target: TObject; X, Y: Integer); override;
+ procedure DoStartDrag(var DragObject: TDragObject); override;
+ procedure Edit(const Item: TTVItem); dynamic;
+ procedure Expand(Node: TTreeNode); dynamic;
+ function GetDragImages: TDragImageList; override;
+ procedure GetImageIndex(Node: TTreeNode); virtual;
+ procedure GetSelectedIndex(Node: TTreeNode); virtual;
+ function IsCustomDrawn(Target: TCustomDrawTarget; Stage: TCustomDrawStage): Boolean;
+ procedure Loaded; override;
+ procedure Notification(AComponent: TComponent;
+ Operation: TOperation); override;
+ procedure SetDragMode(Value: TDragMode); override;
+ procedure WndProc(var Message: TMessage); override;
+ property AutoExpand: Boolean read FAutoExpand write SetAutoExpand default False;
+ property BorderStyle: TBorderStyle read FBorderStyle write SetBorderStyle default bsSingle;
+ property ChangeDelay: Integer read GetChangeDelay write SetChangeDelay default 0;
+ property HideSelection: Boolean read FHideSelection write SetHideSelection default True;
+ property HotTrack: Boolean read FHotTrack write SetHotTrack default False;
+ property Indent: Integer read GetIndent write SetIndent;
+ property ReadOnly: Boolean read FReadOnly write SetReadOnly default False;
+ property RightClickSelect: Boolean read FRightClickSelect write FRightClickSelect default False;
+ property RowSelect: Boolean read FRowSelect write SetRowSelect default False;
+ property ShowButtons: Boolean read FShowButtons write SetButtonStyle default True;
+ property ShowLines: Boolean read FShowLines write SetLineStyle default True;
+ property ShowRoot: Boolean read FShowRoot write SetRootStyle default True;
+ property SortType: TSortType read FSortType write SetSortType default stNone;
+ property ToolTips: Boolean read FToolTips write SetToolTips default True;
+ property OnCustomDraw: TTVCustomDrawEvent read FOnCustomDraw write FOnCustomDraw;
+ property OnCustomDrawItem: TTVCustomDrawItemEvent read FOnCustomDrawItem write FOnCustomDrawItem;
+ property OnEditing: TTVEditingEvent read FOnEditing write FOnEditing;
+ property OnEdited: TTVEditedEvent read FOnEdited write FOnEdited;
+ property OnExpanding: TTVExpandingEvent read FOnExpanding write FOnExpanding;
+ property OnExpanded: TTVExpandedEvent read FOnExpanded write FOnExpanded;
+ property OnCollapsing: TTVCollapsingEvent read FOnCollapsing write FOnCollapsing;
+ property OnCollapsed: TTVExpandedEvent read FOnCollapsed write FOnCollapsed;
+ property OnChanging: TTVChangingEvent read FOnChanging write FOnChanging;
+ property OnChange: TTVChangedEvent read FOnChange write FOnChange;
+ property OnCompare: TTVCompareEvent read FOnCompare write FOnCompare;
+ property OnDeletion: TTVExpandedEvent read FOnDeletion write FOnDeletion;
+ property OnGetImageIndex: TTVExpandedEvent read FOnGetImageIndex write FOnGetImageIndex;
+ property OnGetSelectedIndex: TTVExpandedEvent read FOnGetSelectedIndex write FOnGetSelectedIndex;
+*/
+public:
+ TCustomTreeView(TComponent *AOwner);
+ TCustomTreeView(GtkWidget *parent);
+ property <TCustomTreeView, TTreeNode *> Selected;
+ virtual ~TCustomTreeView();
+/*
+ function AlphaSort: Boolean;
+ function CustomSort(SortProc: TTVCompare; Data: Longint): Boolean;
+ procedure FullCollapse;
+ procedure FullExpand;
+ function GetHitTestInfoAt(X, Y: Integer): THitTests;
+ function GetNodeAt(X, Y: Integer): TTreeNode;
+ function IsEditing: Boolean;
+ procedure LoadFromFile(const FileName: string);
+ procedure LoadFromStream(Stream: TStream);
+ procedure SaveToFile(const FileName: string);
+ procedure SaveToStream(Stream: TStream);
+ property Canvas: TCanvas read FCanvas;
+ property DropTarget: TTreeNode read GetDropTarget write SetDropTarget;
+ property TopItem: TTreeNode read GetTopItem write SetTopItem;
+*/
+};
+
+#endif
diff --git a/apps/X11/VCL/TDragImageList.cpp b/apps/X11/VCL/TDragImageList.cpp
new file mode 100644
index 0000000..4f51c7c
--- /dev/null
+++ b/apps/X11/VCL/TDragImageList.cpp
@@ -0,0 +1,144 @@
+#include <TDragImageList.h>
+
+TDragImageList::TDragImageList() :TCustomImageList(0) {
+
+}
+
+/*
+{ TDragImageList }
+
+function ClientToWindow(Handle: HWND; X, Y: Integer): TPoint;
+var
+ Rect: TRect;
+ Point: TPoint;
+begin
+ Point.X := X;
+ Point.Y := Y;
+ ClientToScreen(Handle, Point);
+ GetWindowRect(Handle, Rect);
+ Result.X := Point.X - Rect.Left;
+ Result.Y := Point.Y - Rect.Top;
+end;
+
+procedure TDragImageList.Initialize;
+begin
+ inherited Initialize;
+ DragCursor := crNone;
+end;
+
+procedure TDragImageList.CombineDragCursor;
+var
+ TempList: HImageList;
+ Point: TPoint;
+begin
+ if DragCursor <> crNone then
+ begin
+ TempList := ImageList_Create(GetSystemMetrics(SM_CXCURSOR),
+ GetSystemMetrics(SM_CYCURSOR), ILC_MASK, 1, 1);
+ try
+ ImageList_AddIcon(TempList, Screen.Cursors[DragCursor]);
+ ImageList_AddIcon(TempList, Screen.Cursors[DragCursor]);
+ ImageList_SetDragCursorImage(TempList, 0, 0, 0);
+ ImageList_GetDragImage(nil, @Point);
+ ImageList_SetDragCursorImage(TempList, 1, Point.X, Point.Y);
+ finally
+ ImageList_Destroy(TempList);
+ end;
+ end;
+end;
+
+function TDragImageList.SetDragImage(Index, HotSpotX, HotSpotY: Integer): Boolean;
+begin
+ if HandleAllocated then
+ begin
+ FDragIndex := Index;
+ FDragHotspot.x := HotSpotX;
+ FDragHotspot.y := HotSpotY;
+ ImageList_BeginDrag(Handle, Index, HotSpotX, HotSpotY);
+ Result := True;
+ FDragging := Result;
+ end
+ else Result := False;
+end;
+
+procedure TDragImageList.SetDragCursor(Value: TCursor);
+begin
+ if Value <> DragCursor then
+ begin
+ FDragCursor := Value;
+ if Dragging then CombineDragCursor;
+ end;
+end;
+
+function TDragImageList.GetHotSpot: TPoint;
+begin
+ Result := inherited GetHotSpot;
+ if HandleAllocated and Dragging then
+ ImageList_GetDragImage(nil, @Result);
+end;
+
+function TDragImageList.BeginDrag(Window: HWND; X, Y: Integer): Boolean;
+begin
+ Result := False;
+ if HandleAllocated then
+ begin
+ if not Dragging then SetDragImage(FDragIndex, FDragHotspot.x, FDragHotspot.y);
+ CombineDragCursor;
+ Result := DragLock(Window, X, Y);
+ if Result then ShowCursor(False);
+ end;
+end;
+
+function TDragImageList.DragLock(Window: HWND; XPos, YPos: Integer): Boolean;
+begin
+ Result := False;
+ if HandleAllocated and (Window <> FDragHandle) then
+ begin
+ DragUnlock;
+ FDragHandle := Window;
+ with ClientToWindow(FDragHandle, XPos, YPos) do
+ Result := ImageList_DragEnter(FDragHandle, X, Y);
+ end;
+end;
+
+procedure TDragImageList.DragUnlock;
+begin
+ if HandleAllocated and (FDragHandle <> 0) then
+ begin
+ ImageList_DragLeave(FDragHandle);
+ FDragHandle := 0;
+ end;
+end;
+
+function TDragImageList.DragMove(X, Y: Integer): Boolean;
+begin
+ if HandleAllocated then
+ with ClientToWindow(FDragHandle, X, Y) do
+ Result := ImageList_DragMove(X, Y)
+ else
+ Result := False;
+end;
+
+procedure TDragImageList.ShowDragImage;
+begin
+ if HandleAllocated then ImageList_DragShowNoLock(True);
+end;
+
+procedure TDragImageList.HideDragImage;
+begin
+ if HandleAllocated then ImageList_DragShowNoLock(False);
+end;
+
+function TDragImageList.EndDrag: Boolean;
+begin
+ if HandleAllocated and Dragging then
+ begin
+ DragUnlock;
+ Result := ImageList_EndDrag;
+ FDragging := False;
+ DragCursor := crNone;
+ ShowCursor(True);
+ end
+ else Result := False;
+end;
+*/
diff --git a/apps/X11/VCL/TDragImageList.h b/apps/X11/VCL/TDragImageList.h
new file mode 100644
index 0000000..4cb9dab
--- /dev/null
+++ b/apps/X11/VCL/TDragImageList.h
@@ -0,0 +1,40 @@
+#ifndef TDRAGIMAGELIST
+#define TDRAGIMAGELIST
+
+#include <TCustomImageList.h>
+
+class TDragImageList : public TCustomImageList {
+
+ TDragImageList();
+
+/*
+{ TDragImageList }
+
+ TDragImageList = class(TCustomImageList)
+ private
+ FDragCursor: TCursor;
+ FDragging: Boolean;
+ FDragHandle: HWND;
+ FDragHotspot: TPoint;
+ FDragIndex: Integer;
+ procedure CombineDragCursor;
+ procedure SetDragCursor(Value: TCursor);
+ protected
+ procedure Initialize; override;
+ public
+ function BeginDrag(Window: HWND; X, Y: Integer): Boolean;
+ function DragLock(Window: HWND; XPos, YPos: Integer): Boolean;
+ function DragMove(X, Y: Integer): Boolean;
+ procedure DragUnlock;
+ function EndDrag: Boolean;
+ function GetHotSpot: TPoint; override;
+ procedure HideDragImage;
+ function SetDragImage(Index, HotSpotX, HotSpotY: Integer): Boolean;
+ procedure ShowDragImage;
+ property DragCursor: TCursor read FDragCursor write SetDragCursor;
+ property Dragging: Boolean read FDragging;
+ end;
+*/
+};
+
+#endif
diff --git a/apps/X11/VCL/TImageList.cpp b/apps/X11/VCL/TImageList.cpp
new file mode 100644
index 0000000..e9f1259
--- /dev/null
+++ b/apps/X11/VCL/TImageList.cpp
@@ -0,0 +1,2 @@
+#include <TImageList.h>
+
diff --git a/apps/X11/VCL/TImageList.h b/apps/X11/VCL/TImageList.h
new file mode 100644
index 0000000..ebabbe1
--- /dev/null
+++ b/apps/X11/VCL/TImageList.h
@@ -0,0 +1,28 @@
+#ifndef TIMAGELIST_H
+#define TIMAGELIST_H
+
+#include <TDragImageList.h>
+
+class TImageList : public TDragImageList {
+public:
+
+/*
+{ TImageList }
+
+ TImageList = class(TDragImageList)
+ published
+ property BlendColor;
+ property BkColor;
+ property AllocBy;
+ property DrawingStyle;
+ property Height;
+ property ImageType;
+ property Masked;
+ property OnChange;
+ property ShareImages;
+ property Width;
+ end;
+*/
+};
+
+#endif
diff --git a/apps/X11/VCL/TObject.cpp b/apps/X11/VCL/TObject.cpp
new file mode 100644
index 0000000..e1ea4c5
--- /dev/null
+++ b/apps/X11/VCL/TObject.cpp
@@ -0,0 +1,7 @@
+#include <TObject.h>
+
+TObject::TObject() {
+}
+
+TObject::~TObject() {
+}
diff --git a/apps/X11/VCL/TObject.h b/apps/X11/VCL/TObject.h
new file mode 100644
index 0000000..874f071
--- /dev/null
+++ b/apps/X11/VCL/TObject.h
@@ -0,0 +1,38 @@
+#ifndef TOBJECT_H
+#define TOBJECT_H
+
+#include <property>
+
+class TObject {
+public:
+ TObject();
+ virtual ~TObject();
+/*
+ procedure Free;
+ class function InitInstance(Instance: Pointer): TObject;
+ procedure CleanupInstance;
+ function ClassType: TClass;
+ class function ClassName: ShortString;
+ class function ClassNameIs(const Name: string): Boolean;
+ class function ClassParent: TClass;
+ class function ClassInfo: Pointer;
+ class function InstanceSize: Longint;
+ class function InheritsFrom(AClass: TClass): Boolean;
+ class function MethodAddress(const Name: ShortString): Pointer;
+ class function MethodName(Address: Pointer): ShortString;
+ function FieldAddress(const Name: ShortString): Pointer;
+ function GetInterface(const IID: TGUID; out Obj): Boolean;
+ class function GetInterfaceEntry(const IID: TGUID): PInterfaceEntry;
+ class function GetInterfaceTable: PInterfaceTable;
+ function SafeCallException(ExceptObject: TObject;
+ ExceptAddr: Pointer): HResult; virtual;
+ procedure AfterConstruction; virtual;
+ procedure BeforeDestruction; virtual;
+ procedure Dispatch(var Message); virtual;
+ procedure DefaultHandler(var Message); virtual;
+ class function NewInstance: TObject; virtual;
+ procedure FreeInstance; virtual;
+*/
+};
+
+#endif
diff --git a/apps/X11/VCL/TPageControl.cpp b/apps/X11/VCL/TPageControl.cpp
new file mode 100644
index 0000000..af0112c
--- /dev/null
+++ b/apps/X11/VCL/TPageControl.cpp
@@ -0,0 +1,408 @@
+#include <TPageControl.h>
+
+TPageControl::TPageControl(TComponent *AOwner) : TCustomTabControl(AOwner) {
+}
+
+TPageControl::~TPageControl() {
+}
+
+/*
+{ TPageControl }
+
+constructor TPageControl.Create(AOwner: TComponent);
+begin
+ inherited Create(AOwner);
+ ControlStyle := [csDoubleClicks, csOpaque];
+ FPages := TList.Create;
+end;
+
+destructor TPageControl.Destroy;
+var
+ I: Integer;
+begin
+ for I := 0 to FPages.Count - 1 do TTabSheet(FPages[I]).FPageControl := nil;
+ FPages.Free;
+ inherited Destroy;
+end;
+
+function TPageControl.CanShowTab(TabIndex: Integer): Boolean;
+begin
+ Result := TTabSheet(FPages[TabIndex]).Enabled;
+end;
+
+procedure TPageControl.Change;
+var
+ Form: TCustomForm;
+begin
+ UpdateActivePage;
+ if csDesigning in ComponentState then
+ begin
+ Form := GetParentForm(Self);
+ if (Form <> nil) and (Form.Designer <> nil) then Form.Designer.Modified;
+ end;
+ inherited Change;
+end;
+
+procedure TPageControl.ChangeActivePage(Page: TTabSheet);
+var
+ ParentForm: TCustomForm;
+begin
+ if FActivePage <> Page then
+ begin
+ ParentForm := GetParentForm(Self);
+ if (ParentForm <> nil) and (FActivePage <> nil) and
+ FActivePage.ContainsControl(ParentForm.ActiveControl) then
+ begin
+ ParentForm.ActiveControl := FActivePage;
+ if ParentForm.ActiveControl <> FActivePage then
+ begin
+ TabIndex := FActivePage.TabIndex;
+ Exit;
+ end;
+ end;
+ if Page <> nil then
+ begin
+ Page.BringToFront;
+ Page.Visible := True;
+ if (ParentForm <> nil) and (FActivePage <> nil) and
+ (ParentForm.ActiveControl = FActivePage) then
+ if Page.CanFocus then
+ ParentForm.ActiveControl := Page else
+ ParentForm.ActiveControl := Self;
+ end;
+ if FActivePage <> nil then FActivePage.Visible := False;
+ FActivePage := Page;
+ if (ParentForm <> nil) and (FActivePage <> nil) and
+ (ParentForm.ActiveControl = FActivePage) then
+ FActivePage.SelectFirst;
+ end;
+end;
+
+procedure TPageControl.DeleteTab(Page: TTabSheet; Index: Integer);
+var
+ UpdateIndex: Boolean;
+begin
+ UpdateIndex := Page = ActivePage;
+ Tabs.Delete(Index);
+ if UpdateIndex then
+ begin
+ if Index >= Tabs.Count then
+ Index := Tabs.Count - 1;
+ TabIndex := Index;
+ end;
+ UpdateActivePage;
+end;
+
+procedure TPageControl.DoAddDockClient(Client: TControl; const ARect: TRect);
+begin
+ if FNewDockSheet <> nil then Client.Parent := FNewDockSheet;
+end;
+
+procedure TPageControl.DockOver(Source: TDragDockObject; X, Y: Integer;
+ State: TDragState; var Accept: Boolean);
+var
+ R: TRect;
+begin
+ GetWindowRect(Handle, R);
+ Source.DockRect := R;
+ DoDockOver(Source, X, Y, State, Accept);
+end;
+
+procedure TPageControl.DoRemoveDockClient(Client: TControl);
+begin
+ if (FUndockingPage <> nil) and not (csDestroying in ComponentState) then
+ begin
+ SelectNextPage(True);
+ FUndockingPage.Free;
+ FUndockingPage := nil;
+ end;
+end;
+
+function TPageControl.FindNextPage(CurPage: TTabSheet;
+ GoForward, CheckTabVisible: Boolean): TTabSheet;
+var
+ I, StartIndex: Integer;
+begin
+ if FPages.Count <> 0 then
+ begin
+ StartIndex := FPages.IndexOf(CurPage);
+ if StartIndex = -1 then
+ if GoForward then StartIndex := FPages.Count - 1 else StartIndex := 0;
+ I := StartIndex;
+ repeat
+ if GoForward then
+ begin
+ Inc(I);
+ if I = FPages.Count then I := 0;
+ end else
+ begin
+ if I = 0 then I := FPages.Count;
+ Dec(I);
+ end;
+ Result := FPages[I];
+ if not CheckTabVisible or Result.TabVisible then Exit;
+ until I = StartIndex;
+ end;
+ Result := nil;
+end;
+
+procedure TPageControl.GetChildren(Proc: TGetChildProc; Root: TComponent);
+var
+ I: Integer;
+begin
+ for I := 0 to FPages.Count - 1 do Proc(TComponent(FPages[I]));
+end;
+
+function TPageControl.GetImageIndex(TabIndex: Integer): Integer;
+begin
+ if Assigned(FOnGetImageIndex) then
+ Result := inherited GetImageIndex(TabIndex) else
+ Result := GetPage(TabIndex).ImageIndex;
+end;
+
+function TPageControl.GetPageFromDockClient(Client: TControl): TTabSheet;
+var
+ I: Integer;
+begin
+ Result := nil;
+ for I := 0 to PageCount - 1 do
+ begin
+ if (Client.Parent = Pages[I]) and (Client.HostDockSite = Self) then
+ begin
+ Result := Pages[I];
+ Exit;
+ end;
+ end;
+end;
+
+function TPageControl.GetPage(Index: Integer): TTabSheet;
+begin
+ Result := FPages[Index];
+end;
+
+function TPageControl.GetPageCount: Integer;
+begin
+ Result := FPages.Count;
+end;
+
+procedure TPageControl.GetSiteInfo(Client: TControl; var InfluenceRect: TRect;
+ MousePos: TPoint; var CanDock: Boolean);
+begin
+ CanDock := GetPageFromDockClient(Client) = nil;
+ inherited GetSiteInfo(Client, InfluenceRect, MousePos, CanDock);
+end;
+
+procedure TPageControl.InsertPage(Page: TTabSheet);
+begin
+ FPages.Add(Page);
+ Page.FPageControl := Self;
+ Page.UpdateTabShowing;
+end;
+
+procedure TPageControl.InsertTab(Page: TTabSheet);
+begin
+ Tabs.InsertObject(Page.TabIndex, Page.Caption, Page);
+ UpdateActivePage;
+end;
+
+procedure TPageControl.MoveTab(CurIndex, NewIndex: Integer);
+begin
+ Tabs.Move(CurIndex, NewIndex);
+end;
+
+procedure TPageControl.RemovePage(Page: TTabSheet);
+var
+ NextSheet: TTabSheet;
+begin
+ NextSheet := FindNextPage(Page, True, not (csDesigning in ComponentState));
+ if NextSheet = Page then NextSheet := nil;
+ Page.SetTabShowing(False);
+ Page.FPageControl := nil;
+ FPages.Remove(Page);
+ SetActivePage(NextSheet);
+end;
+
+procedure TPageControl.SelectNextPage(GoForward: Boolean);
+var
+ Page: TTabSheet;
+begin
+ Page := FindNextPage(ActivePage, GoForward, True);
+ if (Page <> nil) and (Page <> ActivePage) and CanChange then
+ begin
+ TabIndex := Page.TabIndex;
+ Change;
+ end;
+end;
+
+procedure TPageControl.SetActivePage(Page: TTabSheet);
+begin
+ if (Page <> nil) and (Page.PageControl <> Self) then Exit;
+ ChangeActivePage(Page);
+ if Page = nil then
+ TabIndex := -1
+ else if Page = FActivePage then
+ TabIndex := Page.TabIndex;
+end;
+
+procedure TPageControl.SetChildOrder(Child: TComponent; Order: Integer);
+begin
+ TTabSheet(Child).PageIndex := Order;
+end;
+
+procedure TPageControl.ShowControl(AControl: TControl);
+begin
+ if (AControl is TTabSheet) and (TTabSheet(AControl).PageControl = Self) then
+ SetActivePage(TTabSheet(AControl));
+ inherited ShowControl(AControl);
+end;
+
+procedure TPageControl.UpdateTab(Page: TTabSheet);
+begin
+ Tabs[Page.TabIndex] := Page.Caption;
+end;
+
+procedure TPageControl.UpdateActivePage;
+begin
+ if TabIndex >= 0 then
+ SetActivePage(TTabSheet(Tabs.Objects[TabIndex]))
+ else
+ SetActivePage(nil);
+end;
+
+procedure TPageControl.CMDesignHitTest(var Message: TCMDesignHitTest);
+var
+ HitIndex: Integer;
+ HitTestInfo: TTCHitTestInfo;
+begin
+ HitTestInfo.pt := SmallPointToPoint(Message.Pos);
+ HitIndex := SendMessage(Handle, TCM_HITTEST, 0, Longint(@HitTestInfo));
+ if (HitIndex >= 0) and (HitIndex <> TabIndex) then Message.Result := 1;
+end;
+
+procedure TPageControl.CMDialogKey(var Message: TCMDialogKey);
+begin
+ if (Focused or Windows.IsChild(Handle, Windows.GetFocus)) and
+ (Message.CharCode = VK_TAB) and (GetKeyState(VK_CONTROL) < 0) then
+ begin
+ SelectNextPage(GetKeyState(VK_SHIFT) >= 0);
+ Message.Result := 1;
+ end else
+ inherited;
+end;
+
+procedure TPageControl.CMDockClient(var Message: TCMDockClient);
+var
+ IsVisible: Boolean;
+ DockCtl: TControl;
+begin
+ Message.Result := 0;
+ FNewDockSheet := TTabSheet.Create(Self);
+ try
+ try
+ DockCtl := Message.DockSource.Control;
+ if DockCtl is TCustomForm then
+ FNewDockSheet.Caption := TCustomForm(DockCtl).Caption;
+ FNewDockSheet.PageControl := Self;
+ DockCtl.Dock(Self, Message.DockSource.DockRect);
+ except
+ FNewDockSheet.Free;
+ raise;
+ end;
+ IsVisible := DockCtl.Visible;
+ FNewDockSheet.TabVisible := IsVisible;
+ if IsVisible then ActivePage := FNewDockSheet;
+ DockCtl.Align := alClient;
+ finally
+ FNewDockSheet := nil;
+ end;
+end;
+
+procedure TPageControl.CMDockNotification(var Message: TCMDockNotification);
+var
+ I: Integer;
+ S: string;
+ Page: TTabSheet;
+begin
+ Page := GetPageFromDockClient(Message.Client);
+ if Page <> nil then
+ case Message.NotifyRec.ClientMsg of
+ WM_SETTEXT:
+ begin
+ S := PChar(Message.NotifyRec.MsgLParam);
+ { Search for first CR/LF and end string there }
+ for I := 1 to Length(S) do
+ if S[I] in [#13, #10] then
+ begin
+ SetLength(S, I - 1);
+ Break;
+ end;
+ Page.Caption := S;
+ end;
+ CM_VISIBLECHANGED:
+ with Page do
+ begin
+ Visible := Boolean(Message.NotifyRec.MsgWParam);
+ TabVisible := Boolean(Message.NotifyRec.MsgWParam);;
+ end;
+ end;
+ inherited;
+end;
+
+procedure TPageControl.CMUnDockClient(var Message: TCMUnDockClient);
+var
+ Page: TTabSheet;
+begin
+ Message.Result := 0;
+ Page := GetPageFromDockClient(Message.Client);
+ if Page <> nil then
+ begin
+ FUndockingPage := Page;
+ Message.Client.Align := alNone;
+ end;
+end;
+
+function TPageControl.GetDockClientFromMousePos(MousePos: TPoint): TControl;
+var
+ HitIndex: Integer;
+ HitTestInfo: TTCHitTestInfo;
+ Page: TTabSheet;
+begin
+ Result := nil;
+ if DockSite then
+ begin
+ HitTestInfo.pt := MousePos;
+ HitIndex := SendMessage(Handle, TCM_HITTEST, 0, Longint(@HitTestInfo));
+ if HitIndex >= 0 then
+ begin
+ Page := Pages[HitIndex];
+ if not Page.TabVisible then Page := FindNextPage(Page, True, True);
+ if (Page <> nil) and (Page.ControlCount > 0) then
+ begin
+ Result := Page.Controls[0];
+ if Result.HostDockSite <> Self then Result := nil;
+ end;
+ end;
+ end;
+end;
+
+procedure TPageControl.WMLButtonDown(var Message: TWMLButtonDown);
+var
+ DockCtl: TControl;
+begin
+ inherited;
+ DockCtl := GetDockClientFromMousePos(SmallPointToPoint(Message.Pos));
+ if DockCtl <> nil then DockCtl.BeginDrag(False);
+end;
+
+procedure TPageControl.WMLButtonDblClk(var Message: TWMLButtonDblClk);
+var
+ DockCtl: TControl;
+begin
+ inherited;
+ DockCtl := GetDockClientFromMousePos(SmallPointToPoint(Message.Pos));
+ if DockCtl <> nil then DockCtl.ManualDock(nil, nil, alNone);
+end;
+
+*/
+
+
diff --git a/apps/X11/VCL/TPageControl.h b/apps/X11/VCL/TPageControl.h
new file mode 100644
index 0000000..447efec
--- /dev/null
+++ b/apps/X11/VCL/TPageControl.h
@@ -0,0 +1,113 @@
+
+#ifndef TPAGECONTROL_H
+#define TPAGECONTROL_H
+
+#include <TCustomTabControl.h>
+
+class TPageControl : public TCustomTabControl {
+private:
+/*
+ FPages: TList;
+ FActivePage: TTabSheet;
+ FNewDockSheet: TTabSheet;
+ FUndockingPage: TTabSheet;
+ procedure ChangeActivePage(Page: TTabSheet);
+ procedure DeleteTab(Page: TTabSheet; Index: Integer);
+ function GetDockClientFromMousePos(MousePos: TPoint): TControl;
+ function GetPage(Index: Integer): TTabSheet;
+ function GetPageCount: Integer;
+ procedure InsertPage(Page: TTabSheet);
+ procedure InsertTab(Page: TTabSheet);
+ procedure MoveTab(CurIndex, NewIndex: Integer);
+ procedure RemovePage(Page: TTabSheet);
+ procedure SetActivePage(Page: TTabSheet);
+ procedure UpdateTab(Page: TTabSheet);
+ procedure UpdateActivePage;
+ procedure CMDesignHitTest(var Message: TCMDesignHitTest); message CM_DESIGNHITTEST;
+ procedure CMDialogKey(var Message: TCMDialogKey); message CM_DIALOGKEY;
+ procedure CMDockClient(var Message: TCMDockClient); message CM_DOCKCLIENT;
+ procedure CMDockNotification(var Message: TCMDockNotification); message CM_DOCKNOTIFICATION;
+ procedure CMUnDockClient(var Message: TCMUnDockClient); message CM_UNDOCKCLIENT;
+ procedure WMLButtonDown(var Message: TWMLButtonDown); message WM_LBUTTONDOWN;
+ procedure WMLButtonDblClk(var Message: TWMLButtonDblClk); message WM_LBUTTONDBLCLK;
+*/
+protected:
+/*
+ function CanShowTab(TabIndex: Integer): Boolean; override;
+ procedure Change; override;
+ procedure DoAddDockClient(Client: TControl; const ARect: TRect); override;
+ procedure DockOver(Source: TDragDockObject; X, Y: Integer;
+ State: TDragState; var Accept: Boolean); override;
+ procedure DoRemoveDockClient(Client: TControl); override;
+ procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
+ function GetImageIndex(TabIndex: Integer): Integer; override;
+ function GetPageFromDockClient(Client: TControl): TTabSheet;
+ procedure GetSiteInfo(Client: TControl; var InfluenceRect: TRect;
+ MousePos: TPoint; var CanDock: Boolean); override;
+ procedure SetChildOrder(Child: TComponent; Order: Integer); override;
+ procedure ShowControl(AControl: TControl); override;
+*/
+public:
+ TPageControl(TComponent *AOwner);
+ virtual ~TPageControl();
+/*
+ function FindNextPage(CurPage: TTabSheet;
+ GoForward, CheckTabVisible: Boolean): TTabSheet;
+ procedure SelectNextPage(GoForward: Boolean);
+ property PageCount: Integer read GetPageCount;
+ property Pages[Index: Integer]: TTabSheet read GetPage;
+ published
+ property ActivePage: TTabSheet read FActivePage write SetActivePage;
+ property Align;
+ property Anchors;
+ property BiDiMode;
+ property Constraints;
+ property DockSite;
+ property DragCursor;
+ property DragKind;
+ property DragMode;
+ property Enabled;
+ property Font;
+ property HotTrack;
+ property Images;
+ property MultiLine;
+ property OwnerDraw;
+ property ParentBiDiMode;
+ property ParentFont;
+ property ParentShowHint;
+ property PopupMenu;
+ property RaggedRight;
+ property ScrollOpposite;
+ property ShowHint;
+ property Style;
+ property TabHeight;
+ property TabOrder;
+ property TabPosition;
+ property TabStop;
+ property TabWidth;
+ property Visible;
+ property OnChange;
+ property OnChanging;
+ property OnDockDrop;
+ property OnDockOver;
+ property OnDragDrop;
+ property OnDragOver;
+ property OnDrawTab;
+ property OnEndDock;
+ property OnEndDrag;
+ property OnEnter;
+ property OnExit;
+ property OnGetImageIndex;
+ property OnGetSiteInfo;
+ property OnMouseDown;
+ property OnMouseMove;
+ property OnMouseUp;
+ property OnResize;
+ property OnStartDock;
+ property OnStartDrag;
+ property OnUnDock;
+ end;
+*/
+};
+
+#endif
diff --git a/apps/X11/VCL/TPersistent.cpp b/apps/X11/VCL/TPersistent.cpp
new file mode 100644
index 0000000..8303b01
--- /dev/null
+++ b/apps/X11/VCL/TPersistent.cpp
@@ -0,0 +1,2 @@
+#include <TPersistent.h>
+
diff --git a/apps/X11/VCL/TPersistent.h b/apps/X11/VCL/TPersistent.h
new file mode 100644
index 0000000..7453921
--- /dev/null
+++ b/apps/X11/VCL/TPersistent.h
@@ -0,0 +1,19 @@
+#ifndef TPERSISTENT_H
+#define TPERSISTENT_H
+
+#include <TObject.h>
+
+class TPersistent : public TObject {
+private:
+// void AssignError(TPersistent Source);
+protected:
+// virtual void AssignTo(TPersistent Dest);
+// virtual void DefineProperties(TFiler Filer);
+// TPersistent GetOwner(); // dynamic;
+public:
+// virtual ~TPersistent(); //override;
+// virtual void Assign(Source: TPersistent);
+// string GetNamePath(); //dynamic;
+};
+
+#endif
diff --git a/apps/X11/VCL/TTreeNode.cpp b/apps/X11/VCL/TTreeNode.cpp
new file mode 100644
index 0000000..e50778b
--- /dev/null
+++ b/apps/X11/VCL/TTreeNode.cpp
@@ -0,0 +1,1003 @@
+#include <TTreeNode.h>
+#include <TTreeNodes.h>
+#include <gtk/gtklabel.h>
+#include <gtk/gtkhbox.h>
+#include <stdio.h>
+
+
+TTreeNode::TTreeNode(TTreeNodes *AOwner) :
+ Text(this, &TTreeNode::getText, &TTreeNode::SetText),
+ StateIndex(this, &TTreeNode::getStateIndex, &TTreeNode::SetStateIndex),
+ ImageIndex(this, &TTreeNode::getImageIndex, &TTreeNode::SetImageIndex),
+ Data(this, &TTreeNode::getData, &TTreeNode::SetData),
+ Parent(this, &TTreeNode::GetParent, 0) {
+ FOwner = AOwner;
+ FStateIndex = 0;
+ FImageIndex = 0;
+}
+
+
+TTreeNode::TTreeNode(const TTreeNode &other) :
+ Text(this, &TTreeNode::getText, &TTreeNode::SetText),
+ StateIndex(this, &TTreeNode::getStateIndex, &TTreeNode::SetStateIndex),
+ ImageIndex(this, &TTreeNode::getImageIndex, &TTreeNode::SetImageIndex),
+ Data(this, &TTreeNode::getData, &TTreeNode::SetData),
+ Parent(this, &TTreeNode::GetParent, 0) {
+ FOwner = other.FOwner;
+ subTreeOwner = other.subTreeOwner;
+ nativeControl = other.nativeControl;
+ FData = other.FData;
+ Text = other.Text;
+ FStateIndex = other.FStateIndex;
+ FImageIndex = other.FImageIndex;
+}
+
+TTreeNode::TTreeNode(TTreeNodes *AOwner, GtkTree *AsubTreeOwner, GtkTreeItem *AnativeControl, string AText, void *Ptr) :
+ Text(this, &TTreeNode::getText, &TTreeNode::SetText),
+ StateIndex(this, &TTreeNode::getStateIndex, &TTreeNode::SetStateIndex),
+ ImageIndex(this, &TTreeNode::getImageIndex, &TTreeNode::SetImageIndex),
+ Data(this, &TTreeNode::getData, &TTreeNode::SetData),
+ Parent(this, &TTreeNode::GetParent, 0) {
+ FOwner = AOwner;
+ subTreeOwner = AsubTreeOwner;
+ nativeControl = AnativeControl;
+ FData = Ptr;
+ Text = AText;
+ FStateIndex = 0;
+ FImageIndex = 0;
+}
+
+
+TTreeNode::~TTreeNode() {
+}
+
+
+/*
+function TTreeNode.GetLastChild: TTreeNode;
+var
+ Node: TTreeNode;
+begin
+ Result := GetFirstChild;
+ if Result <> nil then
+ begin
+ Node := Result;
+ repeat
+ Result := Node;
+ Node := Result.GetNextSibling;
+ until Node = nil;
+ end;
+end;
+*/
+
+/*
+function TTreeNode.GetFirstChild: TTreeNode;
+begin
+ with FOwner do
+ Result := GetNode(TreeView_GetChild(Handle, ItemId));
+end;
+*/
+TTreeNode *TTreeNode::getFirstChild() {
+ GtkWidget *subtree = nativeControl->subtree;
+ if (subtree) {
+ GList *child = g_list_first(GTK_TREE(subtree)->children);
+ return (child) ? FOwner->GetNode(GTK_TREE_ITEM(child->data)) : 0;
+ }
+ return 0;
+}
+
+
+/*
+function TTreeNode.GetNextSibling: TTreeNode;
+begin
+ with FOwner do
+ Result := GetNode(TreeView_GetNextSibling(Handle, ItemId));
+end;
+*/
+TTreeNode *TTreeNode::getNextSibling() {
+ GList *node = g_list_find(GTK_TREE(subTreeOwner)->children, nativeControl);
+ if (node) {
+ node = g_list_next(node);
+ return (node) ? FOwner->GetNode(GTK_TREE_ITEM(node->data)) : 0;
+ }
+ return 0;
+}
+
+
+/*
+procedure TTreeNode.SetText(const S: string);
+var
+ Item: TTVItem;
+begin
+ FText := S;
+ with Item do
+ begin
+ mask := TVIF_TEXT;
+ hItem := ItemId;
+ pszText := LPSTR_TEXTCALLBACK;
+ end;
+ TreeView_SetItem(Handle, Item);
+ if (TreeView.SortType in [stText, stBoth]) and FInTree then
+ begin
+ if (Parent <> nil) then Parent.AlphaSort
+ else TreeView.AlphaSort;
+ end;
+end;
+*/
+
+
+void TTreeNode::SetText(string S) {
+ FText = S;
+ GtkLabel *label;
+ GtkObject *hbox;
+
+ //It's a Bin, so it has one child, which we know to be a
+ // hbox, so get that
+ hbox = GTK_OBJECT(GTK_BIN(nativeControl)->child);
+ label = GTK_LABEL(gtk_object_get_data(hbox, "label1"));
+ gtk_label_set(label, FText.c_str());
+}
+
+
+/*
+function TTreeNode.GetParent: TTreeNode;
+begin
+ with FOwner do
+ Result := GetNode(TreeView_GetParent(Handle, ItemId));
+end;
+*/
+
+TTreeNode *TTreeNode::GetParent() {
+ return FOwner->GetParentNode(this);
+}
+
+
+/*
+procedure TTreeNode.SetStateIndex(Value: Integer);
+var
+ Item: TTVItem;
+begin
+ FStateIndex := Value;
+ if Value >= 0 then Dec(Value);
+ with Item do
+ begin
+ mask := TVIF_STATE or TVIF_HANDLE;
+ stateMask := TVIS_STATEIMAGEMASK;
+ hItem := ItemId;
+ state := IndexToStateImageMask(Value + 1);
+ end;
+ TreeView_SetItem(Handle, Item);
+end;
+*/
+
+void TTreeNode::SetStateIndex(int val) {
+ GtkPixmap *itempixmap = 0, *stateImage;
+ GdkPixmap *pixmap;
+ GdkBitmap *mask;
+ FStateIndex = val;
+ TCustomImageList *images;
+ GtkObject *hbox;
+ // display appropriate image
+
+ hbox = GTK_OBJECT(GTK_BIN(nativeControl)->child);
+ itempixmap = GTK_PIXMAP(gtk_object_get_data(hbox, "pixmap1"));
+
+ gtk_widget_hide(GTK_WIDGET(itempixmap));
+
+ images = FOwner->FOwner->StateImages;
+
+ if (images) {
+ stateImage = images->GetPixmap(val);
+ if (stateImage) {
+ gtk_pixmap_get(stateImage, &pixmap, &mask);
+ gtk_pixmap_set(itempixmap, pixmap, mask);
+ gtk_widget_show(GTK_WIDGET(itempixmap));
+ }
+
+ }
+}
+
+
+/*
+procedure TTreeNode.SetImageIndex(Value: Integer);
+var
+ Item: TTVItem;
+begin
+ FImageIndex := Value;
+ with Item do
+ begin
+ mask := TVIF_IMAGE or TVIF_HANDLE;
+ hItem := ItemId;
+ iImage := I_IMAGECALLBACK;
+ end;
+ TreeView_SetItem(Handle, Item);
+end;
+*/
+
+void TTreeNode::SetImageIndex(int val) {
+ GtkPixmap *itempixmap, *Image;
+ GdkPixmap *pixmap;
+ GdkBitmap *mask;
+ FImageIndex = val;
+ TCustomImageList *images;
+ GtkObject *hbox;
+ // display appropriate image
+
+ hbox = GTK_OBJECT(GTK_BIN(nativeControl)->child);
+ itempixmap = GTK_PIXMAP(gtk_object_get_data(hbox, "pixmap2"));
+
+ gtk_widget_hide(GTK_WIDGET(itempixmap));
+
+ images = FOwner->FOwner->Images;
+
+ if (images) {
+ Image = images->GetPixmap(val);
+ if (Image) {
+ gtk_pixmap_get(Image, &pixmap, &mask);
+ gtk_pixmap_set(itempixmap, pixmap, mask);
+ gtk_widget_show(GTK_WIDGET(itempixmap));
+ }
+ }
+}
+
+
+/*
+procedure TTreeNode.SetData(Value: Pointer);
+begin
+ FData := Value;
+ if (TreeView.SortType in [stData, stBoth]) and Assigned(TreeView.OnCompare)
+ and (not Deleting) and FInTree then
+ begin
+ if Parent <> nil then Parent.AlphaSort
+ else TreeView.AlphaSort;
+ end;
+end;
+*/
+
+void TTreeNode::SetData(void *Value) {
+ FData = Value;
+}
+
+
+/*
+function TTreeNode.GetNext: TTreeNode;
+var
+ NodeID, ParentID: HTreeItem;
+ Handle: HWND;
+begin
+ Handle := FOwner.Handle;
+ NodeID := TreeView_GetChild(Handle, ItemId);
+ if NodeID = nil then NodeID := TreeView_GetNextSibling(Handle, ItemId);
+ ParentID := ItemId;
+ while (NodeID = nil) and (ParentID <> nil) do
+ begin
+ ParentID := TreeView_GetParent(Handle, ParentID);
+ NodeID := TreeView_GetNextSibling(Handle, ParentID);
+ end;
+ Result := FOwner.GetNode(NodeID);
+end;
+*/
+
+TTreeNode *TTreeNode::GetNext() {
+ TTreeNode *parent = this;
+ TTreeNode *next = getFirstChild();
+ if (!next) {
+ next = getNextSibling();
+ while ((!next) && (parent)) {
+ parent = parent->GetParent();
+ if (parent)
+ next = parent->getNextSibling();
+ }
+ }
+
+ return next;
+}
+
+
+/*
+procedure TTreeNode.ExpandItem(Expand: Boolean; Recurse: Boolean);
+var
+ Flag: Integer;
+ Node: TTreeNode;
+begin
+ if Recurse then
+ begin
+ Node := Self;
+ repeat
+ Node.ExpandItem(Expand, False);
+ Node := Node.GetNext;
+ until (Node = nil) or (not Node.HasAsParent(Self));
+ end
+ else begin
+ TreeView.FManualNotify := True;
+ try
+ Flag := 0;
+ if Expand then
+ begin
+ if DoCanExpand(True) then
+ begin
+ Flag := TVE_EXPAND;
+ DoExpand(True);
+ end;
+ end
+ else begin
+ if DoCanExpand(False) then
+ begin
+ Flag := TVE_COLLAPSE;
+ DoExpand(False);
+ end;
+ end;
+ if Flag <> 0 then TreeView_Expand(Handle, ItemId, Flag);
+ finally
+ TreeView.FManualNotify := False;
+ end;
+ end;
+end;
+*/
+
+void TTreeNode::ExpandItem(bool Expand, bool Recurse) {
+ TTreeNode *Node;
+
+ if (Recurse) {
+ Node = this;
+ do {
+ Node->ExpandItem(Expand, false);
+ Node = Node->GetNext();
+ }
+ while ((Node) /*and (Node.HasAsParent(Self)*/);
+ }
+ else {
+ gtk_tree_item_expand(nativeControl);
+
+/*
+ TreeView.FManualNotify := True;
+ try
+ Flag := 0;
+ if Expand then
+ begin
+ if DoCanExpand(True) then
+ begin
+ Flag := TVE_EXPAND;
+ DoExpand(True);
+ end;
+ end
+ else begin
+ if DoCanExpand(False) then
+ begin
+ Flag := TVE_COLLAPSE;
+ DoExpand(False);
+ end;
+ end;
+ if Flag <> 0 then TreeView_Expand(Handle, ItemId, Flag);
+ finally
+ TreeView.FManualNotify := False;
+ end;
+*/
+ }
+}
+
+/*
+procedure TTreeNode.Expand(Recurse: Boolean);
+begin
+ ExpandItem(True, Recurse);
+end;
+*/
+
+void TTreeNode::Expand(bool Recurse) {
+ ExpandItem(true, Recurse);
+}
+
+/*
+
+function DefaultTreeViewSort(Node1, Node2: TTreeNode; lParam: Integer): Integer; stdcall;
+begin
+ with Node1 do
+ if Assigned(TreeView.OnCompare) then
+ TreeView.OnCompare(TreeView, Node1, Node2, lParam, Result)
+ else Result := lstrcmp(PChar(Node1.Text), PChar(Node2.Text));
+end;
+
+procedure TreeViewError(const Msg: string);
+begin
+ raise ETreeViewError.Create(Msg);
+end;
+
+procedure TreeViewErrorFmt(const Msg: string; Format: array of const);
+begin
+ raise ETreeViewError.CreateFmt(Msg, Format);
+end;
+
+constructor TTreeNode.Create(AOwner: TTreeNodes);
+begin
+ inherited Create;
+ FOverlayIndex := -1;
+ FStateIndex := -1;
+ FOwner := AOwner;
+end;
+
+destructor TTreeNode.Destroy;
+var
+ Node: TTreeNode;
+ CheckValue: Integer;
+begin
+ Owner.ClearCache;
+ FDeleting := True;
+ if Owner.Owner.FLastDropTarget = Self then
+ Owner.Owner.FLastDropTarget := nil;
+ Node := Parent;
+ if (Node <> nil) and (not Node.Deleting) then
+ begin
+ if Node.IndexOf(Self) <> -1 then CheckValue := 1
+ else CheckValue := 0;
+ if Node.CompareCount(CheckValue) then
+ begin
+ Expanded := False;
+ Node.HasChildren := False;
+ end;
+ end;
+ if ItemId <> nil then TreeView_DeleteItem(Handle, ItemId);
+ Data := nil;
+ inherited Destroy;
+end;
+
+function TTreeNode.GetHandle: HWND;
+begin
+ Result := TreeView.Handle;
+end;
+
+function TTreeNode.GetTreeView: TCustomTreeView;
+begin
+ Result := Owner.Owner;
+end;
+
+function TTreeNode.HasAsParent(Value: TTreeNode): Boolean;
+begin
+ if Value <> Nil then
+ begin
+ if Parent = nil then Result := False
+ else if Parent = Value then Result := True
+ else Result := Parent.HasAsParent(Value);
+ end
+ else Result := True;
+end;
+
+function TTreeNode.GetState(NodeState: TNodeState): Boolean;
+var
+ Item: TTVItem;
+begin
+ Result := False;
+ with Item do
+ begin
+ mask := TVIF_STATE;
+ hItem := ItemId;
+ if TreeView_GetItem(Handle, Item) then
+ case NodeState of
+ nsCut: Result := (state and TVIS_CUT) <> 0;
+ nsFocused: Result := (state and TVIS_FOCUSED) <> 0;
+ nsSelected: Result := (state and TVIS_SELECTED) <> 0;
+ nsExpanded: Result := (state and TVIS_EXPANDED) <> 0;
+ nsDropHilited: Result := (state and TVIS_DROPHILITED) <> 0;
+ end;
+ end;
+end;
+
+procedure TTreeNode.SetSelectedIndex(Value: Integer);
+var
+ Item: TTVItem;
+begin
+ FSelectedIndex := Value;
+ with Item do
+ begin
+ mask := TVIF_SELECTEDIMAGE or TVIF_HANDLE;
+ hItem := ItemId;
+ iSelectedImage := I_IMAGECALLBACK;
+ end;
+ TreeView_SetItem(Handle, Item);
+end;
+
+procedure TTreeNode.SetOverlayIndex(Value: Integer);
+var
+ Item: TTVItem;
+begin
+ FOverlayIndex := Value;
+ with Item do
+ begin
+ mask := TVIF_STATE or TVIF_HANDLE;
+ stateMask := TVIS_OVERLAYMASK;
+ hItem := ItemId;
+ state := IndexToOverlayMask(OverlayIndex + 1);
+ end;
+ TreeView_SetItem(Handle, Item);
+end;
+
+function TTreeNode.CompareCount(CompareMe: Integer): Boolean;
+var
+ Count: integer;
+ Node: TTreeNode;
+Begin
+ Count := 0;
+ Result := False;
+ Node := GetFirstChild;
+ while Node <> nil do
+ begin
+ Inc(Count);
+ Node := Node.GetNextChild(Node);
+ if Count > CompareMe then Exit;
+ end;
+ if Count = CompareMe then Result := True;
+end;
+
+function TTreeNode.DoCanExpand(Expand: Boolean): Boolean;
+begin
+ Result := False;
+ if HasChildren then
+ begin
+ if Expand then Result := TreeView.CanExpand(Self)
+ else Result := TreeView.CanCollapse(Self);
+ end;
+end;
+
+procedure TTreeNode.DoExpand(Expand: Boolean);
+begin
+ if HasChildren then
+ begin
+ if Expand then TreeView.Expand(Self)
+ else TreeView.Collapse(Self);
+ end;
+end;
+
+procedure TTreeNode.Collapse(Recurse: Boolean);
+begin
+ ExpandItem(False, Recurse);
+end;
+
+function TTreeNode.GetExpanded: Boolean;
+begin
+ Result := GetState(nsExpanded);
+end;
+
+procedure TTreeNode.SetExpanded(Value: Boolean);
+begin
+ if Value then Expand(False)
+ else Collapse(False);
+end;
+
+function TTreeNode.GetSelected: Boolean;
+begin
+ Result := GetState(nsSelected);
+end;
+
+procedure TTreeNode.SetSelected(Value: Boolean);
+begin
+ if Value then TreeView_SelectItem(Handle, ItemId)
+ else if Selected then TreeView_SelectItem(Handle, nil);
+end;
+
+function TTreeNode.GetCut: Boolean;
+begin
+ Result := GetState(nsCut);
+end;
+
+procedure TTreeNode.SetCut(Value: Boolean);
+var
+ Item: TTVItem;
+ Template: DWORD;
+begin
+ if Value then Template := DWORD(-1)
+ else Template := 0;
+ with Item do
+ begin
+ mask := TVIF_STATE;
+ hItem := ItemId;
+ stateMask := TVIS_CUT;
+ state := stateMask and Template;
+ end;
+ TreeView_SetItem(Handle, Item);
+end;
+
+function TTreeNode.GetDropTarget: Boolean;
+begin
+ Result := GetState(nsDropHilited);
+end;
+
+procedure TTreeNode.SetDropTarget(Value: Boolean);
+begin
+ if Value then TreeView_SelectDropTarget(Handle, ItemId)
+ else if DropTarget then TreeView_SelectDropTarget(Handle, nil);
+end;
+
+function TTreeNode.GetChildren: Boolean;
+var
+ Item: TTVItem;
+begin
+ Item.mask := TVIF_CHILDREN;
+ Item.hItem := ItemId;
+ if TreeView_GetItem(Handle, Item) then Result := Item.cChildren > 0
+ else Result := False;
+end;
+
+procedure TTreeNode.SetFocused(Value: Boolean);
+var
+ Item: TTVItem;
+ Template: DWORD;
+begin
+ if Value then Template := DWORD(-1)
+ else Template := 0;
+ with Item do
+ begin
+ mask := TVIF_STATE;
+ hItem := ItemId;
+ stateMask := TVIS_FOCUSED;
+ state := stateMask and Template;
+ end;
+ TreeView_SetItem(Handle, Item);
+end;
+
+function TTreeNode.GetFocused: Boolean;
+begin
+ Result := GetState(nsFocused);
+end;
+
+procedure TTreeNode.SetChildren(Value: Boolean);
+var
+ Item: TTVItem;
+begin
+ with Item do
+ begin
+ mask := TVIF_CHILDREN;
+ hItem := ItemId;
+ cChildren := Ord(Value);
+ end;
+ TreeView_SetItem(Handle, Item);
+end;
+
+function TTreeNode.GetPrevSibling: TTreeNode;
+begin
+ with FOwner do
+ Result := GetNode(TreeView_GetPrevSibling(Handle, ItemId));
+end;
+
+function TTreeNode.GetNextVisible: TTreeNode;
+begin
+ if IsVisible then
+ with FOwner do
+ Result := GetNode(TreeView_GetNextVisible(Handle, ItemId))
+ else Result := nil;
+end;
+
+function TTreeNode.GetPrevVisible: TTreeNode;
+begin
+ with FOwner do
+ Result := GetNode(TreeView_GetPrevVisible(Handle, ItemId));
+end;
+
+function TTreeNode.GetNextChild(Value: TTreeNode): TTreeNode;
+begin
+ if Value <> nil then Result := Value.GetNextSibling
+ else Result := nil;
+end;
+
+function TTreeNode.GetPrevChild(Value: TTreeNode): TTreeNode;
+begin
+ if Value <> nil then Result := Value.GetPrevSibling
+ else Result := nil;
+end;
+
+
+function TTreeNode.GetPrev: TTreeNode;
+var
+ Node: TTreeNode;
+begin
+ Result := GetPrevSibling;
+ if Result <> nil then
+ begin
+ Node := Result;
+ repeat
+ Result := Node;
+ Node := Result.GetLastChild;
+ until Node = nil;
+ end else
+ Result := Parent;
+end;
+
+function TTreeNode.GetAbsoluteIndex: Integer;
+var
+ Node: TTreeNode;
+begin
+ if Owner.FNodeCache.CacheNode = Self then
+ Result := Owner.FNodeCache.CacheIndex
+ else begin
+ Result := -1;
+ Node := Self;
+ while Node <> nil do
+ begin
+ Inc(Result);
+ Node := Node.GetPrev;
+ end;
+ end;
+end;
+
+function TTreeNode.GetIndex: Integer;
+var
+ Node: TTreeNode;
+begin
+ Result := -1;
+ Node := Self;
+ while Node <> nil do
+ begin
+ Inc(Result);
+ Node := Node.GetPrevSibling;
+ end;
+end;
+
+function TTreeNode.GetItem(Index: Integer): TTreeNode;
+begin
+ Result := GetFirstChild;
+ while (Result <> nil) and (Index > 0) do
+ begin
+ Result := GetNextChild(Result);
+ Dec(Index);
+ end;
+ if Result = nil then TreeViewError(SListIndexError);
+end;
+
+procedure TTreeNode.SetItem(Index: Integer; Value: TTreeNode);
+begin
+ item[Index].Assign(Value);
+end;
+
+function TTreeNode.IndexOf(Value: TTreeNode): Integer;
+var
+ Node: TTreeNode;
+begin
+ Result := -1;
+ Node := GetFirstChild;
+ while (Node <> nil) do
+ begin
+ Inc(Result);
+ if Node = Value then Break;
+ Node := GetNextChild(Node);
+ end;
+ if Node = nil then Result := -1;
+end;
+
+function TTreeNode.GetCount: Integer;
+var
+ Node: TTreeNode;
+begin
+ Result := 0;
+ Node := GetFirstChild;
+ while Node <> nil do
+ begin
+ Inc(Result);
+ Node := Node.GetNextChild(Node);
+ end;
+end;
+
+procedure TTreeNode.EndEdit(Cancel: Boolean);
+begin
+ TreeView_EndEditLabelNow(Handle, Cancel);
+end;
+
+procedure TTreeNode.InternalMove(ParentNode, Node: TTreeNode;
+ HItem: HTreeItem; AddMode: TAddMode);
+var
+ I: Integer;
+ NodeId: HTreeItem;
+ TreeViewItem: TTVItem;
+ Children: Boolean;
+ IsSelected: Boolean;
+begin
+ Owner.ClearCache;
+ if (AddMode = taInsert) and (Node <> nil) then
+ NodeId := Node.ItemId else
+ NodeId := nil;
+ Children := HasChildren;
+ IsSelected := Selected;
+ if (Parent <> nil) and (Parent.CompareCount(1)) then
+ begin
+ Parent.Expanded := False;
+ Parent.HasChildren := False;
+ end;
+ with TreeViewItem do
+ begin
+ mask := TVIF_PARAM;
+ hItem := ItemId;
+ lParam := 0;
+ end;
+ TreeView_SetItem(Handle, TreeViewItem);
+ with Owner do
+ HItem := AddItem(HItem, NodeId, CreateItem(Self), AddMode);
+ if HItem = nil then
+ raise EOutOfResources.Create(sInsertError);
+ for I := Count - 1 downto 0 do
+ Item[I].InternalMove(Self, nil, HItem, taAddFirst);
+ TreeView_DeleteItem(Handle, ItemId);
+ FItemId := HItem;
+ Assign(Self);
+ HasChildren := Children;
+ Selected := IsSelected;
+end;
+
+procedure TTreeNode.MoveTo(Destination: TTreeNode; Mode: TNodeAttachMode);
+var
+ AddMode: TAddMode;
+ Node: TTreeNode;
+ HItem: HTreeItem;
+ OldOnChanging: TTVChangingEvent;
+ OldOnChange: TTVChangedEvent;
+begin
+ OldOnChanging := TreeView.OnChanging;
+ OldOnChange := TreeView.OnChange;
+ TreeView.OnChanging := nil;
+ TreeView.OnChange := nil;
+ try
+ if (Destination = nil) or not Destination.HasAsParent(Self) then
+ begin
+ AddMode := taAdd;
+ if (Destination <> nil) and not (Mode in [naAddChild, naAddChildFirst]) then
+ Node := Destination.Parent else
+ Node := Destination;
+ case Mode of
+ naAdd,
+ naAddChild: AddMode := taAdd;
+ naAddFirst,
+ naAddChildFirst: AddMode := taAddFirst;
+ naInsert:
+ begin
+ Destination := Destination.GetPrevSibling;
+ if Destination = nil then AddMode := taAddFirst
+ else AddMode := taInsert;
+ end;
+ end;
+ if Node <> nil then
+ HItem := Node.ItemId else
+ HItem := nil;
+ if (Destination <> Self) then
+ InternalMove(Node, Destination, HItem, AddMode);
+ Node := Parent;
+ if Node <> nil then
+ begin
+ Node.HasChildren := True;
+ Node.Expanded := True;
+ end;
+ end;
+ finally
+ TreeView.OnChanging := OldOnChanging;
+ TreeView.OnChange := OldOnChange;
+ end;
+end;
+
+procedure TTreeNode.MakeVisible;
+begin
+ TreeView_EnsureVisible(Handle, ItemId);
+end;
+
+function TTreeNode.GetLevel: Integer;
+var
+ Node: TTreeNode;
+begin
+ Result := 0;
+ Node := Parent;
+ while Node <> nil do
+ begin
+ Inc(Result);
+ Node := Node.Parent;
+ end;
+end;
+
+function TTreeNode.IsNodeVisible: Boolean;
+var
+ Rect: TRect;
+begin
+ Result := TreeView_GetItemRect(Handle, ItemId, Rect, True);
+end;
+
+function TTreeNode.EditText: Boolean;
+begin
+ Result := TreeView_EditLabel(Handle, ItemId) <> 0;
+end;
+
+function TTreeNode.DisplayRect(TextOnly: Boolean): TRect;
+begin
+ FillChar(Result, SizeOf(Result), 0);
+ TreeView_GetItemRect(Handle, ItemId, Result, TextOnly);
+end;
+
+function TTreeNode.AlphaSort: Boolean;
+begin
+ Result := CustomSort(nil, 0);
+end;
+
+function TTreeNode.CustomSort(SortProc: TTVCompare; Data: Longint): Boolean;
+var
+ SortCB: TTVSortCB;
+begin
+ Owner.ClearCache;
+ with SortCB do
+ begin
+ if not Assigned(SortProc) then lpfnCompare := @DefaultTreeViewSort
+ else lpfnCompare := SortProc;
+ hParent := ItemId;
+ lParam := Data;
+ end;
+ Result := TreeView_SortChildrenCB(Handle, SortCB, 0);
+end;
+
+procedure TTreeNode.Delete;
+begin
+ if not Deleting then Free;
+end;
+
+procedure TTreeNode.DeleteChildren;
+begin
+ Owner.ClearCache;
+ TreeView_Expand(TreeView.Handle, ItemID, TVE_COLLAPSE or TVE_COLLAPSERESET);
+ HasChildren := False;
+end;
+
+procedure TTreeNode.Assign(Source: TPersistent);
+var
+ Node: TTreeNode;
+begin
+ Owner.ClearCache;
+ if Source is TTreeNode then
+ begin
+ Node := TTreeNode(Source);
+ Text := Node.Text;
+ Data := Node.Data;
+ ImageIndex := Node.ImageIndex;
+ SelectedIndex := Node.SelectedIndex;
+ StateIndex := Node.StateIndex;
+ OverlayIndex := Node.OverlayIndex;
+ Focused := Node.Focused;
+ DropTarget := Node.DropTarget;
+ Cut := Node.Cut;
+ HasChildren := Node.HasChildren;
+ end
+ else inherited Assign(Source);
+end;
+
+function TTreeNode.IsEqual(Node: TTreeNode): Boolean;
+begin
+ Result := (Text = Node.Text) and (Data = Node.Data);
+end;
+
+procedure TTreeNode.ReadData(Stream: TStream; Info: PNodeInfo);
+var
+ I, Size, ItemCount: Integer;
+begin
+ Owner.ClearCache;
+ Stream.ReadBuffer(Size, SizeOf(Size));
+ Stream.ReadBuffer(Info^, Size);
+ Text := Info^.Text;
+ ImageIndex := Info^.ImageIndex;
+ SelectedIndex := Info^.SelectedIndex;
+ StateIndex := Info^.StateIndex;
+ OverlayIndex := Info^.OverlayIndex;
+ Data := Info^.Data;
+ ItemCount := Info^.Count;
+ for I := 0 to ItemCount - 1 do
+ Owner.AddChild(Self, '').ReadData(Stream, Info);
+end;
+
+procedure TTreeNode.WriteData(Stream: TStream; Info: PNodeInfo);
+var
+ I, Size, L, ItemCount: Integer;
+begin
+ L := Length(Text);
+ if L > 255 then L := 255;
+ Size := SizeOf(TNodeInfo) + L - 255;
+ Info^.Text := Text;
+ Info^.ImageIndex := ImageIndex;
+ Info^.SelectedIndex := SelectedIndex;
+ Info^.OverlayIndex := OverlayIndex;
+ Info^.StateIndex := StateIndex;
+ Info^.Data := Data;
+ ItemCount := Count;
+ Info^.Count := ItemCount;
+ Stream.WriteBuffer(Size, SizeOf(Size));
+ Stream.WriteBuffer(Info^, Size);
+ for I := 0 to ItemCount - 1 do Item[I].WriteData(Stream, Info);
+end;
+
+*/
diff --git a/apps/X11/VCL/TTreeNode.h b/apps/X11/VCL/TTreeNode.h
new file mode 100644
index 0000000..6d9647e
--- /dev/null
+++ b/apps/X11/VCL/TTreeNode.h
@@ -0,0 +1,163 @@
+#ifndef TTREENODE_H
+#define TTREENODE_H
+
+#include <TPersistent.h>
+#include <gtk/gtktreeitem.h>
+#include <gtk/gtktree.h>
+#include <gtk/gtkpixmap.h>
+#include <string>
+
+ class TTreeNodes;
+
+ enum TNodeState {nsCut, nsDropHilited, nsFocused, nsSelected, nsExpanded};
+ enum TNodeAttachMode {naAdd, naAddFirst, naAddChild, naAddChildFirst, naInsert};
+ enum TAddMode {taAddFirst, taAdd, taInsert};
+
+ typedef struct {
+ int ImageIndex;
+ int SelectedIndex;
+ int StateIndex;
+ int OverlayIndex;
+ void *Data;
+ int Count;
+ char Text[255];
+ } TNodeInfo;
+
+
+class TTreeNode: public TPersistent {
+friend class TTreeNodes;
+private:
+ TTreeNodes *FOwner;
+ GtkTree *subTreeOwner;
+ GtkPixmap *image;
+ GtkPixmap *stateImage;
+ string FText;
+ void *FData;
+// FStateIndex: Integer;
+ int FStateIndex;
+// FImageIndex: Integer;
+ int FImageIndex;
+/*
+ FItemId: HTreeItem;
+ FSelectedIndex: Integer;
+ FOverlayIndex: Integer;
+ FDeleting: Boolean;
+ FInTree: Boolean;
+ function CompareCount(CompareMe: Integer): Boolean;
+ function DoCanExpand(Expand: Boolean): Boolean;
+ procedure DoExpand(Expand: Boolean);
+ function GetAbsoluteIndex: Integer;
+ function GetExpanded: Boolean;
+ function GetLevel: Integer;
+ function GetChildren: Boolean;
+ function GetCut: Boolean;
+ function GetDropTarget: Boolean;
+ function GetFocused: Boolean;
+ function GetIndex: Integer;
+ function GetItem(Index: Integer): TTreeNode;
+ function GetSelected: Boolean;
+ function GetState(NodeState: TNodeState): Boolean;
+ function GetCount: Integer;
+ function GetTreeView: TCustomTreeView;
+ procedure InternalMove(ParentNode, Node: TTreeNode; HItem: HTreeItem;
+ AddMode: TAddMode);
+ function IsEqual(Node: TTreeNode): Boolean;
+ function IsNodeVisible: Boolean;
+ procedure ReadData(Stream: TStream; Info: PNodeInfo);
+ procedure SetChildren(Value: Boolean);
+ procedure SetCut(Value: Boolean);
+ procedure SetDropTarget(Value: Boolean);
+ procedure SetItem(Index: Integer; Value: TTreeNode);
+ procedure SetExpanded(Value: Boolean);
+ procedure SetFocused(Value: Boolean);
+ procedure SetOverlayIndex(Value: Integer);
+ procedure SetSelectedIndex(Value: Integer);
+ procedure SetSelected(Value: Boolean);
+ procedure WriteData(Stream: TStream; Info: PNodeInfo);
+*/
+// procedure ExpandItem(Expand: Boolean; Recurse: Boolean);
+ void ExpandItem(bool Expand, bool Recurse);
+// procedure SetData(Value: Pointer);
+ void SetData(void *);
+ void *getData() { return FData; }
+// procedure SetText(const S: string);
+ void SetText(string S);
+ string getText() { return FText; }
+// function GetParent: TTreeNode;
+ TTreeNode *GetParent();
+// procedure SetStateIndex(Value: Integer);
+ void SetStateIndex(int val);
+ int getStateIndex() { return FStateIndex; }
+// procedure SetImageIndex(Value: Integer);
+ void SetImageIndex(int val);
+ int getImageIndex() { return FImageIndex; }
+ public:
+ GtkTreeItem *nativeControl;
+ TTreeNode(TTreeNodes *AOwner);
+ TTreeNode(const TTreeNode &other); // copy constructor;
+ TTreeNode(TTreeNodes *AOwner, GtkTree *subTreeOwner, GtkTreeItem *nativeControl, string FText, void *Ptr = 0);
+ ~TTreeNode();
+ TTreeNode *getNextSibling();
+// function getFirstChild: TTreeNode;
+ TTreeNode *getFirstChild();
+// function GetNext: TTreeNode;
+ TTreeNode *GetNext();
+// property Text: string read FText write SetText;
+ property <TTreeNode, string> Text;
+// property StateIndex: Integer read FStateIndex write SetStateIndex;
+ property <TTreeNode, int> StateIndex;
+// property ImageIndex: Integer read FImageIndex write SetImageIndex;
+ property <TTreeNode, int> ImageIndex;
+// property Data: Pointer read FData write SetData;
+ property <TTreeNode, void *> Data;
+// property Parent: TTreeNode read GetParent;
+ property <TTreeNode, TTreeNode *> Parent;
+
+// procedure Expand(Recurse: Boolean);
+ void Expand(bool Recurse);
+// procedure MakeVisible;
+ void MakeVisible();
+/*
+ function AlphaSort: Boolean;
+ procedure Assign(Source: TPersistent); override;
+ procedure Collapse(Recurse: Boolean);
+ function CustomSort(SortProc: TTVCompare; Data: Longint): Boolean;
+ procedure Delete;
+ procedure DeleteChildren;
+ function DisplayRect(TextOnly: Boolean): TRect;
+ function EditText: Boolean;
+ procedure EndEdit(Cancel: Boolean);
+ function GetHandle: HWND;
+ function GetLastChild: TTreeNode;
+ function GetNextChild(Value: TTreeNode): TTreeNode;
+ function GetNextVisible: TTreeNode;
+ function GetPrev: TTreeNode;
+ function GetPrevChild(Value: TTreeNode): TTreeNode;
+ function getPrevSibling: TTreeNode;
+ function GetPrevVisible: TTreeNode;
+ function HasAsParent(Value: TTreeNode): Boolean;
+ function IndexOf(Value: TTreeNode): Integer;
+ procedure MoveTo(Destination: TTreeNode; Mode: TNodeAttachMode); virtual;
+ property AbsoluteIndex: Integer read GetAbsoluteIndex;
+ property Count: Integer read GetCount;
+ property Cut: Boolean read GetCut write SetCut;
+ property Deleting: Boolean read FDeleting;
+ property Focused: Boolean read GetFocused write SetFocused;
+ property DropTarget: Boolean read GetDropTarget write SetDropTarget;
+ property Selected: Boolean read GetSelected write SetSelected;
+ property Expanded: Boolean read GetExpanded write SetExpanded;
+ property Handle: HWND read GetHandle;
+ property HasChildren: Boolean read GetChildren write SetChildren;
+ property Index: Integer read GetIndex;
+ property IsVisible: Boolean read IsNodeVisible;
+ property Item[Index: Integer]: TTreeNode read GetItem write SetItem; default;
+ property ItemId: HTreeItem read FItemId;
+ property Level: Integer read GetLevel;
+ property OverlayIndex: Integer read FOverlayIndex write SetOverlayIndex;
+ property Owner: TTreeNodes read FOwner;
+ property SelectedIndex: Integer read FSelectedIndex write SetSelectedIndex;
+ property TreeView: TCustomTreeView read GetTreeView;
+*/
+};
+
+#endif
diff --git a/apps/X11/VCL/TTreeNodes.cpp b/apps/X11/VCL/TTreeNodes.cpp
new file mode 100644
index 0000000..77657e6
--- /dev/null
+++ b/apps/X11/VCL/TTreeNodes.cpp
@@ -0,0 +1,553 @@
+#include <TTreeNodes.h>
+
+#include <gtk/gtkhbox.h>
+#include <gtk/gtklabel.h>
+#include <stdio.h>
+
+TTreeNodes::TTreeNodes(TCustomTreeView *AOwner) {
+ FOwner = AOwner;
+}
+
+
+TTreeNodes::~TTreeNodes() {
+}
+
+
+/*
+procedure TTreeNodes.Clear;
+begin
+ ClearCache;
+ if Owner.HandleAllocated then
+ TreeView_DeleteAllItems(Handle);
+end;
+
+*/
+void TTreeNodes::Clear() {
+ gtk_tree_remove_items(GTK_TREE(FOwner->nativeControl), GTK_TREE(FOwner->nativeControl)->children);
+ nodeCache.erase(nodeCache.begin(), nodeCache.end());
+}
+
+
+/*
+function TTreeNodes.GetFirstNode: TTreeNode;
+begin
+ Result := GetNode(TreeView_GetRoot(Handle));
+end;
+*/
+
+TTreeNode *TTreeNodes::GetFirstNode() {
+ GList *first = g_list_first(GTK_TREE(FOwner->nativeControl)->children);
+ return (first) ? GetNode(GTK_TREE_ITEM(first->data)) : 0;
+}
+
+/*
+function TTreeNodes.GetNode(ItemId: HTreeItem): TTreeNode;
+var
+ Item: TTVItem;
+begin
+ with Item do
+ begin
+ hItem := ItemId;
+ mask := TVIF_PARAM;
+ end;
+ if TreeView_GetItem(Handle, Item) then Result := TTreeNode(Item.lParam)
+ else Result := nil;
+end;
+*/
+
+TTreeNode *TTreeNodes::GetNode(GtkTreeItem *subElement) {
+ TTreeNodeMap::iterator node;
+ node = nodeCache.find(subElement);
+ if (node != nodeCache.end())
+ return &(node->second);
+ else return 0;
+}
+
+
+GtkTreeItem *TTreeNodes::GetParentNode(GtkTreeItem *root, GtkTreeItem *subElement) {
+ GtkWidget *subtree = root->subtree;
+ if (subtree) {
+ for (GList *nodes = GTK_TREE(subtree)->children; nodes; nodes = g_list_next(nodes)) {
+ if (nodes->data == subElement)
+ return root;
+ GtkTreeItem *ret = GetParentNode(GTK_TREE_ITEM(nodes->data), subElement);
+ if (ret)
+ return ret;
+ }
+ }
+ return 0;
+}
+
+
+TTreeNode *TTreeNodes::GetParentNode(TTreeNode *target) {
+ for (GList *nodes = g_list_first(GTK_TREE(FOwner->nativeControl)->children); nodes; nodes = g_list_next(nodes)) {
+ if (nodes->data == target->nativeControl)
+ return 0; // top level; no parent
+ GtkTreeItem *ret = GetParentNode(GTK_TREE_ITEM(nodes->data), target->nativeControl);
+ if (ret)
+ return GetNode(ret);
+ }
+ return 0;
+}
+
+
+/*
+function TTreeNodes.AddChildFirst(Node: TTreeNode; const S: string): TTreeNode;
+begin
+ Result := AddChildObjectFirst(Node, S, nil);
+end;
+*/
+
+GtkTree *TTreeNodes::getSubTree(TTreeNode *node) {
+ GtkWidget *subtree;
+
+ if (!node)
+ subtree = FOwner->nativeControl;
+ else {
+ subtree = node->nativeControl->subtree;
+ if (!subtree) {
+ subtree = gtk_tree_new();
+ gtk_tree_set_selection_mode (GTK_TREE(subtree), GTK_SELECTION_SINGLE);
+ gtk_tree_set_view_mode (GTK_TREE(subtree), GTK_TREE_VIEW_ITEM);
+ gtk_tree_item_set_subtree (node->nativeControl, subtree);
+ }
+ }
+ return GTK_TREE(subtree);
+}
+
+
+GtkTreeItem *TTreeNodes::createTreeItem(GtkWidget *parent, const char *label) {
+ GtkWidget *treeitem;
+ GtkWidget *hbox1;
+ GtkWidget *label1;
+ GdkPixmap *pixmap;
+ GdkBitmap *mask;
+ GtkWidget *pixmap1;
+ GtkWidget *pixmap2;
+ GtkStyle *style;
+ GdkWindow *window = 0;
+
+ treeitem = gtk_tree_item_new ();
+
+ hbox1 = gtk_hbox_new (FALSE, 0);
+ gtk_widget_show (hbox1);
+ gtk_container_add (GTK_CONTAINER (treeitem), hbox1);
+
+ while ((!window) && (parent->parent)) {
+ window = gtk_widget_get_parent_window(GTK_WIDGET(parent));
+ parent = parent->parent;
+ }
+ style = gtk_widget_get_style( GTK_WIDGET(parent) );
+ pixmap = gdk_pixmap_create_from_xpm_d( window, &mask,
+ &style->bg[GTK_STATE_NORMAL],
+ (gchar **)default_xpm );
+
+ pixmap1 = gtk_pixmap_new( pixmap, mask );
+ gtk_widget_hide (pixmap1);
+ gtk_box_pack_start (GTK_BOX (hbox1), pixmap1, FALSE, TRUE, 0);
+ gtk_object_set_data (GTK_OBJECT (hbox1), "pixmap1", pixmap1);
+ pixmap2 = gtk_pixmap_new( pixmap, mask );
+ gtk_widget_hide (pixmap2);
+ gtk_box_pack_start (GTK_BOX (hbox1), pixmap2, FALSE, TRUE, 0);
+ gtk_object_set_data (GTK_OBJECT (hbox1), "pixmap2", pixmap2);
+
+ label1 = gtk_label_new (label);
+ gtk_widget_ref (label1);
+ gtk_object_set_data (GTK_OBJECT (hbox1), "label1", label1);
+ gtk_widget_show (label1);
+ gtk_box_pack_start (GTK_BOX (hbox1), label1, FALSE, FALSE, 3);
+
+ return GTK_TREE_ITEM(treeitem);
+}
+
+
+TTreeNode *TTreeNodes::AddChildFirst(TTreeNode *Node, const string S) {
+ GtkTree *subtree;
+ GtkTreeItem *item;
+
+ subtree = getSubTree(Node);
+ item = createTreeItem(GTK_WIDGET(subtree), (const char *)S.c_str());
+ gtk_tree_prepend(subtree, GTK_WIDGET(item));
+ gtk_widget_show(GTK_WIDGET(item));
+ nodeCache.insert(TTreeNodeMap::value_type(item, TTreeNode(this, subtree, item, S)));
+ return GetNode(item);
+}
+TTreeNode *TTreeNodes::AddChild(TTreeNode *Node, const string S) {
+ GtkTree *subtree;
+ GtkTreeItem *item;
+
+ subtree = getSubTree(Node);
+ item = createTreeItem(GTK_WIDGET(subtree), (const char *)S.c_str());
+ gtk_tree_append(subtree, GTK_WIDGET(item));
+ gtk_widget_show(GTK_WIDGET(item));
+ nodeCache.insert(TTreeNodeMap::value_type(item, TTreeNode(this, subtree, item, S)));
+ return GetNode(item);
+}
+TTreeNode *TTreeNodes::AddChildObject(TTreeNode *Node, const string S, void *Ptr) {
+ GtkTree *subtree;
+ GtkTreeItem *item;
+
+
+ subtree = getSubTree(Node);
+ item = createTreeItem(GTK_WIDGET(subtree), (const char *)S.c_str());
+ gtk_tree_append(subtree, GTK_WIDGET(item));
+ gtk_widget_show(GTK_WIDGET(item));
+ nodeCache.insert(TTreeNodeMap::value_type(item, TTreeNode(this, subtree, item, S)));
+ TTreeNode *node = GetNode(item);
+ if (node)
+ node->Data = Ptr;
+
+ return node;
+}
+
+/*
+function TTreeNodes.AddChildObjectFirst(Node: TTreeNode; const S: string;
+ Ptr: Pointer): TTreeNode;
+begin
+ Result := InternalAddObject(Node, S, Ptr, taAddFirst);
+end;
+
+function TTreeNodes.InternalAddObject(Node: TTreeNode; const S: string;
+ Ptr: Pointer; AddMode: TAddMode): TTreeNode;
+var
+ Item: HTreeItem;
+begin
+ Result := Owner.CreateNode;
+ try
+ if Node <> nil then Item := Node.ItemId
+ else Item := nil;
+ Result.Data := Ptr;
+ Result.Text := S;
+ Item := AddItem(Item, nil, CreateItem(Result), AddMode);
+ if Item = nil then
+ raise EOutOfResources.Create(sInsertError);
+ Result.FItemId := Item;
+ AddedNode(Node);
+ except
+ Result.Free;
+ raise;
+ end;
+end;
+
+function TTreeNodes.AddItem(Parent, Target: HTreeItem;
+ const Item: TTVItem; AddMode: TAddMode): HTreeItem;
+var
+ InsertStruct: TTVInsertStruct;
+begin
+ ClearCache;
+ with InsertStruct do
+ begin
+ hParent := Parent;
+ case AddMode of
+ taAddFirst:
+ hInsertAfter := TVI_FIRST;
+ taAdd:
+ hInsertAfter := TVI_LAST;
+ taInsert:
+ hInsertAfter := Target;
+ end;
+ end;
+ InsertStruct.item := Item;
+ FOwner.FChangeTimer.Enabled := False;
+ Result := TreeView_InsertItem(Handle, InsertStruct);
+end;
+*/
+
+
+/*
+{ TTreeNodes }
+
+constructor TTreeNodes.Create(AOwner: TCustomTreeView);
+begin
+ inherited Create;
+ FOwner := AOwner;
+end;
+
+destructor TTreeNodes.Destroy;
+begin
+ Clear;
+ inherited Destroy;
+end;
+
+function TTreeNodes.GetCount: Integer;
+begin
+ if Owner.HandleAllocated then Result := TreeView_GetCount(Handle)
+ else Result := 0;
+end;
+
+function TTreeNodes.GetHandle: HWND;
+begin
+ Result := Owner.Handle;
+end;
+
+procedure TTreeNodes.Delete(Node: TTreeNode);
+begin
+ if (Node.ItemId = nil) then
+ Owner.Delete(Node);
+ Node.Delete;
+end;
+
+function TTreeNodes.AddChild(Node: TTreeNode; const S: string): TTreeNode;
+begin
+ Result := AddChildObject(Node, S, nil);
+end;
+
+function TTreeNodes.AddChildObject(Node: TTreeNode; const S: string;
+ Ptr: Pointer): TTreeNode;
+begin
+ Result := InternalAddObject(Node, S, Ptr, taAdd);
+end;
+
+function TTreeNodes.AddFirst(Node: TTreeNode; const S: string): TTreeNode;
+begin
+ Result := AddObjectFirst(Node, S, nil);
+end;
+
+function TTreeNodes.AddObjectFirst(Node: TTreeNode; const S: string;
+ Ptr: Pointer): TTreeNode;
+begin
+ if Node <> nil then Node := Node.Parent;
+ Result := InternalAddObject(Node, S, Ptr, taAddFirst);
+end;
+
+function TTreeNodes.Add(Node: TTreeNode; const S: string): TTreeNode;
+begin
+ Result := AddObject(Node, S, nil);
+end;
+
+procedure TTreeNodes.Repaint(Node: TTreeNode);
+var
+ R: TRect;
+begin
+ if FUpdateCount < 1 then
+ begin
+ while (Node <> nil) and not Node.IsVisible do Node := Node.Parent;
+ if Node <> nil then
+ begin
+ R := Node.DisplayRect(False);
+ InvalidateRect(Owner.Handle, @R, True);
+ end;
+ end;
+end;
+
+function TTreeNodes.AddObject(Node: TTreeNode; const S: string;
+ Ptr: Pointer): TTreeNode;
+begin
+ if Node <> nil then Node := Node.Parent;
+ Result := InternalAddObject(Node, S, Ptr, taAdd);
+end;
+
+function TTreeNodes.Insert(Node: TTreeNode; const S: string): TTreeNode;
+begin
+ Result := InsertObject(Node, S, nil);
+end;
+
+procedure TTreeNodes.AddedNode(Value: TTreeNode);
+begin
+ if Value <> nil then
+ begin
+ Value.HasChildren := True;
+ Repaint(Value);
+ end;
+end;
+
+function TTreeNodes.InsertObject(Node: TTreeNode; const S: string;
+ Ptr: Pointer): TTreeNode;
+var
+ Item, ItemId: HTreeItem;
+ Parent: TTreeNode;
+ AddMode: TAddMode;
+begin
+ Result := Owner.CreateNode;
+ try
+ Item := nil;
+ ItemId := nil;
+ Parent := nil;
+ AddMode := taInsert;
+ if Node <> nil then
+ begin
+ Parent := Node.Parent;
+ if Parent <> nil then Item := Parent.ItemId;
+ Node := Node.GetPrevSibling;
+ if Node <> nil then ItemId := Node.ItemId
+ else AddMode := taAddFirst;
+ end;
+ Result.Data := Ptr;
+ Result.Text := S;
+ Item := AddItem(Item, ItemId, CreateItem(Result), AddMode);
+ if Item = nil then
+ raise EOutOfResources.Create(sInsertError);
+ Result.FItemId := Item;
+ AddedNode(Parent);
+ except
+ Result.Free;
+ raise;
+ end;
+end;
+
+function TTreeNodes.CreateItem(Node: TTreeNode): TTVItem;
+begin
+ Node.FInTree := True;
+ with Result do
+ begin
+ mask := TVIF_TEXT or TVIF_PARAM or TVIF_IMAGE or TVIF_SELECTEDIMAGE;
+ lParam := Longint(Node);
+ pszText := LPSTR_TEXTCALLBACK;
+ iImage := I_IMAGECALLBACK;
+ iSelectedImage := I_IMAGECALLBACK;
+ end;
+end;
+
+
+function TTreeNodes.GetNodeFromIndex(Index: Integer): TTreeNode;
+var
+ I: Integer;
+begin
+ if Index < 0 then TreeViewError(sInvalidIndex);
+ if (FNodeCache.CacheNode <> nil) and (Abs(FNodeCache.CacheIndex - Index) <= 1) then
+ begin
+ with FNodeCache do
+ begin
+ if Index = CacheIndex then Result := CacheNode
+ else if Index < CacheIndex then Result := CacheNode.GetPrev
+ else Result := CacheNode.GetNext;
+ end;
+ end
+ else begin
+ Result := GetFirstNode;
+ I := Index;
+ while (I <> 0) and (Result <> nil) do
+ begin
+ Result := Result.GetNext;
+ Dec(I);
+ end;
+ end;
+ if Result = nil then TreeViewError(sInvalidIndex);
+ FNodeCache.CacheNode := Result;
+ FNodeCache.CacheIndex := Index;
+end;
+
+function TTreeNodes.GetNode(ItemId: HTreeItem): TTreeNode;
+var
+ Item: TTVItem;
+begin
+ with Item do
+ begin
+ hItem := ItemId;
+ mask := TVIF_PARAM;
+ end;
+ if TreeView_GetItem(Handle, Item) then Result := TTreeNode(Item.lParam)
+ else Result := nil;
+end;
+
+procedure TTreeNodes.SetItem(Index: Integer; Value: TTreeNode);
+begin
+ GetNodeFromIndex(Index).Assign(Value);
+end;
+
+procedure TTreeNodes.BeginUpdate;
+begin
+ if FUpdateCount = 0 then SetUpdateState(True);
+ Inc(FUpdateCount);
+end;
+
+procedure TTreeNodes.SetUpdateState(Updating: Boolean);
+begin
+ SendMessage(Handle, WM_SETREDRAW, Ord(not Updating), 0);
+ if not Updating then Owner.Refresh;
+end;
+
+procedure TTreeNodes.EndUpdate;
+begin
+ Dec(FUpdateCount);
+ if FUpdateCount = 0 then SetUpdateState(False);
+end;
+
+procedure TTreeNodes.Assign(Source: TPersistent);
+var
+ TreeNodes: TTreeNodes;
+ MemStream: TMemoryStream;
+begin
+ ClearCache;
+ if Source is TTreeNodes then
+ begin
+ TreeNodes := TTreeNodes(Source);
+ Clear;
+ MemStream := TMemoryStream.Create;
+ try
+ TreeNodes.WriteData(MemStream);
+ MemStream.Position := 0;
+ ReadData(MemStream);
+ finally
+ MemStream.Free;
+ end;
+ end
+ else inherited Assign(Source);
+end;
+
+procedure TTreeNodes.DefineProperties(Filer: TFiler);
+
+ function WriteNodes: Boolean;
+ var
+ I: Integer;
+ Nodes: TTreeNodes;
+ begin
+ Nodes := TTreeNodes(Filer.Ancestor);
+ if Nodes = nil then
+ Result := Count > 0
+ else if Nodes.Count <> Count then
+ Result := True
+ else
+ begin
+ Result := False;
+ for I := 0 to Count - 1 do
+ begin
+ Result := not Item[I].IsEqual(Nodes[I]);
+ if Result then Break;
+ end
+ end;
+ end;
+
+begin
+ inherited DefineProperties(Filer);
+ Filer.DefineBinaryProperty('Data', ReadData, WriteData, WriteNodes);
+end;
+
+procedure TTreeNodes.ReadData(Stream: TStream);
+var
+ I, Count: Integer;
+ NodeInfo: TNodeInfo;
+begin
+ Clear;
+ Stream.ReadBuffer(Count, SizeOf(Count));
+ for I := 0 to Count - 1 do
+ Add(nil, '').ReadData(Stream, @NodeInfo);
+end;
+
+procedure TTreeNodes.WriteData(Stream: TStream);
+var
+ I: Integer;
+ Node: TTreeNode;
+ NodeInfo: TNodeInfo;
+begin
+ I := 0;
+ Node := GetFirstNode;
+ while Node <> nil do
+ begin
+ Inc(I);
+ Node := Node.GetNextSibling;
+ end;
+ Stream.WriteBuffer(I, SizeOf(I));
+ Node := GetFirstNode;
+ while Node <> nil do
+ begin
+ Node.WriteData(Stream, @NodeInfo);
+ Node := Node.GetNextSibling;
+ end;
+end;
+
+procedure TTreeNodes.ClearCache;
+begin
+ FNodeCache.CacheNode := nil;
+end;
+*/
diff --git a/apps/X11/VCL/TTreeNodes.h b/apps/X11/VCL/TTreeNodes.h
new file mode 100644
index 0000000..ed28bad
--- /dev/null
+++ b/apps/X11/VCL/TTreeNodes.h
@@ -0,0 +1,90 @@
+#ifndef TTREENODES_H
+#define TTREENODES_H
+
+#include <TTreeNode.h>
+#include <TCustomTreeView.h>
+#include <map>
+
+
+static char * default_xpm[] = {
+"1 1 2 1",
+" c None",
+". c #FFFFFF",
+"."};
+
+
+/*
+ TNodeCache = record
+ CacheNode: TTreeNode;
+ CacheIndex: Integer;
+ end;
+*/
+
+typedef map <GtkTreeItem *, TTreeNode> TTreeNodeMap;
+
+class TTreeNodes: public TPersistent {
+friend class TTreeNode;
+private:
+// FOwner: TCustomTreeView;
+ TCustomTreeView *FOwner;
+ TTreeNodeMap nodeCache;
+// function GetNode(ItemId: HTreeItem): TTreeNode;
+/*
+ FUpdateCount: Integer;
+ FNodeCache: TNodeCache;
+ procedure AddedNode(Value: TTreeNode);
+ function GetHandle: HWND;
+ function GetNodeFromIndex(Index: Integer): TTreeNode;
+ procedure ReadData(Stream: TStream);
+ procedure Repaint(Node: TTreeNode);
+ procedure WriteData(Stream: TStream);
+ procedure ClearCache;
+ protected
+ function AddItem(Parent, Target: HTreeItem; const Item: TTVItem;
+ AddMode: TAddMode): HTreeItem;
+ function InternalAddObject(Node: TTreeNode; const S: string;
+ Ptr: Pointer; AddMode: TAddMode): TTreeNode;
+ procedure DefineProperties(Filer: TFiler); override;
+ function CreateItem(Node: TTreeNode): TTVItem;
+ function GetCount: Integer;
+ procedure SetItem(Index: Integer; Value: TTreeNode);
+ procedure SetUpdateState(Updating: Boolean);
+*/
+ GtkTree *getSubTree(TTreeNode *node);
+ GtkTreeItem *createTreeItem(GtkWidget *parent, const char *label);
+public:
+ TTreeNodes(TCustomTreeView *AOwner);
+ virtual ~TTreeNodes();
+// procedure Clear;
+ void Clear();
+ TTreeNode *GetFirstNode();
+ TTreeNode *GetNode(GtkTreeItem *subElement);
+ GtkTreeItem *GetParentNode(GtkTreeItem *root, GtkTreeItem *subElement);
+ TTreeNode *GetParentNode(TTreeNode *target);
+ TTreeNode *AddChildFirst(TTreeNode *Node, const string S);
+ TTreeNode *AddChild(TTreeNode *Node, const string S);
+ TTreeNode *AddChildObject(TTreeNode *Node, const string S, void *Ptr);
+/*
+ function AddChildObjectFirst(Node: TTreeNode; const S: string;
+ Ptr: Pointer): TTreeNode;
+ function AddFirst(Node: TTreeNode; const S: string): TTreeNode;
+ function Add(Node: TTreeNode; const S: string): TTreeNode;
+ function AddObjectFirst(Node: TTreeNode; const S: string;
+ Ptr: Pointer): TTreeNode;
+ function AddObject(Node: TTreeNode; const S: string;
+ Ptr: Pointer): TTreeNode;
+ procedure Assign(Source: TPersistent); override;
+ procedure BeginUpdate;
+ procedure Delete(Node: TTreeNode);
+ procedure EndUpdate;
+ function Insert(Node: TTreeNode; const S: string): TTreeNode;
+ function InsertObject(Node: TTreeNode; const S: string;
+ Ptr: Pointer): TTreeNode;
+ property Count: Integer read GetCount;
+ property Handle: HWND read GetHandle;
+ property Item[Index: Integer]: TTreeNode read GetNodeFromIndex; default;
+ property Owner: TCustomTreeView read FOwner;
+*/
+};
+
+#endif
diff --git a/apps/X11/VCL/TTreeView.cpp b/apps/X11/VCL/TTreeView.cpp
new file mode 100644
index 0000000..3d17529
--- /dev/null
+++ b/apps/X11/VCL/TTreeView.cpp
@@ -0,0 +1 @@
+#include <TTreeView.h>
diff --git a/apps/X11/VCL/TTreeView.h b/apps/X11/VCL/TTreeView.h
new file mode 100644
index 0000000..af71e4e
--- /dev/null
+++ b/apps/X11/VCL/TTreeView.h
@@ -0,0 +1,92 @@
+#ifndef TTREEVIEW_H
+#define TTREEVIEW_H
+
+#include <TCustomTreeView.h>
+
+class TTreeView : public TCustomTreeView {
+public:
+// property Items;
+ property <TTreeView, TTreeNodes *> Items;
+// property StateImages;
+ property <TTreeView, TCustomImageList *> StateImages;
+// property Images;
+ property <TTreeView, TCustomImageList *> Images;
+//published:
+/*
+ property Align;
+ property Anchors;
+ property AutoExpand;
+ property BiDiMode;
+ property BorderStyle;
+ property BorderWidth;
+ property ChangeDelay;
+ property Color;
+ property Ctl3D;
+ property Constraints;
+ property DragKind;
+ property DragCursor;
+ property DragMode;
+ property Enabled;
+ property Font;
+ property HideSelection;
+ property HotTrack;
+ property Indent;
+ property ParentBiDiMode;
+ property ParentColor default False;
+ property ParentCtl3D;
+ property ParentFont;
+ property ParentShowHint;
+ property PopupMenu;
+ property ReadOnly;
+ property RightClickSelect;
+ property RowSelect;
+ property ShowButtons;
+ property ShowHint;
+ property ShowLines;
+ property ShowRoot;
+ property SortType;
+ property TabOrder;
+ property TabStop default True;
+ property ToolTips;
+ property Visible;
+ property OnChange;
+ property OnChanging;
+ property OnClick;
+ property OnCollapsing;
+ property OnCollapsed;
+ property OnCompare;
+ property OnCustomDraw;
+ property OnCustomDrawItem;
+ property OnDblClick;
+ property OnDeletion;
+ property OnDragDrop;
+ property OnDragOver;
+ property OnEdited;
+ property OnEditing;
+ property OnEndDock;
+ property OnEndDrag;
+ property OnEnter;
+ property OnExit;
+ property OnExpanding;
+ property OnExpanded;
+ property OnGetImageIndex;
+ property OnGetSelectedIndex;
+ property OnKeyDown;
+ property OnKeyPress;
+ property OnKeyUp;
+ property OnMouseDown;
+ property OnMouseMove;
+ property OnMouseUp;
+ property OnStartDock;
+ property OnStartDrag;
+*/
+public:
+ TTreeView(GtkWidget *parent) :
+ TCustomTreeView(parent),
+ Items(this, &TCustomTreeView::getItems, &TCustomTreeView::SetTreeNodes),
+ StateImages(this, &TCustomTreeView::getStateImages, &TCustomTreeView::SetStateImages),
+ Images(this, &TCustomTreeView::getImages, &TCustomTreeView::SetImages)
+ {}
+};
+
+#endif
diff --git a/apps/X11/VCL/TWinControl.cpp b/apps/X11/VCL/TWinControl.cpp
new file mode 100644
index 0000000..79edfe8
--- /dev/null
+++ b/apps/X11/VCL/TWinControl.cpp
@@ -0,0 +1,16 @@
+#include <TWinControl.h>
+extern "C" {
+#include <gtk/gtkwidget.h>
+}
+
+TWinControl::TWinControl(TComponent *AOwner) : TControl(AOwner) {
+}
+
+
+TWinControl::TWinControl(GtkWidget *ParentWindow) : TControl(0) {
+}
+
+
+TWinControl::~TWinControl() {
+}
+
diff --git a/apps/X11/VCL/TWinControl.h b/apps/X11/VCL/TWinControl.h
new file mode 100644
index 0000000..b16e1b2
--- /dev/null
+++ b/apps/X11/VCL/TWinControl.h
@@ -0,0 +1,331 @@
+#ifndef TWINCONTROL_H
+#define TWINCONTROL_H
+
+#include <TControl.h>
+extern "C" {
+#include <gtk/gtkwidget.h>
+}
+
+class TWinControl : public TControl {
+private:
+/*
+ FAlignLevel: Word;
+ FBevelEdges: TBevelEdges;
+ FBevelInner: TBevelCut;
+ FBevelOuter: TBevelCut;
+ FBevelKind: TBevelKind;
+ FBevelWidth: TBevelWidth;
+ FBorderWidth: TBorderWidth;
+ FBrush: TBrush;
+ FControls: TList;
+ FCtl3D: Boolean;
+ FDefWndProc: Pointer;
+ FDockClients: TList;
+ FDockSite: Boolean;
+ FDockManager: IDockManager;
+ FHandle: HWnd;
+ FHelpContext: THelpContext;
+ FImeMode: TImeMode;
+ FImeName: TImeName;
+ FLastClientWidth: Integer;
+ FLastClientHeight: Integer;
+ FLastResize: TPoint;
+ FObjectInstance: Pointer;
+ FParentCtl3D: Boolean;
+ FParentWindow: HWnd;
+ FShowing: Boolean;
+ FTabList: TList;
+ FTabOrder: Integer;
+ FTabStop: Boolean;
+ FWheelAccumulator: Integer;
+ FUseDockManager: Boolean;
+ FWinControls: TList;
+ FOnDockDrop: TDockDropEvent;
+ FOnDockOver: TDockOverEvent;
+ FOnEnter: TNotifyEvent;
+ FOnExit: TNotifyEvent;
+ FOnGetSiteInfo: TGetSiteInfoEvent;
+ FOnKeyDown: TKeyEvent;
+ FOnKeyPress: TKeyPressEvent;
+ FOnKeyUp: TKeyEvent;
+ FOnMouseWheel: TMouseWheelEvent;
+ FOnMouseWheelDown: TMouseWheelUpDownEvent;
+ FOnMouseWheelUp: TMouseWheelUpDownEvent;
+ FOnUnDock: TUnDockEvent;
+ procedure AlignControl(AControl: TControl);
+ procedure CalcConstraints(var MinWidth, MinHeight, MaxWidth,
+ MaxHeight: Integer);
+ function GetControl(Index: Integer): TControl;
+ function GetControlCount: Integer;
+ function GetDockClientCount: Integer;
+ function GetDockClients(Index: Integer): TControl;
+ function GetHandle: HWnd;
+ function GetTabOrder: TTabOrder;
+ procedure Insert(AControl: TControl);
+ procedure InvalidateFrame;
+ function IsCtl3DStored: Boolean;
+ function IsHelpContextStored: Boolean;
+ function PrecedingWindow(Control: TWinControl): HWnd;
+ procedure Remove(AControl: TControl);
+ procedure RemoveFocus(Removing: Boolean);
+ procedure SetBevelCut(Index: Integer; const Value: TBevelCut);
+ procedure SetBevelEdges(const Value: TBevelEdges);
+ procedure SetBevelKind(const Value: TBevelKind);
+ procedure SetBevelWidth(const Value: TBevelWidth);
+ procedure SetBorderWidth(Value: TBorderWidth);
+ procedure SetCtl3D(Value: Boolean);
+ procedure SetDockSite(Value: Boolean);
+ procedure SetParentCtl3D(Value: Boolean);
+ procedure SetParentWindow(Value: HWnd);
+ procedure SetTabOrder(Value: TTabOrder);
+ procedure SetTabStop(Value: Boolean);
+ procedure SetUseDockManager(Value: Boolean);
+ procedure SetZOrderPosition(Position: Integer);
+ procedure UpdateLastResize(NewWidth, NewHeight: Integer); override;
+ procedure UpdateTabOrder(Value: TTabOrder);
+ procedure UpdateBounds;
+ procedure UpdateShowing;
+ function IsMenuKey(var Message: TWMKey): Boolean;
+ procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
+ procedure WMCommand(var Message: TWMCommand); message WM_COMMAND;
+ procedure WMNotify(var Message: TWMNotify); message WM_NOTIFY;
+ procedure WMSysColorChange(var Message: TWMSysColorChange); message WM_SYSCOLORCHANGE;
+ procedure WMHScroll(var Message: TWMHScroll); message WM_HSCROLL;
+ procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL;
+ procedure WMCompareItem(var Message: TWMCompareItem); message WM_COMPAREITEM;
+ procedure WMDeleteItem(var Message: TWMDeleteItem); message WM_DELETEITEM;
+ procedure WMDrawItem(var Message: TWMDrawItem); message WM_DRAWITEM;
+ procedure WMMeasureItem(var Message: TWMMeasureItem); message WM_MEASUREITEM;
+ procedure WMEraseBkgnd(var Message: TWmEraseBkgnd); message WM_ERASEBKGND;
+ procedure WMWindowPosChanged(var Message: TWMWindowPosChanged); message WM_WINDOWPOSCHANGED;
+ procedure WMWindowPosChanging(var Message: TWMWindowPosChanging); message WM_WINDOWPOSCHANGING;
+ procedure WMSize(var Message: TWMSize); message WM_SIZE;
+ procedure WMMove(var Message: TWMMove); message WM_MOVE;
+ procedure WMSetCursor(var Message: TWMSetCursor); message WM_SETCURSOR;
+ procedure WMKeyDown(var Message: TWMKeyDown); message WM_KEYDOWN;
+ procedure WMSysKeyDown(var Message: TWMKeyDown); message WM_SYSKEYDOWN;
+ procedure WMKeyUp(var Message: TWMKeyUp); message WM_KEYUP;
+ procedure WMSysKeyUp(var Message: TWMKeyUp); message WM_SYSKEYUP;
+ procedure WMChar(var Message: TWMChar); message WM_CHAR;
+ procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
+ procedure WMCharToItem(var Message: TWMCharToItem); message WM_CHARTOITEM;
+ procedure WMParentNotify(var Message: TWMParentNotify); message WM_PARENTNOTIFY;
+ procedure WMVKeyToItem(var Message: TWMVKeyToItem); message WM_VKEYTOITEM;
+ procedure WMDestroy(var Message: TWMDestroy); message WM_DESTROY;
+ procedure WMNCCalcSize(var Message: TWMNCCalcSize); message WM_NCCALCSIZE;
+ procedure WMNCDestroy(var Message: TWMNCDestroy); message WM_NCDESTROY;
+ procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
+ procedure WMNCPaint(var Message: TMessage); message WM_NCPAINT;
+ procedure WMQueryNewPalette(var Message: TMessage); message WM_QUERYNEWPALETTE;
+ procedure WMPaletteChanged(var Message: TMessage); message WM_PALETTECHANGED;
+ procedure WMWinIniChange(var Message: TMessage); message WM_WININICHANGE;
+ procedure WMFontChange(var Message: TMessage); message WM_FONTCHANGE;
+ procedure WMTimeChange(var Message: TMessage); message WM_TIMECHANGE;
+ procedure WMSetFocus(var Message: TWMSetFocus); message WM_SETFOCUS;
+ procedure WMKillFocus(var Message: TWMSetFocus); message WM_KILLFOCUS;
+ procedure WMIMEStartComp(var Message: TMessage); message WM_IME_STARTCOMPOSITION;
+ procedure WMIMEEndComp(var Message: TMessage); message WM_IME_ENDCOMPOSITION;
+ procedure WMMouseWheel(var Message: TWMMouseWheel); message WM_MOUSEWHEEL;
+ procedure CMChanged(var Message: TMessage); message CM_CHANGED;
+ procedure CMChildKey(var Message: TMessage); message CM_CHILDKEY;
+ procedure CMDialogKey(var Message: TCMDialogKey); message CM_DIALOGKEY;
+ procedure CMDialogChar(var Message: TCMDialogChar); message CM_DIALOGCHAR;
+ procedure CMFocusChanged(var Message: TCMFocusChanged); message CM_FOCUSCHANGED;
+ procedure CMVisibleChanged(var Message: TMessage); message CM_VISIBLECHANGED;
+ procedure CMEnabledChanged(var Message: TMessage); message CM_ENABLEDCHANGED;
+ procedure CMColorChanged(var Message: TMessage); message CM_COLORCHANGED;
+ procedure CMFontChanged(var Message: TMessage); message CM_FONTCHANGED;
+ procedure CMBorderChanged(var Message: TMessage); message CM_BORDERCHANGED;
+ procedure CMCursorChanged(var Message: TMessage); message CM_CURSORCHANGED;
+ procedure CMCtl3DChanged(var Message: TMessage); message CM_CTL3DCHANGED;
+ procedure CMParentCtl3DChanged(var Message: TMessage); message CM_PARENTCTL3DCHANGED;
+ procedure CMShowingChanged(var Message: TMessage); message CM_SHOWINGCHANGED;
+ procedure CMShowHintChanged(var Message: TMessage); message CM_SHOWHINTCHANGED;
+ procedure CMEnter(var Message: TCMEnter); message CM_ENTER;
+ procedure CMExit(var Message: TCMExit); message CM_EXIT;
+ procedure CMDesignHitTest(var Message: TCMDesignHitTest); message CM_DESIGNHITTEST;
+ procedure CMSysColorChange(var Message: TMessage); message CM_SYSCOLORCHANGE;
+ procedure CMSysFontChanged(var Message: TMessage); message CM_SYSFONTCHANGED;
+ procedure CMWinIniChange(var Message: TWMWinIniChange); message CM_WININICHANGE;
+ procedure CMFontChange(var Message: TMessage); message CM_FONTCHANGE;
+ procedure CMTimeChange(var Message: TMessage); message CM_TIMECHANGE;
+ procedure CMDrag(var Message: TCMDrag); message CM_DRAG;
+ procedure CNKeyDown(var Message: TWMKeyDown); message CN_KEYDOWN;
+ procedure CNKeyUp(var Message: TWMKeyUp); message CN_KEYUP;
+ procedure CNChar(var Message: TWMChar); message CN_CHAR;
+ procedure CNSysKeyDown(var Message: TWMKeyDown); message CN_SYSKEYDOWN;
+ procedure CNSysChar(var Message: TWMChar); message CN_SYSCHAR;
+ procedure CMControlListChange(var Message: TMessage); message CM_CONTROLLISTCHANGE;
+ procedure CMRecreateWnd(var Message: TMessage); message CM_RECREATEWND;
+ procedure CMInvalidate(var Message: TMessage); message CM_INVALIDATE;
+ procedure CMDockClient(var Message: TCMDockClient); message CM_DOCKCLIENT;
+ procedure CMUnDockClient(var Message: TCMUnDockClient); message CM_UNDOCKCLIENT;
+ procedure CMFloat(var Message: TCMFloat); message CM_FLOAT;
+ procedure CMBiDiModeChanged(var Message: TMessage); message CM_BIDIMODECHANGED;
+ procedure CMMouseWheel(var Message: TCMMouseWheel); message CM_MOUSEWHEEL;
+*/
+protected:
+/*
+ FDoubleBuffered: Boolean;
+ FInImeComposition: Boolean;
+ procedure ActionChange(Sender: TObject; CheckDefaults: Boolean); override;
+ procedure AddBiDiModeExStyle(var ExStyle: DWORD);
+ procedure AssignTo(Dest: TPersistent); override;
+ procedure AdjustClientRect(var Rect: TRect); virtual;
+ procedure AdjustSize; override;
+ procedure AlignControls(AControl: TControl; var Rect: TRect); virtual;
+ function CanAutoSize(var NewWidth, NewHeight: Integer): Boolean; override;
+ function CanResize(var NewWidth, NewHeight: Integer): Boolean; override;
+ procedure ChangeScale(M, D: Integer); override;
+ procedure ConstrainedResize(var MinWidth, MinHeight, MaxWidth,
+ MaxHeight: Integer); override;
+ function CreateDockManager: IDockManager; dynamic;
+ procedure CreateHandle; virtual;
+ procedure CreateParams(var Params: TCreateParams); virtual;
+ procedure CreateSubClass(var Params: TCreateParams;
+ ControlClassName: PChar);
+ procedure CreateWindowHandle(const Params: TCreateParams); virtual;
+ procedure CreateWnd; virtual;
+ procedure DestroyHandle;
+ procedure DestroyWindowHandle; virtual;
+ procedure DestroyWnd; virtual;
+ procedure DoAddDockClient(Client: TControl; const ARect: TRect); dynamic;
+ procedure DockOver(Source: TDragDockObject; X, Y: Integer; State: TDragState;
+ var Accept: Boolean); dynamic;
+ procedure DoDockOver(Source: TDragDockObject; X, Y: Integer; State: TDragState;
+ var Accept: Boolean); dynamic;
+ procedure DoEnter; dynamic;
+ procedure DoExit; dynamic;
+ procedure DoFlipChildren; dynamic;
+ function DoKeyDown(var Message: TWMKey): Boolean;
+ function DoKeyPress(var Message: TWMKey): Boolean;
+ function DoKeyUp(var Message: TWMKey): Boolean;
+ function DoMouseWheel(Shift: TShiftState; WheelDelta: Integer;
+ MousePos: TPoint): Boolean; dynamic;
+ function DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; dynamic;
+ function DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; dynamic;
+ procedure DoRemoveDockClient(Client: TControl); dynamic;
+ function DoUnDock(NewTarget: TWinControl; Client: TControl): Boolean; dynamic;
+ function FindNextControl(CurControl: TWinControl;
+ GoForward, CheckTabStop, CheckParent: Boolean): TWinControl;
+ procedure FixupTabList;
+ function GetActionLinkClass: TControlActionLinkClass; override;
+ procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
+ function GetClientOrigin: TPoint; override;
+ function GetClientRect: TRect; override;
+ function GetControlExtents: TRect; virtual;
+ function GetDeviceContext(var WindowHandle: HWnd): HDC; override;
+ function GetParentHandle: HWnd;
+ procedure GetSiteInfo(Client: TControl; var InfluenceRect: TRect;
+ MousePos: TPoint; var CanDock: Boolean); dynamic;
+ function GetTopParentHandle: HWnd;
+ function IsControlMouseMsg(var Message: TWMMouse): Boolean;
+ procedure KeyDown(var Key: Word; Shift: TShiftState); dynamic;
+ procedure KeyUp(var Key: Word; Shift: TShiftState); dynamic;
+ procedure KeyPress(var Key: Char); dynamic;
+ procedure MainWndProc(var Message: TMessage);
+ procedure NotifyControls(Msg: Word);
+ procedure PaintControls(DC: HDC; First: TControl);
+ procedure PaintHandler(var Message: TWMPaint);
+ procedure PaintWindow(DC: HDC); virtual;
+ function PaletteChanged(Foreground: Boolean): Boolean; override;
+ procedure ReadState(Reader: TReader); override;
+ procedure RecreateWnd;
+ procedure ReloadDockedControl(const AControlName: string;
+ var AControl: TControl); dynamic;
+ procedure ResetIme;
+ function ResetImeComposition(Action: DWORD): Boolean;
+ procedure ScaleControls(M, D: Integer);
+ procedure SelectFirst;
+ procedure SelectNext(CurControl: TWinControl;
+ GoForward, CheckTabStop: Boolean);
+ procedure SetChildOrder(Child: TComponent; Order: Integer); override;
+ procedure SetIme;
+ function SetImeCompositionWindow(Font: TFont; XPos, YPos: Integer): Boolean;
+ procedure SetZOrder(TopMost: Boolean); override;
+ procedure ShowControl(AControl: TControl); virtual;
+ procedure WndProc(var Message: TMessage); override;
+ property BevelEdges: TBevelEdges read FBevelEdges write SetBevelEdges default [beLeft, beTop, beRight, beBottom];
+ property BevelInner: TBevelCut index 0 read FBevelInner write SetBevelCut default bvRaised;
+ property BevelOuter: TBevelCut index 1 read FBevelOuter write SetBevelCut default bvLowered;
+ property BevelKind: TBevelKind read FBevelKind write SetBevelKind default bkNone;
+ property BevelWidth: TBevelWidth read FBevelWidth write SetBevelWidth default 1;
+ property BorderWidth: TBorderWidth read FBorderWidth write SetBorderWidth default 0;
+ property Ctl3D: Boolean read FCtl3D write SetCtl3D stored IsCtl3DStored;
+ property DefWndProc: Pointer read FDefWndProc write FDefWndProc;
+ property DockSite: Boolean read FDockSite write SetDockSite default False;
+ property DockManager: IDockManager read FDockManager write FDockManager;
+ property ImeMode: TImeMode read FImeMode write FImeMode default imDontCare;
+ property ImeName: TImeName read FImeName write FImeName;
+ property ParentCtl3D: Boolean read FParentCtl3D write SetParentCtl3D default True;
+ property UseDockManager: Boolean read FUseDockManager write SetUseDockManager
+ default False;
+ property WheelAccumulator: Integer read FWheelAccumulator write FWheelAccumulator;
+ property WindowHandle: HWnd read FHandle write FHandle;
+ property OnDockDrop: TDockDropEvent read FOnDockDrop write FOnDockDrop;
+ property OnDockOver: TDockOverEvent read FOnDockOver write FOnDockOver;
+ property OnEnter: TNotifyEvent read FOnEnter write FOnEnter;
+ property OnExit: TNotifyEvent read FOnExit write FOnExit;
+ property OnGetSiteInfo: TGetSiteInfoEvent read FOnGetSiteInfo write FOnGetSiteInfo;
+ property OnKeyDown: TKeyEvent read FOnKeyDown write FOnKeyDown;
+ property OnKeyPress: TKeyPressEvent read FOnKeyPress write FOnKeyPress;
+ property OnKeyUp: TKeyEvent read FOnKeyUp write FOnKeyUp;
+ property OnMouseWheel: TMouseWheelEvent read FOnMouseWheel write FOnMouseWheel;
+ property OnMouseWheelDown: TMouseWheelUpDownEvent read FOnMouseWheelDown
+ write FOnMouseWheelDown;
+ property OnMouseWheelUp: TMouseWheelUpDownEvent read FOnMouseWheelUp write
+ FOnMouseWheelUp;
+ property OnUnDock: TUnDockEvent read FOnUnDock write FOnUnDock;
+*/
+public:
+ GtkWidget *nativeControl;
+
+ TWinControl(TComponent *AOwner);
+ TWinControl(GtkWidget *ParentWindow);
+ virtual ~TWinControl();
+/*
+ class function CreateParentedControl(ParentWindow: HWnd): TWinControl;
+ procedure Broadcast(var Message);
+ function CanFocus: Boolean;
+ function ContainsControl(Control: TControl): Boolean;
+ function ControlAtPos(const Pos: TPoint; AllowDisabled: Boolean): TControl;
+ procedure DefaultHandler(var Message); override;
+ procedure DisableAlign;
+ property DockClientCount: Integer read GetDockClientCount;
+ property DockClients[Index: Integer]: TControl read GetDockClients;
+ procedure DockDrop(Source: TDragDockObject; X, Y: Integer); dynamic;
+ property DoubleBuffered: Boolean read FDoubleBuffered write FDoubleBuffered;
+ procedure EnableAlign;
+ function FindChildControl(const ControlName: string): TControl;
+ procedure FlipChildren(AllLevels: Boolean); dynamic;
+ function Focused: Boolean; dynamic;
+ procedure GetTabOrderList(List: TList); dynamic;
+ function HandleAllocated: Boolean;
+ procedure HandleNeeded;
+ procedure InsertControl(AControl: TControl);
+ procedure Invalidate; override;
+ procedure MouseWheelHandler(var Message: TMessage); dynamic;
+ procedure PaintTo(DC: HDC; X, Y: Integer);
+ procedure RemoveControl(AControl: TControl);
+ procedure Realign;
+ procedure Repaint; override;
+ procedure ScaleBy(M, D: Integer);
+ procedure ScrollBy(DeltaX, DeltaY: Integer);
+ procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
+ procedure SetFocus; virtual;
+ procedure Update; override;
+ procedure UpdateControlState;
+ property Brush: TBrush read FBrush;
+ property Controls[Index: Integer]: TControl read GetControl;
+ property ControlCount: Integer read GetControlCount;
+ property Handle: HWnd read GetHandle;
+ property ParentWindow: HWnd read FParentWindow write SetParentWindow;
+ property Showing: Boolean read FShowing;
+ property TabOrder: TTabOrder read GetTabOrder write SetTabOrder default -1;
+ property TabStop: Boolean read FTabStop write SetTabStop default False;
+ published
+ property HelpContext: THelpContext read FHelpContext write FHelpContext stored IsHelpContextStored default 0;
+*/
+};
+
+#endif
diff --git a/apps/X11/VCL/property b/apps/X11/VCL/property
new file mode 100644
index 0000000..aee9eda
--- /dev/null
+++ b/apps/X11/VCL/property
@@ -0,0 +1,77 @@
+#ifndef PROPERTY_H
+#define PROPERTY_H
+
+#include <iostream>
+
+template<class Context, class T> struct Property_index;
+
+template<class Context, class T>
+class property {
+ Context* view; // an Item needs to access values in its context
+ T (Context::*Getter)();
+ void (Context::*Setter)(T);
+
+protected:
+ T get() const { return (Getter) ? (view->*Getter)() : 0; }
+ void set(T val) { if (Setter) (view->*Setter)(val); }
+
+public:
+ property(Context* v,
+ T (Context::*G)() = &Context::get,
+ void (Context::*S)(T) = &Context::set)
+ :view(v), Getter(G), Setter(S) { }
+
+ operator T() const { return get(); }
+ property& operator=(T val) { set(val); return *this; }
+ property& operator+=(T val) { set(get() + val); return *this; }
+ property& operator=(const property &other) { set(T(other)); return *this; }
+
+ // specialized operations:
+
+ T operator->() { return get(); }
+
+ // string specific
+ property<Property_index<Context,T>,char> operator[](int i);
+ int size() { return (view->*Getter)().size(); }
+
+};
+
+template<class Context, class T>
+struct Property_index { // inefficient
+ property<Context,T>* p;
+ int i;
+ Property_index(property<Context,T>* pp, int ii) : p(pp), i(ii) { }
+ char get() const { return p->get()[i]; }
+ void set(char ch) { T v = p->get(); v[i] = ch; p->set(v); }
+};
+
+template<class Context, class T>
+property<Property_index<Context,T>,char> property<Context,T>::operator[](int i)
+{
+ return property<Property_index<Context,T>,char>(new Property_index<Context,T>(this,i));
+// leaks
+}
+
+template<class Context, class T>
+inline ostream& operator<<(ostream& s, property<Context,T> p)
+{
+ s << T(p);
+}
+
+template<class Context, class T>
+inline istream& operator>>(istream& s, property<Context,T>& p)
+{
+ T t;
+ s >> t;
+ p = t;
+}
+
+
+
+/* examples
+property<TTreeView,TTreeNodes*> Items;
+Items(this, &get, &set);
+*/
+
+
+#endif
diff --git a/apps/X11/cheatah/AUTHORS b/apps/X11/cheatah/AUTHORS
new file mode 100644
index 0000000..cca39e0
--- /dev/null
+++ b/apps/X11/cheatah/AUTHORS
@@ -0,0 +1 @@
+CrossWire Bible Society and the global internet community at large.
diff --git a/apps/X11/cheatah/COPYING b/apps/X11/cheatah/COPYING
new file mode 100644
index 0000000..eeb586b
--- /dev/null
+++ b/apps/X11/cheatah/COPYING
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/apps/X11/cheatah/ChangeLog b/apps/X11/cheatah/ChangeLog
new file mode 100644
index 0000000..23f8aeb
--- /dev/null
+++ b/apps/X11/cheatah/ChangeLog
@@ -0,0 +1,2 @@
+05-Jun-1999
+ Released first version of cheatah in public SWORD distribution
diff --git a/apps/X11/cheatah/INSTALL b/apps/X11/cheatah/INSTALL
new file mode 100644
index 0000000..736846a
--- /dev/null
+++ b/apps/X11/cheatah/INSTALL
@@ -0,0 +1,10 @@
+
+First, be sure to read INSTALL in the root of the project
+directory for instructions on how to make sure the API
+libraries are installed and configured properly.
+
+Then do a:
+
+./configure
+make
+
diff --git a/apps/X11/cheatah/Makefile.am b/apps/X11/cheatah/Makefile.am
new file mode 100644
index 0000000..d57a8e9
--- /dev/null
+++ b/apps/X11/cheatah/Makefile.am
@@ -0,0 +1,14 @@
+## Process this file with automake to produce Makefile.in
+
+bin_PROGRAMS = cheatah
+
+cheatah_SOURCES = \
+ cheatah.cpp \
+ cheatsig.cpp
+
+noinst_HEADERS = \
+ cheatah.h \
+ cheatsig.h
+
+
+CXXFLAGS = $(GTK_CFLAGS) -I../../../include -g
diff --git a/apps/X11/cheatah/Makefile.in b/apps/X11/cheatah/Makefile.in
new file mode 100644
index 0000000..7fc7a9c
--- /dev/null
+++ b/apps/X11/cheatah/Makefile.in
@@ -0,0 +1,385 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = .
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+CC = @CC@
+CXX = @CXX@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_CONFIG = @GTK_CONFIG@
+GTK_LIBS = @GTK_LIBS@
+MAKEINFO = @MAKEINFO@
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+bin_PROGRAMS = cheatah
+
+cheatah_SOURCES = cheatah.cpp cheatsig.cpp
+
+
+noinst_HEADERS = cheatah.h cheatsig.h
+
+
+CXXFLAGS = $(GTK_CFLAGS) -I../../../include -g
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_CLEAN_FILES =
+PROGRAMS = $(bin_PROGRAMS)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir)
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+cheatah_OBJECTS = cheatah.o cheatsig.o
+cheatah_LDADD = $(LDADD)
+cheatah_DEPENDENCIES =
+cheatah_LDFLAGS =
+CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
+HEADERS = $(noinst_HEADERS)
+
+DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
+Makefile.in NEWS aclocal.m4 configure configure.in install-sh missing \
+mkinstalldirs
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+DEP_FILES = .deps/cheatah.P .deps/cheatsig.P
+SOURCES = $(cheatah_SOURCES)
+OBJECTS = $(cheatah_OBJECTS)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .cpp .o .s
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
+ cd $(top_builddir) \
+ && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+$(ACLOCAL_M4): configure.in
+ cd $(srcdir) && $(ACLOCAL)
+
+config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
+ cd $(srcdir) && $(AUTOCONF)
+
+mostlyclean-binPROGRAMS:
+
+clean-binPROGRAMS:
+ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+
+distclean-binPROGRAMS:
+
+maintainer-clean-binPROGRAMS:
+
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ if test -f $$p; then \
+ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
+ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ else :; fi; \
+ done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ list='$(bin_PROGRAMS)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ done
+
+.s.o:
+ $(COMPILE) -c $<
+
+.S.o:
+ $(COMPILE) -c $<
+
+mostlyclean-compile:
+ -rm -f *.o core *.core
+
+clean-compile:
+
+distclean-compile:
+ -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+cheatah: $(cheatah_OBJECTS) $(cheatah_DEPENDENCIES)
+ @rm -f cheatah
+ $(CXXLINK) $(cheatah_LDFLAGS) $(cheatah_OBJECTS) $(cheatah_LDADD) $(LIBS)
+.cpp.o:
+ $(CXXCOMPILE) -c $<
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ -rm -rf $(distdir)
+ GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
+ mkdir $(distdir)/=build
+ mkdir $(distdir)/=inst
+ dc_install_base=`cd $(distdir)/=inst && pwd`; \
+ cd $(distdir)/=build \
+ && ../configure --srcdir=.. --prefix=$$dc_install_base \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) dist
+ -rm -rf $(distdir)
+ @banner="$(distdir).tar.gz is ready for distribution"; \
+ dashes=`echo "$$banner" | sed s/./=/g`; \
+ echo "$$dashes"; \
+ echo "$$banner"; \
+ echo "$$dashes"
+dist: distdir
+ -chmod -R a+r $(distdir)
+ GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
+ -rm -rf $(distdir)
+dist-all: distdir
+ -chmod -R a+r $(distdir)
+ GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
+ -rm -rf $(distdir)
+distdir: $(DISTFILES)
+ -rm -rf $(distdir)
+ mkdir $(distdir)
+ -chmod 777 $(distdir)
+ here=`cd $(top_builddir) && pwd`; \
+ top_distdir=`cd $(distdir) && pwd`; \
+ distdir=`cd $(distdir) && pwd`; \
+ cd $(top_srcdir) \
+ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Makefile
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$d/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+
+DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
+
+-include $(DEP_FILES)
+
+mostlyclean-depend:
+
+clean-depend:
+
+distclean-depend:
+ -rm -rf .deps
+
+maintainer-clean-depend:
+
+%.o: %.c
+ @echo '$(COMPILE) -c $<'; \
+ $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+ @-cp .deps/$(*F).pp .deps/$(*F).P; \
+ tr ' ' '\012' < .deps/$(*F).pp \
+ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+ >> .deps/$(*F).P; \
+ rm .deps/$(*F).pp
+
+%.lo: %.c
+ @echo '$(LTCOMPILE) -c $<'; \
+ $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+ @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
+ < .deps/$(*F).pp > .deps/$(*F).P; \
+ tr ' ' '\012' < .deps/$(*F).pp \
+ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+ >> .deps/$(*F).P; \
+ rm -f .deps/$(*F).pp
+
+%.o: %.cpp
+ @echo '$(CXXCOMPILE) -c $<'; \
+ $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+ @-cp .deps/$(*F).pp .deps/$(*F).P; \
+ tr ' ' '\012' < .deps/$(*F).pp \
+ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+ >> .deps/$(*F).P; \
+ rm .deps/$(*F).pp
+
+%.lo: %.cpp
+ @echo '$(LTCXXCOMPILE) -c $<'; \
+ $(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+ @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
+ < .deps/$(*F).pp > .deps/$(*F).P; \
+ tr ' ' '\012' < .deps/$(*F).pp \
+ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+ >> .deps/$(*F).P; \
+ rm -f .deps/$(*F).pp
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am: install-binPROGRAMS
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-binPROGRAMS
+uninstall: uninstall-am
+all-am: Makefile $(PROGRAMS) $(HEADERS)
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \
+ mostlyclean-tags mostlyclean-depend mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-binPROGRAMS clean-compile clean-tags clean-depend \
+ clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-binPROGRAMS distclean-compile distclean-tags \
+ distclean-depend distclean-generic clean-am
+
+distclean: distclean-am
+ -rm -f config.status
+
+maintainer-clean-am: maintainer-clean-binPROGRAMS \
+ maintainer-clean-compile maintainer-clean-tags \
+ maintainer-clean-depend maintainer-clean-generic \
+ distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+ -rm -f config.status
+
+.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
+maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile tags mostlyclean-tags distclean-tags \
+clean-tags maintainer-clean-tags distdir mostlyclean-depend \
+distclean-depend clean-depend maintainer-clean-depend info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-redirect all-am all installdirs \
+mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/apps/X11/cheatah/NEWS b/apps/X11/cheatah/NEWS
new file mode 100644
index 0000000..5af8a53
--- /dev/null
+++ b/apps/X11/cheatah/NEWS
@@ -0,0 +1 @@
+Look for full blown gtk SWORD GUIs in the near future
diff --git a/apps/X11/cheatah/README b/apps/X11/cheatah/README
new file mode 100644
index 0000000..bcc13de
--- /dev/null
+++ b/apps/X11/cheatah/README
@@ -0,0 +1,4 @@
+This is the temporary gtk GUI to The SWORD Project. It is called cheatah
+because it is a fast lookup and search utility for SWORD modules. It is
+mispelled because it is a 'cheater' interface meant to hold over Linux users
+until we can build a full featured GUI! :)
diff --git a/apps/X11/cheatah/aclocal.m4 b/apps/X11/cheatah/aclocal.m4
new file mode 100644
index 0000000..c4a8693
--- /dev/null
+++ b/apps/X11/cheatah/aclocal.m4
@@ -0,0 +1,299 @@
+dnl aclocal.m4 generated automatically by aclocal 1.4
+
+dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+dnl PARTICULAR PURPOSE.
+
+# Do all the work for Automake. This macro actually does too much --
+# some checks are only needed if your package does certain things.
+# But this isn't really a big deal.
+
+# serial 1
+
+dnl Usage:
+dnl AM_INIT_AUTOMAKE(package,version, [no-define])
+
+AC_DEFUN(AM_INIT_AUTOMAKE,
+[AC_REQUIRE([AC_PROG_INSTALL])
+PACKAGE=[$1]
+AC_SUBST(PACKAGE)
+VERSION=[$2]
+AC_SUBST(VERSION)
+dnl test to see if srcdir already configured
+if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+fi
+ifelse([$3],,
+AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
+AC_REQUIRE([AM_SANITY_CHECK])
+AC_REQUIRE([AC_ARG_PROGRAM])
+dnl FIXME This is truly gross.
+missing_dir=`cd $ac_aux_dir && pwd`
+AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
+AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
+AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
+AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
+AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
+AC_REQUIRE([AC_PROG_MAKE_SET])])
+
+#
+# Check to make sure that the build environment is sane.
+#
+
+AC_DEFUN(AM_SANITY_CHECK,
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftestfile
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
+ if test "[$]*" = "X"; then
+ # -L didn't work.
+ set X `ls -t $srcdir/configure conftestfile`
+ fi
+ if test "[$]*" != "X $srcdir/configure conftestfile" \
+ && test "[$]*" != "X conftestfile $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
+
+ test "[$]2" = conftestfile
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+rm -f conftest*
+AC_MSG_RESULT(yes)])
+
+dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
+dnl The program must properly implement --version.
+AC_DEFUN(AM_MISSING_PROG,
+[AC_MSG_CHECKING(for working $2)
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if ($2 --version) < /dev/null > /dev/null 2>&1; then
+ $1=$2
+ AC_MSG_RESULT(found)
+else
+ $1="$3/missing $2"
+ AC_MSG_RESULT(missing)
+fi
+AC_SUBST($1)])
+
+# Configure paths for GTK+
+# Owen Taylor 97-11-3
+
+dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
+dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
+dnl
+AC_DEFUN(AM_PATH_GTK,
+[dnl
+dnl Get the cflags and libraries from the gtk-config script
+dnl
+AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
+ gtk_config_prefix="$withval", gtk_config_prefix="")
+AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
+ gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
+AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
+ , enable_gtktest=yes)
+
+ for module in . $4
+ do
+ case "$module" in
+ gthread)
+ gtk_config_args="$gtk_config_args gthread"
+ ;;
+ esac
+ done
+
+ if test x$gtk_config_exec_prefix != x ; then
+ gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
+ if test x${GTK_CONFIG+set} != xset ; then
+ GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
+ fi
+ fi
+ if test x$gtk_config_prefix != x ; then
+ gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
+ if test x${GTK_CONFIG+set} != xset ; then
+ GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
+ fi
+ fi
+
+ AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
+ min_gtk_version=ifelse([$1], ,0.99.7,$1)
+ AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
+ no_gtk=""
+ if test "$GTK_CONFIG" = "no" ; then
+ no_gtk=yes
+ else
+ GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
+ GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
+ gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+ if test "x$enable_gtktest" = "xyes" ; then
+ ac_save_CFLAGS="$CFLAGS"
+ ac_save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $GTK_CFLAGS"
+ LIBS="$GTK_LIBS $LIBS"
+dnl
+dnl Now check if the installed GTK is sufficiently new. (Also sanity
+dnl checks the results of gtk-config to some extent
+dnl
+ rm -f conf.gtktest
+ AC_TRY_RUN([
+#include <gtk/gtk.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+int
+main ()
+{
+ int major, minor, micro;
+ char *tmp_version;
+
+ system ("touch conf.gtktest");
+
+ /* HP/UX 9 (%@#!) writes to sscanf strings */
+ tmp_version = g_strdup("$min_gtk_version");
+ if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+ printf("%s, bad version string\n", "$min_gtk_version");
+ exit(1);
+ }
+
+ if ((gtk_major_version != $gtk_config_major_version) ||
+ (gtk_minor_version != $gtk_config_minor_version) ||
+ (gtk_micro_version != $gtk_config_micro_version))
+ {
+ printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
+ $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
+ gtk_major_version, gtk_minor_version, gtk_micro_version);
+ printf ("*** was found! If gtk-config was correct, then it is best\n");
+ printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
+ printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
+ printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
+ printf("*** required on your system.\n");
+ printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
+ printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
+ printf("*** before re-running configure\n");
+ }
+#if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
+ else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
+ (gtk_minor_version != GTK_MINOR_VERSION) ||
+ (gtk_micro_version != GTK_MICRO_VERSION))
+ {
+ printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
+ GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
+ printf("*** library (version %d.%d.%d)\n",
+ gtk_major_version, gtk_minor_version, gtk_micro_version);
+ }
+#endif /* defined (GTK_MAJOR_VERSION) ... */
+ else
+ {
+ if ((gtk_major_version > major) ||
+ ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
+ ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
+ {
+ return 0;
+ }
+ else
+ {
+ printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
+ gtk_major_version, gtk_minor_version, gtk_micro_version);
+ printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
+ major, minor, micro);
+ printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
+ printf("***\n");
+ printf("*** If you have already installed a sufficiently new version, this error\n");
+ printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
+ printf("*** being found. The easiest way to fix this is to remove the old version\n");
+ printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
+ printf("*** correct copy of gtk-config. (In this case, you will have to\n");
+ printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
+ printf("*** so that the correct libraries are found at run-time))\n");
+ }
+ }
+ return 1;
+}
+],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ if test "x$no_gtk" = x ; then
+ AC_MSG_RESULT(yes)
+ ifelse([$2], , :, [$2])
+ else
+ AC_MSG_RESULT(no)
+ if test "$GTK_CONFIG" = "no" ; then
+ echo "*** The gtk-config script installed by GTK could not be found"
+ echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
+ echo "*** your path, or set the GTK_CONFIG environment variable to the"
+ echo "*** full path to gtk-config."
+ else
+ if test -f conf.gtktest ; then
+ :
+ else
+ echo "*** Could not run GTK test program, checking why..."
+ CFLAGS="$CFLAGS $GTK_CFLAGS"
+ LIBS="$LIBS $GTK_LIBS"
+ AC_TRY_LINK([
+#include <gtk/gtk.h>
+#include <stdio.h>
+], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
+ [ echo "*** The test program compiled, but did not run. This usually means"
+ echo "*** that the run-time linker is not finding GTK or finding the wrong"
+ echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
+ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+ echo "*** to the installed location Also, make sure you have run ldconfig if that"
+ echo "*** is required on your system"
+ echo "***"
+ echo "*** If you have an old version installed, it is best to remove it, although"
+ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
+ echo "***"
+ echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
+ echo "*** came with the system with the command"
+ echo "***"
+ echo "*** rpm --erase --nodeps gtk gtk-devel" ],
+ [ echo "*** The test program failed to compile or link. See the file config.log for the"
+ echo "*** exact error that occured. This usually means GTK was incorrectly installed"
+ echo "*** or that you have moved GTK since it was installed. In the latter case, you"
+ echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ GTK_CFLAGS=""
+ GTK_LIBS=""
+ ifelse([$3], , :, [$3])
+ fi
+ AC_SUBST(GTK_CFLAGS)
+ AC_SUBST(GTK_LIBS)
+ rm -f conf.gtktest
+])
+
diff --git a/apps/X11/cheatah/cheatah.cpp b/apps/X11/cheatah/cheatah.cpp
new file mode 100644
index 0000000..0cb5778
--- /dev/null
+++ b/apps/X11/cheatah/cheatah.cpp
@@ -0,0 +1,654 @@
+/* cheatah
+ * Copyright (C) 1999, CrossWire Bible Society
+ * P. O. Box 2528
+ * Tempe, AZ 85280-2528
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
+#include <gtk/gtk.h>
+#include <gdk/gdkkeysyms.h>
+#include "cheatsig.h"
+#include "cheatah.h"
+#include <swmgr.h>
+#include <versekey.h>
+#include <regex.h>
+#include <gbfplain.h>
+#include <thmlplain.h>
+#include <string.h>
+
+
+MainWindow *cheatahWindow = NULL;
+
+/* I'm going to try commenting out get_widget() - it no longer seems to be used */
+/* Note: this doesn't seem to have caused any problems so far. */
+/*
+GtkWidget*
+get_widget (GtkWidget *widget,
+ gchar *widget_name)
+{
+ GtkWidget *found_widget;
+
+ if (widget->parent)
+ widget = gtk_widget_get_toplevel (widget);
+ found_widget = (GtkWidget*) gtk_object_get_data (GTK_OBJECT (widget),
+ widget_name);
+ if (!found_widget)
+ g_warning ("Widget not found: %s", widget_name);
+ return found_widget;
+}
+*/
+
+/* This is an internally used function to set notebook tab widgets. */
+void
+set_notebook_tab (GtkWidget *notebook,
+ gint page_num,
+ GtkWidget *widget)
+{
+ GtkNotebookPage *page;
+ GtkWidget *notebook_page;
+
+ page = (GtkNotebookPage*) g_list_nth (GTK_NOTEBOOK (notebook)->children, page_num)->data;
+ notebook_page = page->child;
+ gtk_widget_ref (notebook_page);
+ gtk_notebook_remove_page (GTK_NOTEBOOK (notebook), page_num);
+ gtk_notebook_insert_page (GTK_NOTEBOOK (notebook), notebook_page,
+ widget, page_num);
+ gtk_widget_unref (notebook_page);
+}
+
+
+
+MainWindow::MainWindow() {
+ searchType_group = NULL;
+ mainMgr = new SWMgr();
+ curMod = NULL;
+ chapDisplay = 0; // set in create
+ entryDisplay = 0; // set in create
+}
+
+
+MainWindow::~MainWindow() {
+ delete mainMgr;
+ if (chapDisplay)
+ delete chapDisplay;
+ if (entryDisplay)
+ delete entryDisplay;
+}
+
+
+GtkWidget* create_mainWindow () {
+ GtkWidget *retWidget;
+ cheatahWindow = new MainWindow();
+ retWidget = cheatahWindow->create();
+ cheatahWindow->initSWORD();
+ return retWidget;
+}
+
+/* */
+/* Note: this seems to be a poor choice of a name for this function . */
+/* When I accidentally left off the parenthesis when trying to call it, */
+/* the compiler didn't complain, but it didn't execute, either. */
+/* Could there be a macro or something by the same name? */
+/* At any rate, be careful with it. */
+/* */
+void destroy_mainWindow () {
+ delete cheatahWindow;
+}
+
+GtkWidget *MainWindow::create() {
+ mainWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "mainWindow", mainWindow);
+ gtk_window_set_title (GTK_WINDOW (mainWindow), "Cheatah - SWORD Quick Lookup / Search");
+ gtk_window_set_policy (GTK_WINDOW (mainWindow), TRUE, TRUE, FALSE);
+ gtk_widget_set_usize(GTK_WIDGET(mainWindow), 580, 360);
+ gtk_signal_connect(GTK_OBJECT(mainWindow),
+ "destroy",
+ GTK_SIGNAL_FUNC(gtk_main_quit),
+ NULL);
+
+
+ mainPanel = gtk_vbox_new (FALSE, 0);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "mainPanel", mainPanel);
+ gtk_widget_show (mainPanel);
+ gtk_container_add (GTK_CONTAINER (mainWindow), mainPanel);
+
+ headerPanel = gtk_hbox_new (FALSE, 0);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "headerPanel", headerPanel);
+ gtk_widget_show (headerPanel);
+ gtk_box_pack_start (GTK_BOX (mainPanel), headerPanel, FALSE, TRUE, 0);
+
+ handlebox3 = gtk_handle_box_new ();
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "handlebox3", handlebox3);
+ gtk_widget_show (handlebox3);
+ gtk_box_pack_start (GTK_BOX (headerPanel), handlebox3, TRUE, TRUE, 0);
+
+ menubar4 = gtk_menu_bar_new ();
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "menubar4", menubar4);
+ gtk_widget_show (menubar4);
+ gtk_container_add (GTK_CONTAINER (handlebox3), menubar4);
+
+ File = gtk_menu_item_new_with_label ("File");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "File", File);
+ gtk_widget_show (File);
+ gtk_container_add (GTK_CONTAINER (menubar4), File);
+
+ menuFile = gtk_menu_new ();
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "menuFile", menuFile);
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (File), menuFile);
+
+ Exit3 = gtk_menu_item_new_with_label ("Exit");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "Exit3", Exit3);
+ gtk_widget_show (Exit3);
+ gtk_container_add (GTK_CONTAINER (menuFile), Exit3);
+ gtk_signal_connect (GTK_OBJECT (Exit3), "activate",
+ GTK_SIGNAL_FUNC (gtk_main_quit),
+ NULL);
+
+
+ View3 = gtk_menu_item_new_with_label ("View");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "View3", View3);
+ gtk_widget_show (View3);
+ gtk_container_add (GTK_CONTAINER (menubar4), View3);
+ gtk_signal_connect (GTK_OBJECT (View3), "activate",
+ GTK_SIGNAL_FUNC (on_View3_activate),
+ NULL);
+
+ menuView = gtk_menu_new ();
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "menuView", menuView);
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (View3), menuView);
+
+ commentaries = gtk_menu_item_new_with_label ("Commentaries");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "commentaries", commentaries);
+ gtk_widget_show (commentaries);
+
+ menuCommentaries = gtk_menu_new ();
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "menuCommentaries", menuCommentaries);
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (commentaries), menuCommentaries);
+
+ dictionaries = gtk_menu_item_new_with_label ("Dictionaries");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "Dictionaries", dictionaries);
+ gtk_widget_show (dictionaries);
+
+ menuDictionaries = gtk_menu_new ();
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "menuDictionaries", menuDictionaries);
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (dictionaries), menuDictionaries);
+
+
+
+ Help = gtk_menu_item_new_with_label ("Help");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "Help", Help);
+ gtk_widget_show (Help);
+ gtk_container_add (GTK_CONTAINER (menubar4), Help);
+ gtk_signal_connect (GTK_OBJECT (Help), "activate",
+ GTK_SIGNAL_FUNC (on_Help_activate),
+ NULL);
+ gtk_menu_item_right_justify (GTK_MENU_ITEM (Help));
+
+ menuHelp = gtk_menu_new ();
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "menuHelp", menuHelp);
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (Help), menuHelp);
+
+ About = gtk_menu_item_new_with_label ("About");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "About", About);
+ gtk_widget_show (About);
+ gtk_container_add (GTK_CONTAINER (menuHelp), About);
+ gtk_signal_connect (GTK_OBJECT (About), "activate",
+ GTK_SIGNAL_FUNC (on_About_activate),
+ NULL);
+
+ handlebox4 = gtk_handle_box_new ();
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "handlebox4", handlebox4);
+ gtk_widget_show (handlebox4);
+ gtk_box_pack_start (GTK_BOX (headerPanel), handlebox4, TRUE, TRUE, 0);
+
+ hbox6 = gtk_hbox_new (FALSE, 0);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "hbox6", hbox6);
+ gtk_widget_show (hbox6);
+ gtk_container_add (GTK_CONTAINER (handlebox4), hbox6);
+
+ label2 = gtk_label_new ("FreeForm Lookup:");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "label2", label2);
+ gtk_widget_show (label2);
+ gtk_box_pack_start (GTK_BOX (hbox6), label2, FALSE, TRUE, 0);
+ gtk_label_set_justify (GTK_LABEL (label2), GTK_JUSTIFY_RIGHT);
+ gtk_misc_set_padding (GTK_MISC (label2), 2, 0);
+
+ lookupText = gtk_entry_new ();
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "lookupText", lookupText);
+ gtk_widget_show (lookupText);
+ gtk_box_pack_start (GTK_BOX (hbox6), lookupText, FALSE, TRUE, 0);
+ gtk_signal_connect (GTK_OBJECT (lookupText), "changed",
+ GTK_SIGNAL_FUNC (on_lookupText_changed),
+ NULL);
+
+ hbox2 = gtk_hbox_new (FALSE, 0);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "hbox2", hbox2);
+ gtk_widget_show (hbox2);
+ gtk_box_pack_start (GTK_BOX (mainPanel), hbox2, TRUE, TRUE, 0);
+
+
+/*
+ textScrolledWindow = gtk_scrolled_window_new (NULL, NULL);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "textScrolledWindow", textScrolledWindow);
+ gtk_widget_show (textScrolledWindow);
+ gtk_box_pack_start (GTK_BOX (hbox2), textScrolledWindow, FALSE, FALSE, 0);
+*/
+
+ moduleText = gtk_text_new (NULL, NULL);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "moduleText", moduleText);
+ gtk_widget_show (moduleText);
+// gtk_container_add (GTK_CONTAINER (textScrolledWindow), moduleText);
+ gtk_box_pack_start (GTK_BOX (hbox2), moduleText, TRUE, TRUE, 0);
+ gtk_text_set_editable (GTK_TEXT (moduleText), FALSE);
+ gtk_text_set_word_wrap (GTK_TEXT (moduleText), TRUE);
+ gtk_widget_realize (moduleText);
+
+ /* Add a vertical scrollbar to the GtkText widget */
+ textScrollbar = gtk_vscrollbar_new (GTK_TEXT (moduleText)->vadj);
+ gtk_box_pack_start (GTK_BOX (hbox2), textScrollbar, FALSE, FALSE, 0);
+ gtk_widget_show (textScrollbar);
+
+
+/*
+ handlebox5 = gtk_handle_box_new ();
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "handlebox5", handlebox5);
+ gtk_widget_show (handlebox5);
+ gtk_box_pack_start (GTK_BOX (hbox2), handlebox5, FALSE, FALSE, 0);
+ gtk_container_border_width (GTK_CONTAINER (handlebox5), 5);
+*/
+
+ searchPanel = gtk_vbox_new (FALSE, 0);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "searchPanel", searchPanel);
+ gtk_widget_show (searchPanel);
+ gtk_box_pack_start (GTK_BOX (hbox2), searchPanel, FALSE, FALSE, 0);
+// gtk_container_add (GTK_CONTAINER (handlebox5), searchPanel);
+
+ hbox4 = gtk_hbox_new (FALSE, 0);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "hbox4", hbox4);
+ gtk_widget_show (hbox4);
+ gtk_box_pack_start (GTK_BOX (searchPanel), hbox4, FALSE, FALSE, 0);
+
+ searchText = gtk_entry_new ();
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "searchText", searchText);
+ gtk_widget_show (searchText);
+ gtk_box_pack_start (GTK_BOX (hbox4), searchText, TRUE, TRUE, 0);
+
+ searchButton = gtk_button_new_with_label ("Search");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "searchButton", searchButton);
+ gtk_widget_show (searchButton);
+ gtk_box_pack_start (GTK_BOX (hbox4), searchButton, FALSE, TRUE, 0);
+ gtk_signal_connect (GTK_OBJECT (searchButton), "clicked",
+ GTK_SIGNAL_FUNC (on_searchButton_clicked),
+ NULL);
+
+ searchSettingsPanel = gtk_hbox_new (FALSE, 0);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "searchSettingsPanel", searchSettingsPanel);
+ gtk_widget_show (searchSettingsPanel);
+ gtk_box_pack_start (GTK_BOX (searchPanel), searchSettingsPanel, FALSE, FALSE, 0);
+
+ searchTypePanel = gtk_vbox_new (FALSE, 0);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "searchTypePanel", searchTypePanel);
+ gtk_widget_show (searchTypePanel);
+ gtk_box_pack_start (GTK_BOX (searchSettingsPanel), searchTypePanel, FALSE, FALSE, 0);
+
+ multiWordSearch = gtk_radio_button_new_with_label (searchType_group, "Multi Word");
+ searchType_group = gtk_radio_button_group (GTK_RADIO_BUTTON (multiWordSearch));
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "multiWordSearch", multiWordSearch);
+ gtk_widget_show (multiWordSearch);
+ gtk_box_pack_start (GTK_BOX (searchTypePanel), multiWordSearch, FALSE, FALSE, 0);
+
+ phraseSearch = gtk_radio_button_new_with_label (searchType_group, "Exact Phrase");
+ searchType_group = gtk_radio_button_group (GTK_RADIO_BUTTON (phraseSearch));
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "phraseSearch", phraseSearch);
+ gtk_widget_show (phraseSearch);
+ gtk_box_pack_start (GTK_BOX (searchTypePanel), phraseSearch, FALSE, FALSE, 0);
+
+ regexSearch = gtk_radio_button_new_with_label (searchType_group, "Regular Expression");
+ searchType_group = gtk_radio_button_group (GTK_RADIO_BUTTON (regexSearch));
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "regexSearch", regexSearch);
+ gtk_widget_show (regexSearch);
+ gtk_box_pack_start (GTK_BOX (searchTypePanel), regexSearch, FALSE, FALSE, 0);
+
+
+ searchOptionsPanel = gtk_vbox_new (FALSE, 0);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "searchOptionsPanel", searchOptionsPanel);
+ gtk_widget_show (searchOptionsPanel);
+ gtk_box_pack_start (GTK_BOX (searchSettingsPanel), searchOptionsPanel, FALSE, FALSE, 0);
+
+ caseSensitive = gtk_check_button_new_with_label ("Case Sensitive");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "caseSensitive", caseSensitive);
+ gtk_widget_show (caseSensitive);
+ gtk_box_pack_start (GTK_BOX (searchOptionsPanel), caseSensitive, FALSE, FALSE, 0);
+
+ GtkWidget *resultPanel = gtk_hbox_new (FALSE, 0);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "resultPanel", resultPanel);
+ gtk_widget_show (resultPanel);
+ gtk_box_pack_start (GTK_BOX (searchPanel), resultPanel, TRUE, TRUE, 0);
+ resultList = gtk_clist_new(1);
+ gtk_object_set_data(GTK_OBJECT (mainWindow), "resultList", resultList);
+// gtk_clist_set_policy(GTK_CLIST(resultList), GTK_POLICY_AUTOMATIC, 0);
+// gtk_clist_set_border(GTK_CLIST(resultList), GTK_SHADOW_ETCHED_IN);
+ gtk_widget_show (resultList);
+ gtk_box_pack_start (GTK_BOX (resultPanel), resultList, TRUE, TRUE, 0);
+ gtk_signal_connect (GTK_OBJECT (resultList), "select_row",
+ GTK_SIGNAL_FUNC (on_resultList_selection_changed),
+ NULL);
+ /* Add a vertical scrollbar to the GtkCList widget */
+ textScrollbar = gtk_vscrollbar_new (NULL);
+ gtk_clist_set_vadjustment (GTK_CLIST(resultList), gtk_range_get_adjustment(GTK_RANGE(textScrollbar)));
+ gtk_box_pack_start (GTK_BOX (resultPanel), textScrollbar, FALSE, FALSE, 0);
+ gtk_widget_show (textScrollbar);
+
+
+/*
+ statusbar1 = gtk_statusbar_new ();
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "statusbar1", statusbar1);
+ gtk_widget_show (statusbar1);
+ gtk_box_pack_start (GTK_BOX (mainPanel), statusbar1, FALSE, TRUE, 0);
+*/
+
+ arrow1 = gtk_button_new_with_label ("[<]");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "arrow1", arrow1);
+ gtk_widget_show (arrow1);
+ gtk_box_pack_start (GTK_BOX (headerPanel), arrow1, FALSE, FALSE, 0);
+ gtk_signal_connect (GTK_OBJECT (arrow1), "clicked",
+ GTK_SIGNAL_FUNC (on_arrow1_button_press_event),
+ NULL);
+
+ arrow2 = gtk_button_new_with_label ("[>]");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "arrow2", arrow2);
+ gtk_widget_show (arrow2);
+ gtk_box_pack_start (GTK_BOX (headerPanel), arrow2, FALSE, FALSE, 0);
+ gtk_signal_connect (GTK_OBJECT (arrow2), "clicked",
+ GTK_SIGNAL_FUNC (on_arrow2_button_press_event),
+ NULL);
+
+
+ statusbar1 = gtk_label_new ("");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "statusbar1", statusbar1);
+ gtk_widget_show (statusbar1);
+ gtk_box_pack_start (GTK_BOX (mainPanel), statusbar1, FALSE, FALSE, 0);
+ gtk_label_set_justify (GTK_LABEL (statusbar1), GTK_JUSTIFY_LEFT);
+ gtk_misc_set_padding (GTK_MISC (statusbar1), 2, 0);
+
+
+ GTKEntryDisp::__initialize();
+ chapDisplay = new GTKChapDisp(moduleText);
+ entryDisplay = new GTKEntryDisp(moduleText);
+
+ return mainWindow;
+}
+
+void MainWindow::initSWORD() {
+
+ GtkWidget *menuChoice;
+ int viewNumber = 1;
+ char menuName[64];
+ ModMap::iterator it;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ char *font;
+ SWModule *curMod;
+
+/* First, check and see whether SWMgr found any installed books. If not, tell the user what the problem is. */
+/* Print a short notice to stderr, for use when the program is invoked from the command line, */
+/* and also put a bit longer message into the spot where bible text would otherwise show up. */
+/* Then, return out of this function, because there's nothing left to do. */
+
+ if (mainMgr->Modules.empty()==TRUE) {
+ fprintf(stderr,"SWMgr: Can't find 'mods.conf' or 'mods.d'. Try setting:\n\tSWORD_PATH=<directory containing mods.conf>\n\tOr see the README file for a full description of setup options.\n\t");
+
+ gtk_text_set_point(GTK_TEXT(moduleText), 0);
+ gtk_text_forward_delete (GTK_TEXT (moduleText), gtk_text_get_length((GTK_TEXT(moduleText))));
+ int curPos = 0;
+ gtk_text_freeze (GTK_TEXT(moduleText));
+ gtk_text_insert(GTK_TEXT(moduleText), NULL, &moduleText->style->black, NULL, "\nCheatah was unable to find any books installed!\n\n", -1);
+ gtk_text_insert(GTK_TEXT(moduleText), NULL, &moduleText->style->black, NULL, "They should be listed in a configuration file named either: ", -1);
+ gtk_text_insert(GTK_TEXT(moduleText), NULL, &moduleText->style->black, NULL, "'mods.conf' or 'mods.d'. \n\n", -1);
+ gtk_text_insert(GTK_TEXT(moduleText), NULL, &moduleText->style->black, NULL, "Try setting:\n\tSWORD_PATH=<directory containing mods.conf>\n\t",-1);
+ gtk_text_insert(GTK_TEXT(moduleText), NULL, &moduleText->style->black, NULL, "Or see the README file for a full description of setup options.\n", -1);
+ gtk_text_set_point(GTK_TEXT(moduleText), curPos);
+ gtk_text_thaw(GTK_TEXT(moduleText));
+
+ return;
+ }
+
+/*
+* Create filters to use, depending on the needs of the installed modules.
+* Right now, basically just handling GBF files and converting them to plain
+* text for display. So far, I haven't found any modules that specify
+* anything other than GBF, but I've dropped in code to
+* install the thtml to plain filter just in case, since it's available.
+* Question: I'm installing this as a display filter - would it make more
+* sense to install it is a raw filter, so that I could use "plain" as the
+* base for any strip filters we may need? Or is that used for something else,
+* like compression or decyphering locked books?
+*/
+
+ gbftoplain = new GBFPlain();
+ thmlplain = new ThMLPlain();
+
+/*
+* Next, if SWMgr did find some book modules installed , hook them up to any filters needed
+* and set up the menues to reflect them.
+* Pick a default module to show on startup.
+*/
+
+ for (it = mainMgr->Modules.begin(); it != mainMgr->Modules.end(); it++) {
+ curMod = (*it).second;
+ menuChoice = gtk_menu_item_new_with_label (curMod->Name());
+ sprintf(menuName, "viewMod%d", viewNumber++);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), menuName, menuChoice);
+ gtk_widget_show (menuChoice);
+ gtk_signal_connect(GTK_OBJECT (menuChoice), "activate",
+ GTK_SIGNAL_FUNC (on_viewMod_activate),
+ g_strdup(curMod->Name()));
+
+ if ((sit = mainMgr->config->Sections.find(curMod->Name())) != mainMgr->config->Sections.end()) {
+ if ((eit = (*sit).second.find("SourceType")) != (*sit).second.end()) {
+ if (!strcasecmp((*eit).second.c_str(), "GBF")) {
+ curMod->AddRenderFilter(gbftoplain);
+ }
+ else if (!strcasecmp((*eit).second.c_str(), "ThML")) {
+ curMod->AddRenderFilter(thmlplain);
+ }
+ }
+ }
+
+ if (!strcmp((*it).second->Type(), "Biblical Texts")) {
+ gtk_container_add (GTK_CONTAINER (menuView), menuChoice);
+ font = 0;
+ if ((sit = mainMgr->config->Sections.find(curMod->Name())) != mainMgr->config->Sections.end()) {
+ if ((eit = (*sit).second.find("Font")) != (*sit).second.end()) {
+ font = (char *)(*eit).second.c_str();
+ }
+ }
+// CreateTextPane((*it).second, font);
+ curMod->Disp(chapDisplay); // set our GTKChapDisp object up for the diplayer of each Biblical Text module
+ if (!this->curMod) // set currently selected module for app to first module from SWMgr (Bible Texts get first preference
+ this->curMod = curMod;
+ }
+ else {
+ curMod->Disp(entryDisplay); // set our GTKEntryDisp object up for the diplayer of each module other than Biblical Texts
+ if (!strcmp(curMod->Type(), "Commentaries")) {
+ gtk_container_add (GTK_CONTAINER (menuCommentaries), menuChoice);
+ // CreateCommentPane((*it).second);
+ }
+ if (!strcmp(curMod->Type(), "Lexicons / Dictionaries")) {
+ gtk_container_add (GTK_CONTAINER (menuDictionaries), menuChoice);
+ // CreateLDPane((*it).second);
+ }
+ }
+
+
+ }
+ gtk_container_add (GTK_CONTAINER (menuView), commentaries);
+ gtk_container_add (GTK_CONTAINER (menuView), dictionaries);
+
+ if (!this->curMod) // We didn't find a bible text, so set currently selected module for app to first module from SWMgr
+ this->curMod = curMod; // Should be o.k. to do this, because we've already tested to see if SWMgr thinks it found something
+ assert(this->curMod!=NULL);
+ if(this->curMod!=NULL) // Go ahead and display default module
+ lookupTextChanged();
+}
+
+
+void MainWindow::lookupTextChanged() {
+ string keyText;
+ gchar *entryText;
+ char tmpBuf[255];
+
+ entryText = gtk_entry_get_text(GTK_ENTRY(lookupText));
+ keyText = entryText;
+
+ if (curMod) {
+ curMod->SetKey(keyText.c_str());
+ curMod->Display();
+ sprintf(tmpBuf, "%s (%s)", curMod->KeyText(), curMod->Name());
+ gtk_label_set(GTK_LABEL(statusbar1), tmpBuf);
+ }
+}
+
+void MainWindow::viewModActivate(GtkMenuItem *sender, gchar *modName) {
+ ModMap::iterator it;
+
+ it = mainMgr->Modules.find(modName);
+ if (it != mainMgr->Modules.end()) {
+ curMod = (*it).second;
+ lookupTextChanged();
+ }
+ else curMod = 0;
+}
+
+
+void MainWindow::navigateButtonClicked(int direction) {
+ if (curMod) {
+ if (direction)
+ (*curMod)++;
+ else (*curMod)--;
+ (const char *)*curMod; // snap to closest locations
+ const gchar *text = curMod->KeyText();
+ gtk_entry_set_text(GTK_ENTRY(lookupText), text);
+// curMod->Display();
+ }
+}
+
+
+void MainWindow::searchButtonClicked() {
+ string srchText;
+ gchar *entryText;
+ const gchar *resultText;
+ gchar **clistText = (gchar **)&resultText;
+
+
+ gtk_clist_clear(GTK_CLIST(resultList));
+
+ entryText = gtk_entry_get_text(GTK_ENTRY(searchText));
+ srchText = entryText;
+
+ if (curMod) {
+ int searchType = GTK_TOGGLE_BUTTON(regexSearch)->active ? 0 : GTK_TOGGLE_BUTTON(phraseSearch)->active ? -1 : -2;
+ int searchParams = GTK_TOGGLE_BUTTON(caseSensitive)->active ? 0 : REG_ICASE;
+ gtk_clist_freeze(GTK_CLIST(resultList));
+ for (ListKey searchResults = curMod->Search(srchText.c_str(), searchType, searchParams); !searchResults.Error(); searchResults++) {
+ resultText = (const char *)searchResults;
+ gtk_clist_append(GTK_CLIST(resultList), clistText);
+ }
+ gtk_clist_thaw(GTK_CLIST(resultList));
+ }
+}
+
+
+void MainWindow::resultListSelectionChanged(GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data) {
+ gchar *text;
+
+ gtk_clist_get_text(GTK_CLIST(resultList), row, column, &text);
+
+ if (text) {
+ gtk_entry_set_text(GTK_ENTRY(lookupText), text);
+ }
+}
+
+GdkColor GTKEntryDisp::colourBlue;
+GdkColor GTKEntryDisp::colourGreen;
+
+/* */
+/* Note: we have a warning that should be fixed here. GTKEntryDisp::Display() is defined */
+/* as returning char, but doesn't have a return statement */
+/* What was intended - a return code? That doesn't seem right, because those are */
+/* usually int's. But it isn't defined as returning a char*, so it doesn't seem */
+/* likely that it's intended to return the text involved. */
+/* */
+char GTKEntryDisp::Display(SWModule &imodule) {
+ char tmpBuf[255];
+
+ gtk_text_set_point(GTK_TEXT(gtkText), 0);
+ gtk_text_forward_delete (GTK_TEXT (gtkText), gtk_text_get_length((GTK_TEXT(gtkText))));
+ int curPos = 0;
+ (const char *)imodule; // snap to entry
+ gtk_text_freeze (GTK_TEXT(gtkText));
+ sprintf(tmpBuf, "[%s] ", imodule.KeyText());
+ gtk_text_insert(GTK_TEXT(gtkText), NULL, &colourBlue, NULL, tmpBuf, -1);
+ gtk_text_insert(GTK_TEXT(gtkText), NULL, &gtkText->style->black, NULL, (const char *)imodule, -1);
+ gtk_text_set_point(GTK_TEXT(gtkText), curPos);
+ gtk_text_thaw(GTK_TEXT(gtkText));
+}
+
+/* */
+/* Note: we have a warning that should be fixed here. GTKChapDisp::Display() is defined */
+/* as returning char, but doesn't have a return statement. */
+/* What was intended - a return code? That doesn't seem right, because those are */
+/* usually int's. But it isn't defined as returning a char*, so it doesn't seem */
+/* likely that it's intended to return the text involved. */
+/* */
+
+char GTKChapDisp::Display(SWModule &imodule) {
+ char tmpBuf[255];
+
+ gtk_text_set_point(GTK_TEXT(gtkText), 0);
+ gtk_text_forward_delete (GTK_TEXT (gtkText), gtk_text_get_length((GTK_TEXT(gtkText))));
+ VerseKey *key = (VerseKey *)(SWKey *)imodule;
+ int curVerse = key->Verse();
+ int curChapter = key->Chapter();
+ int curBook = key->Book();
+ int curPos = 0;
+ gfloat adjVal;
+ gtk_text_freeze (GTK_TEXT(gtkText));
+ for (key->Verse(1); (key->Book() == curBook && key->Chapter() == curChapter && !imodule.Error()); imodule++) {
+ sprintf(tmpBuf, "%d. ", key->Verse());
+ gtk_text_insert(GTK_TEXT(gtkText), NULL, &colourBlue, NULL, tmpBuf, -1);
+ if (key->Verse() == curVerse) {
+ gtk_text_thaw(GTK_TEXT(gtkText));
+ adjVal = GTK_TEXT(gtkText)->vadj->upper;
+ curPos = gtk_text_get_length(GTK_TEXT(gtkText));
+ gtk_text_insert(GTK_TEXT(gtkText), NULL, &colourGreen, NULL, (const char *)imodule, -1);
+ gtk_text_freeze (GTK_TEXT(gtkText));
+ }
+ else {
+ gtk_text_insert(GTK_TEXT(gtkText), NULL, &gtkText->style->black, NULL, (const char *)imodule, -1);
+ }
+ gtk_text_insert(GTK_TEXT(gtkText), NULL, &gtkText->style->black, NULL, " ", -1);
+ }
+ gtk_text_set_point(GTK_TEXT(gtkText), curPos);
+ gtk_text_thaw(GTK_TEXT(gtkText));
+ adjVal -= (GTK_TEXT(gtkText)->vadj->page_size / 2);
+ gtk_adjustment_set_value(GTK_TEXT(gtkText)->vadj, (adjVal>0)?adjVal:0);
+ key->Verse(1);
+ key->Chapter(1);
+ key->Book(curBook);
+ key->Chapter(curChapter);
+ key->Verse(curVerse);
+}
diff --git a/apps/X11/cheatah/cheatah.h b/apps/X11/cheatah/cheatah.h
new file mode 100644
index 0000000..42fae6d
--- /dev/null
+++ b/apps/X11/cheatah/cheatah.h
@@ -0,0 +1,162 @@
+/* Note: You are free to use whatever license you want.
+ Eventually you will be able to edit it within Glade. */
+
+/* cheatah
+ * Copyright (C) <YEAR> <AUTHORS>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
+#include <gtk/gtk.h>
+#include <swmgr.h>
+#include <swdisp.h>
+
+/*
+ * This function returns a widget in a component created by Glade.
+ * Call it with the toplevel widget in the component (i.e. a window/dialog),
+ * or alternatively any widget in the component, and the name of the widget
+ * you want returned.
+ */
+/* I'm going to try commenting it out - it no longer seems to be used. */
+/* Note: This doesn't seem to have caused any problems so far. */
+/*
+GtkWidget*
+get_widget (GtkWidget *widget,
+ gchar *widget_name);
+*/
+
+ /*
+ * This is an internally used function for setting notebook tabs. It is only
+ * included in this header file so you don't get compilation warnings
+ */
+void
+set_notebook_tab (GtkWidget *notebook,
+ gint page_num,
+ GtkWidget *widget);
+
+GtkWidget* create_mainWindow (void);
+void destroy_mainWindow (void);
+
+class GTKEntryDisp : public SWDisplay {
+protected:
+ GtkWidget *gtkText;
+public:
+ static GdkColor colourGreen;
+ static GdkColor colourBlue;
+ static void __initialize() {
+ GdkColormap *cmap;
+
+ cmap = gdk_colormap_get_system();
+ colourGreen.red = 0;
+ colourGreen.green = 0x00ff;
+ colourGreen.blue = 0xffff;
+ colourBlue.red = 0;
+ colourBlue.green = 0;
+ colourBlue.blue = 0xffff;
+ if (!gdk_color_alloc(cmap, &colourGreen)) {
+ g_error("couldn't allocate colour");
+ }
+ if (!gdk_color_alloc(cmap, &colourBlue)) {
+ g_error("couldn't allocate colour");
+ }
+ }
+ GTKEntryDisp(GtkWidget *gtkText) { this->gtkText = gtkText; }
+ virtual char Display(SWModule &imodule);
+};
+
+class GTKChapDisp : public GTKEntryDisp {
+public:
+ GTKChapDisp(GtkWidget *gtkText) : GTKEntryDisp(gtkText) {}
+ virtual char Display(SWModule &imodule);
+};
+
+class MainWindow {
+ GtkWidget *mainWindow;
+ GtkWidget *mainPanel;
+ GtkWidget *headerPanel;
+ GtkWidget *handlebox3;
+ GtkWidget *menubar4;
+ GtkWidget *File;
+ GtkWidget *menuFile;
+ GtkWidget *Exit3;
+ GtkWidget *View3;
+ GtkWidget *Help;
+ GtkWidget *menuHelp;
+ GtkWidget *menuView;
+ GtkWidget *menuCommentaries;
+ GtkWidget *menuDictionaries;
+ GtkWidget *commentaries;
+ GtkWidget *dictionaries;
+ GtkWidget *About;
+ GtkWidget *handlebox4;
+ GtkWidget *hbox6;
+ GtkWidget *label2;
+ GtkWidget *lookupText;
+ GtkWidget *hbox2;
+ GtkWidget *moduleText;
+ GtkWidget *handlebox5;
+ GtkWidget *searchPanel;
+ GtkWidget *hbox4;
+ GtkWidget *searchText;
+ GtkWidget *searchButton;
+ GtkWidget *searchSettingsPanel;
+ GtkWidget *searchTypePanel;
+ GSList *searchType_group;
+ GtkWidget *regexSearch;
+ GtkWidget *phraseSearch;
+ GtkWidget *multiWordSearch;
+ GtkWidget *searchOptionsPanel;
+ GtkWidget *caseSensitive;
+ GtkWidget *resultList;
+ GtkWidget *statusbar1;
+ GtkWidget *textScrolledWindow;
+ GtkWidget *textScrollbar;
+ GtkWidget *arrow1;
+ GtkWidget *arrow2;
+
+
+ SWMgr *mainMgr;
+ SWModule *curMod;
+ SWDisplay *chapDisplay;
+ SWDisplay *entryDisplay;
+ SWFilter *gbftoplain; // GBF seems to be the most common format
+ SWFilter *thmlplain; // ThML to Plain filter is also available - put it in just in case
+ // Should there be any more added? (Do we need a RWPtoPlain filter?)
+
+public:
+ MainWindow();
+ ~MainWindow();
+ GtkWidget *create();
+ void initSWORD();
+ void lookupTextChanged();
+ void viewModActivate(GtkMenuItem *sender, gchar *modName);
+ void searchButtonClicked();
+ void navigateButtonClicked(int direction);
+ void resultListSelectionChanged(GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data);
+ SWMgr *getSwordManager(void) {return(mainMgr);};
+};
+
+
+extern MainWindow *cheatahWindow;
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/X11/cheatah/cheatsig.cpp b/apps/X11/cheatah/cheatsig.cpp
new file mode 100644
index 0000000..d3646ba
--- /dev/null
+++ b/apps/X11/cheatah/cheatsig.cpp
@@ -0,0 +1,326 @@
+/* Note: You are free to use whatever license you want.
+ Eventually you will be able to edit it within Glade. */
+
+/* cheatah
+ * Copyright (C) <YEAR> <AUTHORS>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
+#include <gtk/gtk.h>
+#include "cheatah.h"
+#include "cheatsig.h"
+
+int
+main (int argc, char *argv[])
+{
+ GtkWidget *mainWindow;
+
+ gtk_set_locale ();
+ gtk_init (&argc, &argv);
+
+ /*
+ * The following code was added by Glade to create one of each component
+ * (except popup menus), just so that you see something after building
+ * the project. Delete any components that you don't want shown initially.
+ */
+ mainWindow = create_mainWindow ();
+ gtk_widget_show (mainWindow);
+
+ gtk_main ();
+
+ destroy_mainWindow();
+ return 0;
+}
+
+
+void
+on_Exit3_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+
+}
+
+
+void
+on_View3_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+
+}
+
+
+void
+on_Help_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+
+}
+
+
+void
+on_viewMod_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+ cheatahWindow->viewModActivate(menuitem, (gchar *)user_data);
+}
+
+
+/*
+* This function is used to do a quick and dirty translation of the formating
+* commands in the module descriptions into reasonable equivalents in
+* plain ascii. (The descriptions look like .rtf-lite, perhaps?)
+* It takes a character pointer to the module description and
+* returns a pointer to a new string that's been fixed up. Ultimately,
+* a better solution should be developed, but this improves the
+* appearance of the descriptions significantly for now.
+*
+* Perhaps this could serve as the basis for a function that would take
+* an input string and a text widget, then insert the string into the
+* widget in a formatted manner (good next step?);
+*/
+
+char *
+str_fixup_format (const char *string)
+{
+ char *strNew;
+ int i,j;
+
+ assert(string!=NULL);
+ strNew = (char *) malloc(strlen(string)); // First, allocate space for the new string
+ assert(strNew!=NULL);
+ if(strNew==NULL) return ((char *)NULL); // Make sure we actually got it
+
+ for (i=0,j=0;i<strlen(string);i++) { // Work through input string char at a time
+ if (string[i]=='\\') { // Found backslash, probably a command
+ if (string[i+1]=='q') { // Looks like an alignment command
+ if(string[i+2]=='c') { // Want to center text
+ strNew[j]='\n'; // - make do with a new line
+ j++;
+ strNew[j]='\t'; // - and a tab for now
+ j++;
+ }
+ i=i+2; // Assume command and skip past q and ?
+ continue;
+ }
+ else { // if string[i+1] != 'q'
+ if(string[i+1]=='p' && string[i+2]=='a' && string[i+3]=='r') { // "\par" or "\pard"command?
+ if(string[i+4]=='d') { // "\pard" command - ignore for now
+ i=i+4; // Skip past the "pard"
+ continue;
+ }
+ else { // "\par" command
+ strNew[j]='\n'; // - use a new line for now
+ j++;
+ i=i+3; // Skip past the "par"
+ continue;
+ }
+ }
+ } // End of "else"
+ } // End of "if(string[i]=='\\')
+ strNew[j]=string[i]; // Don't know what it is, so copy it
+ j++;
+ } // End of "for"
+ strNew[j]='\0'; // Terminate new string
+
+// fprintf(stderr, "strlen(string) = %i, strlen(strNew) = %i \n", strlen(string), strlen(strNew)); // Used for debugging
+// fprintf(stderr, "string = \"%s\"\n",string); // Used for debugging
+// fprintf(stderr, "strNew = \"%s\"\n",strNew); // Used for debugging
+
+ assert(strlen(strNew)<=strlen(string)); // Nothing we have done should have lengthend it
+ return(strNew); // Return fixed-up string
+}
+
+void
+on_About_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+ SWMgr *mainMgr;
+
+ mainMgr=cheatahWindow->getSwordManager();
+ int i;
+ char *tempString;
+ static char *modtypes[] = {"Biblical Texts", "Commentaries", "Lexicons / Dictionaries"};
+ string newtext, tmptext;
+ ModMap::iterator it;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+
+ GtkWidget *dialogAbout;
+ GtkWidget *hBoxModDesc;
+ GtkWidget *textAboutMods;
+ GtkWidget *textScrollbarMods;
+ GtkWidget *hBoxAbout;
+ GtkWidget *textAbout;
+ GtkWidget *textScrollbar;
+ GtkWidget *buttonOK;
+
+ dialogAbout=gtk_dialog_new();
+ gtk_object_set_data (GTK_OBJECT (dialogAbout), "dialogAbout", dialogAbout);
+ gtk_window_set_title (GTK_WINDOW (dialogAbout), "About Cheatah");
+ gtk_window_set_policy (GTK_WINDOW (dialogAbout), FALSE, TRUE, FALSE);
+ gtk_widget_set_usize(GTK_WIDGET(dialogAbout), 360, 360);
+ gtk_window_position(GTK_WINDOW(dialogAbout),GTK_WIN_POS_CENTER);
+
+ buttonOK = gtk_button_new_with_label("O.k.");
+
+/* */
+/* Set it up so that the dialog box and all it's children are automatically */
+/* destroyed when the user is done looking at it. */
+/* Note: Use gtk_signal_connect_object() rather than */
+/* gtk_signal_connect(), because we want the "destroy" */
+/* connected to the dialog box, not just the button. */
+/* */
+ gtk_signal_connect_object(GTK_OBJECT(buttonOK),
+ "clicked",
+ GTK_SIGNAL_FUNC(gtk_widget_destroy),
+ GTK_OBJECT(dialogAbout));
+
+ gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialogAbout)->action_area), buttonOK);
+
+ hBoxModDesc = gtk_hbox_new (FALSE,0);
+ gtk_object_set_data (GTK_OBJECT (dialogAbout), "hBoxModDesc", hBoxModDesc);
+ gtk_box_pack_end (GTK_BOX (GTK_DIALOG(dialogAbout)->vbox), hBoxModDesc, TRUE, TRUE, 0);
+ textAboutMods = gtk_text_new (NULL, NULL);
+ gtk_object_set_data (GTK_OBJECT (dialogAbout), "textAboutMods", textAboutMods);
+ gtk_box_pack_start (GTK_BOX (hBoxModDesc), textAboutMods, TRUE, TRUE, 0);
+ gtk_text_set_editable (GTK_TEXT (textAboutMods), FALSE);
+ gtk_text_set_word_wrap (GTK_TEXT (textAboutMods), TRUE);
+
+ gtk_text_freeze (GTK_TEXT(textAboutMods));
+ gtk_text_set_point(GTK_TEXT(textAboutMods), 0);
+ gtk_text_forward_delete (GTK_TEXT (textAboutMods), gtk_text_get_length((GTK_TEXT(textAboutMods))));
+
+ if (mainMgr->Modules.empty()==TRUE) {
+ gtk_text_freeze (GTK_TEXT(textAboutMods));
+ gtk_text_insert(GTK_TEXT(textAboutMods), NULL, &textAboutMods->style->black, NULL, "\nCheatah was unable to find any books installed!\n\n", -1);
+ gtk_text_insert(GTK_TEXT(textAboutMods), NULL, &textAboutMods->style->black, NULL, "They should be listed in a configuration file named either: ", -1);
+ gtk_text_insert(GTK_TEXT(textAboutMods), NULL, &textAboutMods->style->black, NULL, "'mods.conf' or 'mods.d'. \n\n", -1);
+ gtk_text_insert(GTK_TEXT(textAboutMods), NULL, &textAboutMods->style->black, NULL, "Try setting:\n\tSWORD_PATH=<directory containing mods.conf>\n\t",-1);
+ gtk_text_insert(GTK_TEXT(textAboutMods), NULL, &textAboutMods->style->black, NULL, "Or see the README file for a full description of setup options.\n", -1);
+ }
+ else {
+ gtk_text_insert(GTK_TEXT(textAboutMods), NULL, &textAboutMods->style->black, NULL, "\tInstalled Book Modules", -1);
+ for (i = 0; i < 3; i++) {
+ gtk_text_insert(GTK_TEXT(textAboutMods), NULL, &textAboutMods->style->black, NULL, "\n\n\t", -1);
+ gtk_text_insert(GTK_TEXT(textAboutMods), NULL, &textAboutMods->style->black, NULL, modtypes[i], -1);
+ gtk_text_insert(GTK_TEXT(textAboutMods), NULL, &textAboutMods->style->black, NULL, "\n\n", -1);
+ for (it = mainMgr->Modules.begin(); it != mainMgr->Modules.end(); it++) {
+ if (!strcmp((*it).second->Type(), modtypes[i])) {
+ sit = mainMgr->config->Sections.find((*it).second->Name());
+ if (sit != mainMgr->config->Sections.end()) {
+ gtk_text_insert(GTK_TEXT(textAboutMods), NULL, &textAboutMods->style->black, NULL, (*it).second->Name() ,-1);
+ gtk_text_insert(GTK_TEXT(textAboutMods), NULL, &textAboutMods->style->black, NULL, ": " ,-1);
+ gtk_text_insert(GTK_TEXT(textAboutMods), NULL, &textAboutMods->style->black, NULL, (*it).second->Description() ,-1);
+ gtk_text_insert(GTK_TEXT(textAboutMods), NULL, &textAboutMods->style->black, NULL, "\n\n", -1);
+ eit = (*sit).second.find("About");
+ if (eit != (*sit).second.end()) {
+// gtk_text_insert(GTK_TEXT(textAboutMods), NULL, &textAboutMods->style->black, NULL, (*eit).second.c_str() ,-1);
+ tempString=str_fixup_format((*eit).second.c_str() );
+ gtk_text_insert(GTK_TEXT(textAboutMods), NULL, &textAboutMods->style->black, NULL, tempString, -1);
+ free(tempString);
+ gtk_text_insert(GTK_TEXT(textAboutMods), NULL, &textAboutMods->style->black, NULL, "\n\n" ,-1);
+ }
+// eit = (*sit).second.find("SourceType");
+// if (eit != (*sit).second.end()) {
+// fprintf(stderr,"SourceType: %s\n", (*eit).second.c_str() );
+// }
+ }
+ }
+ }
+ }
+ }
+
+ gtk_text_set_point(GTK_TEXT(textAboutMods), 0);
+ gtk_text_thaw(GTK_TEXT(textAboutMods));
+
+ /* Add a vertical scrollbar to the textAboutMods GtkText widget */
+ textScrollbarMods = gtk_vscrollbar_new (GTK_TEXT (textAboutMods)->vadj);
+ gtk_box_pack_end (GTK_BOX (hBoxModDesc), textScrollbarMods, FALSE, FALSE, 0);
+
+ hBoxAbout = gtk_hbox_new (FALSE,0);
+ gtk_object_set_data (GTK_OBJECT (dialogAbout), "hBoxAbout", hBoxAbout);
+ gtk_box_pack_start (GTK_BOX (GTK_DIALOG(dialogAbout)->vbox), hBoxAbout, FALSE, TRUE, 0);
+ textAbout = gtk_text_new (NULL, NULL);
+ gtk_object_set_data (GTK_OBJECT (dialogAbout), "textAbout", textAbout);
+ gtk_box_pack_start (GTK_BOX (hBoxAbout), textAbout, TRUE, TRUE, 0);
+ gtk_text_set_editable (GTK_TEXT (textAbout), FALSE);
+ gtk_text_set_word_wrap (GTK_TEXT (textAbout), TRUE);
+
+ gtk_text_freeze (GTK_TEXT(textAbout));
+ gtk_text_set_point(GTK_TEXT(textAbout), 0);
+ gtk_text_forward_delete (GTK_TEXT (textAbout), gtk_text_get_length((GTK_TEXT(textAbout))));
+ gtk_text_insert(GTK_TEXT(textAbout), NULL, &textAbout->style->black, NULL, "Cheatah is a quick and dirty GTK/Linux front end to the Sword software.", -1);
+ gtk_text_insert(GTK_TEXT(textAbout), NULL, &textAbout->style->black, NULL, "\n\nSword is developed by the CrossWire Software & Bible Society:",-1);
+ gtk_text_insert(GTK_TEXT(textAbout), NULL, &textAbout->style->black, NULL, "\n\tP. O. Box 2528",-1);
+ gtk_text_insert(GTK_TEXT(textAbout), NULL, &textAbout->style->black, NULL, "\n\tTempe, AZ 85280-2528 ", -1);
+ gtk_text_insert(GTK_TEXT(textAbout), NULL, &textAbout->style->black, NULL, "\n\thttp://www.crosswire.org ", -1);
+ gtk_text_insert(GTK_TEXT(textAbout), NULL, &textAbout->style->black, NULL, "\n\nThis software is provided free for the study of God and His Word.",-1);
+
+ gtk_text_set_point(GTK_TEXT(textAbout), 0);
+ gtk_text_thaw(GTK_TEXT(textAbout));
+
+ /* Add a vertical scrollbar to the textAbout GtkText widget */
+ textScrollbar = gtk_vscrollbar_new (GTK_TEXT (textAbout)->vadj);
+ gtk_box_pack_end (GTK_BOX (hBoxAbout), textScrollbar, FALSE, FALSE, 0);
+
+ gtk_widget_show_all(dialogAbout); // "show_all" makes all the children visable too
+
+/* */
+/* No need to clean up the various widgets - we've arranged */
+/* for that to happen automatically when the user presses the */
+/* "o.k." button. */
+/* */
+
+ return;
+}
+
+
+void
+on_lookupText_changed (GtkEditable *editable,
+ gpointer user_data)
+{
+ cheatahWindow->lookupTextChanged();
+}
+
+
+void
+on_searchButton_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ cheatahWindow->searchButtonClicked();
+}
+
+
+void
+on_resultList_selection_changed (GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data)
+{
+ cheatahWindow->resultListSelectionChanged(clist, row, column, event, data);
+}
+
+
+void on_arrow1_button_press_event(GtkButton *button, gpointer user_data) {
+ cheatahWindow->navigateButtonClicked(0);
+}
+
+
+void on_arrow2_button_press_event(GtkButton *button, gpointer user_data) {
+ cheatahWindow->navigateButtonClicked(1);
+}
+
+
+
+
+
diff --git a/apps/X11/cheatah/cheatsig.h b/apps/X11/cheatah/cheatsig.h
new file mode 100644
index 0000000..9c9fea4
--- /dev/null
+++ b/apps/X11/cheatah/cheatsig.h
@@ -0,0 +1,68 @@
+/* Note: You are free to use whatever license you want.
+ Eventually you will be able to edit it within Glade. */
+
+/* cheatah
+ * Copyright (C) <YEAR> <AUTHORS>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
+#include <gtk/gtk.h>
+
+
+void
+on_Exit3_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_View3_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_Help_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_viewMod_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+char *
+str_fixup_format (const char *string);
+
+void
+on_About_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_lookupText_changed (GtkEditable *editable,
+ gpointer user_data);
+
+void
+on_searchButton_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_resultList_selection_changed (GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data);
+
+void
+on_arrow1_button_press_event (GtkButton *button,
+ gpointer user_data);
+
+void
+on_arrow2_button_press_event (GtkButton *button,
+ gpointer user_data);
+
+
+
diff --git a/apps/X11/cheatah/configure b/apps/X11/cheatah/configure
new file mode 100644
index 0000000..6bd577d
--- /dev/null
+++ b/apps/X11/cheatah/configure
@@ -0,0 +1,1707 @@
+#! /bin/sh
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 2.13
+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+# Defaults:
+ac_help=
+ac_default_prefix=/usr/local
+# Any additions from configure.in:
+ac_help="$ac_help
+ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)"
+ac_help="$ac_help
+ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)"
+ac_help="$ac_help
+ --disable-gtktest Do not try to compile and run a test GTK program"
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+# Initialize some other variables.
+subdirs=
+MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+# Maximum number of lines to put in a shell here document.
+ac_max_here_lines=12
+
+ac_prev=
+for ac_option
+do
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ case "$ac_option" in
+ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) ac_optarg= ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case "$ac_option" in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir="$ac_optarg" ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build="$ac_optarg" ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file="$ac_optarg" ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir="$ac_optarg" ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ eval "enable_${ac_feature}=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix="$ac_optarg" ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he)
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat << EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+ --cache-file=FILE cache test results in FILE
+ --help print this message
+ --no-create do not create output files
+ --quiet, --silent do not print \`checking...' messages
+ --version print the version of autoconf that created configure
+Directory and file names:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [same as prefix]
+ --bindir=DIR user executables in DIR [EPREFIX/bin]
+ --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
+ --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
+ --datadir=DIR read-only architecture-independent data in DIR
+ [PREFIX/share]
+ --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data in DIR
+ [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
+ --libdir=DIR object code libraries in DIR [EPREFIX/lib]
+ --includedir=DIR C header files in DIR [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
+ --infodir=DIR info documentation in DIR [PREFIX/info]
+ --mandir=DIR man documentation in DIR [PREFIX/man]
+ --srcdir=DIR find the sources in DIR [configure dir or ..]
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM
+ run sed PROGRAM on installed program names
+EOF
+ cat << EOF
+Host type:
+ --build=BUILD configure for building on BUILD [BUILD=HOST]
+ --host=HOST configure for HOST [guessed]
+ --target=TARGET configure for TARGET [TARGET=HOST]
+Features and packages:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --x-includes=DIR X include files are in DIR
+ --x-libraries=DIR X library files are in DIR
+EOF
+ if test -n "$ac_help"; then
+ echo "--enable and --with options recognized:$ac_help"
+ fi
+ exit 0 ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host="$ac_optarg" ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir="$ac_optarg" ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir="$ac_optarg" ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir="$ac_optarg" ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir="$ac_optarg" ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir="$ac_optarg" ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir="$ac_optarg" ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir="$ac_optarg" ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix="$ac_optarg" ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix="$ac_optarg" ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix="$ac_optarg" ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name="$ac_optarg" ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir="$ac_optarg" ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir="$ac_optarg" ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site="$ac_optarg" ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir="$ac_optarg" ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir="$ac_optarg" ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target="$ac_optarg" ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers)
+ echo "configure generated by autoconf version 2.13"
+ exit 0 ;;
+
+ -with-* | --with-*)
+ ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_${ac_package}='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ eval "with_${ac_package}=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes="$ac_optarg" ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries="$ac_optarg" ;;
+
+ -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+ ;;
+
+ *)
+ if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+ echo "configure: warning: $ac_option: invalid host type" 1>&2
+ fi
+ if test "x$nonopt" != xNONE; then
+ { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+ fi
+ nonopt="$ac_option"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 6 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+ exec 6>/dev/null
+else
+ exec 6>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+ case "$ac_arg" in
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c) ;;
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+ ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+ esac
+done
+
+# NLS nuisances.
+# Only set these to C if already set. These must not be set unconditionally
+# because not all systems understand e.g. LANG=C (notably SCO).
+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+# Non-C LC_CTYPE values break the ctype check.
+if test "${LANG+set}" = set; then LANG=C; export LANG; fi
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo > confdefs.h
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=cheatah.cpp
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+ ac_prog=$0
+ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+ else
+ { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+ fi
+fi
+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ echo "loading site script $ac_site_file"
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ echo "loading cache $cache_file"
+ . $cache_file
+else
+ echo "creating cache $cache_file"
+ > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+ac_exeext=
+ac_objext=o
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+else
+ ac_n= ac_c='\c' ac_t=
+fi
+
+
+
+
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+fi
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+echo "configure:564: checking for a BSD compatible install" >&5
+if test -z "$INSTALL"; then
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
+ for ac_dir in $PATH; do
+ # Account for people who put trailing slashes in PATH elements.
+ case "$ac_dir/" in
+ /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ if test -f $ac_dir/$ac_prog; then
+ if test $ac_prog = install &&
+ grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ else
+ ac_cv_path_install="$ac_dir/$ac_prog -c"
+ break 2
+ fi
+ fi
+ done
+ ;;
+ esac
+ done
+ IFS="$ac_save_IFS"
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL="$ac_cv_path_install"
+ else
+ # As a last resort, use the slow shell script. We don't cache a
+ # path for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the path is relative.
+ INSTALL="$ac_install_sh"
+ fi
+fi
+echo "$ac_t""$INSTALL" 1>&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
+echo "configure:617: checking whether build environment is sane" >&5
+# Just in case
+sleep 1
+echo timestamp > conftestfile
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t $srcdir/configure conftestfile`
+ fi
+ if test "$*" != "X $srcdir/configure conftestfile" \
+ && test "$*" != "X conftestfile $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ { echo "configure: error: ls -t appears to fail. Make sure there is not a broken
+alias in your environment" 1>&2; exit 1; }
+ fi
+
+ test "$2" = conftestfile
+ )
+then
+ # Ok.
+ :
+else
+ { echo "configure: error: newly created file is older than distributed files!
+Check your system clock" 1>&2; exit 1; }
+fi
+rm -f conftest*
+echo "$ac_t""yes" 1>&6
+if test "$program_transform_name" = s,x,x,; then
+ program_transform_name=
+else
+ # Double any \ or $. echo might interpret backslashes.
+ cat <<\EOF_SED > conftestsed
+s,\\,\\\\,g; s,\$,$$,g
+EOF_SED
+ program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
+ rm -f conftestsed
+fi
+test "$program_prefix" != NONE &&
+ program_transform_name="s,^,${program_prefix},; $program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
+
+# sed with no file args requires a program.
+test "$program_transform_name" = "" && program_transform_name="s,x,x,"
+
+echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
+echo "configure:674: checking whether ${MAKE-make} sets \${MAKE}" >&5
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftestmake <<\EOF
+all:
+ @echo 'ac_maketemp="${MAKE}"'
+EOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+ eval ac_cv_prog_make_${ac_make}_set=yes
+else
+ eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftestmake
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ SET_MAKE=
+else
+ echo "$ac_t""no" 1>&6
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+
+PACKAGE=cheatah
+
+VERSION=0.1
+
+if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
+ { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
+fi
+cat >> confdefs.h <<EOF
+#define PACKAGE "$PACKAGE"
+EOF
+
+cat >> confdefs.h <<EOF
+#define VERSION "$VERSION"
+EOF
+
+
+
+missing_dir=`cd $ac_aux_dir && pwd`
+echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
+echo "configure:720: checking for working aclocal" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if (aclocal --version) < /dev/null > /dev/null 2>&1; then
+ ACLOCAL=aclocal
+ echo "$ac_t""found" 1>&6
+else
+ ACLOCAL="$missing_dir/missing aclocal"
+ echo "$ac_t""missing" 1>&6
+fi
+
+echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
+echo "configure:733: checking for working autoconf" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if (autoconf --version) < /dev/null > /dev/null 2>&1; then
+ AUTOCONF=autoconf
+ echo "$ac_t""found" 1>&6
+else
+ AUTOCONF="$missing_dir/missing autoconf"
+ echo "$ac_t""missing" 1>&6
+fi
+
+echo $ac_n "checking for working automake""... $ac_c" 1>&6
+echo "configure:746: checking for working automake" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if (automake --version) < /dev/null > /dev/null 2>&1; then
+ AUTOMAKE=automake
+ echo "$ac_t""found" 1>&6
+else
+ AUTOMAKE="$missing_dir/missing automake"
+ echo "$ac_t""missing" 1>&6
+fi
+
+echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
+echo "configure:759: checking for working autoheader" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if (autoheader --version) < /dev/null > /dev/null 2>&1; then
+ AUTOHEADER=autoheader
+ echo "$ac_t""found" 1>&6
+else
+ AUTOHEADER="$missing_dir/missing autoheader"
+ echo "$ac_t""missing" 1>&6
+fi
+
+echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
+echo "configure:772: checking for working makeinfo" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
+ MAKEINFO=makeinfo
+ echo "$ac_t""found" 1>&6
+else
+ MAKEINFO="$missing_dir/missing makeinfo"
+ echo "$ac_t""missing" 1>&6
+fi
+
+
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:789: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_CC="gcc"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:819: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_prog_rejected=no
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# -gt 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ set dummy "$ac_dir/$ac_word" "$@"
+ shift
+ ac_cv_prog_CC="$@"
+ fi
+fi
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ if test -z "$CC"; then
+ case "`uname -s`" in
+ *win32* | *WIN32*)
+ # Extract the first word of "cl", so it can be a program name with args.
+set dummy cl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:870: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_CC="cl"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+ ;;
+ esac
+ fi
+ test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:902: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+cat > conftest.$ac_ext << EOF
+
+#line 913 "configure"
+#include "confdefs.h"
+
+main(){return(0);}
+EOF
+if { (eval echo configure:918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ ac_cv_prog_cc_works=yes
+ # If we can't run a trivial program, we are probably using a cross compiler.
+ if (./conftest; exit) 2>/dev/null; then
+ ac_cv_prog_cc_cross=no
+ else
+ ac_cv_prog_cc_cross=yes
+ fi
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ ac_cv_prog_cc_works=no
+fi
+rm -fr conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
+if test $ac_cv_prog_cc_works = no; then
+ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+fi
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:944: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+echo "configure:949: checking whether we are using GNU C" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.c <<EOF
+#ifdef __GNUC__
+ yes;
+#endif
+EOF
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:958: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+ ac_cv_prog_gcc=yes
+else
+ ac_cv_prog_gcc=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+
+if test $ac_cv_prog_gcc = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+
+ac_test_CFLAGS="${CFLAGS+set}"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS=
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:977: checking whether ${CC-cc} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+ ac_cv_prog_cc_g=yes
+else
+ ac_cv_prog_cc_g=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS="$ac_save_CFLAGS"
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+
+
+# Check whether --with-gtk-prefix or --without-gtk-prefix was given.
+if test "${with_gtk_prefix+set}" = set; then
+ withval="$with_gtk_prefix"
+ gtk_config_prefix="$withval"
+else
+ gtk_config_prefix=""
+fi
+
+# Check whether --with-gtk-exec-prefix or --without-gtk-exec-prefix was given.
+if test "${with_gtk_exec_prefix+set}" = set; then
+ withval="$with_gtk_exec_prefix"
+ gtk_config_exec_prefix="$withval"
+else
+ gtk_config_exec_prefix=""
+fi
+
+# Check whether --enable-gtktest or --disable-gtktest was given.
+if test "${enable_gtktest+set}" = set; then
+ enableval="$enable_gtktest"
+ :
+else
+ enable_gtktest=yes
+fi
+
+
+ for module in .
+ do
+ case "$module" in
+ gthread)
+ gtk_config_args="$gtk_config_args gthread"
+ ;;
+ esac
+ done
+
+ if test x$gtk_config_exec_prefix != x ; then
+ gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
+ if test x${GTK_CONFIG+set} != xset ; then
+ GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
+ fi
+ fi
+ if test x$gtk_config_prefix != x ; then
+ gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
+ if test x${GTK_CONFIG+set} != xset ; then
+ GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
+ fi
+ fi
+
+ # Extract the first word of "gtk-config", so it can be a program name with args.
+set dummy gtk-config; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1059: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_GTK_CONFIG'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$GTK_CONFIG" in
+ /*)
+ ac_cv_path_GTK_CONFIG="$GTK_CONFIG" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_GTK_CONFIG="$GTK_CONFIG" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_GTK_CONFIG="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_GTK_CONFIG" && ac_cv_path_GTK_CONFIG="no"
+ ;;
+esac
+fi
+GTK_CONFIG="$ac_cv_path_GTK_CONFIG"
+if test -n "$GTK_CONFIG"; then
+ echo "$ac_t""$GTK_CONFIG" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ min_gtk_version=1.2.0
+ echo $ac_n "checking for GTK - version >= $min_gtk_version""... $ac_c" 1>&6
+echo "configure:1094: checking for GTK - version >= $min_gtk_version" >&5
+ no_gtk=""
+ if test "$GTK_CONFIG" = "no" ; then
+ no_gtk=yes
+ else
+ GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
+ GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
+ gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
+ gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
+ gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
+ if test "x$enable_gtktest" = "xyes" ; then
+ ac_save_CFLAGS="$CFLAGS"
+ ac_save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $GTK_CFLAGS"
+ LIBS="$GTK_LIBS $LIBS"
+ rm -f conf.gtktest
+ if test "$cross_compiling" = yes; then
+ echo $ac_n "cross compiling; assumed OK... $ac_c"
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1117 "configure"
+#include "confdefs.h"
+
+#include <gtk/gtk.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+int
+main ()
+{
+ int major, minor, micro;
+ char *tmp_version;
+
+ system ("touch conf.gtktest");
+
+ /* HP/UX 9 (%@#!) writes to sscanf strings */
+ tmp_version = g_strdup("$min_gtk_version");
+ if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+ printf("%s, bad version string\n", "$min_gtk_version");
+ exit(1);
+ }
+
+ if ((gtk_major_version != $gtk_config_major_version) ||
+ (gtk_minor_version != $gtk_config_minor_version) ||
+ (gtk_micro_version != $gtk_config_micro_version))
+ {
+ printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
+ $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
+ gtk_major_version, gtk_minor_version, gtk_micro_version);
+ printf ("*** was found! If gtk-config was correct, then it is best\n");
+ printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
+ printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
+ printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
+ printf("*** required on your system.\n");
+ printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
+ printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
+ printf("*** before re-running configure\n");
+ }
+#if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
+ else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
+ (gtk_minor_version != GTK_MINOR_VERSION) ||
+ (gtk_micro_version != GTK_MICRO_VERSION))
+ {
+ printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
+ GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
+ printf("*** library (version %d.%d.%d)\n",
+ gtk_major_version, gtk_minor_version, gtk_micro_version);
+ }
+#endif /* defined (GTK_MAJOR_VERSION) ... */
+ else
+ {
+ if ((gtk_major_version > major) ||
+ ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
+ ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
+ {
+ return 0;
+ }
+ else
+ {
+ printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
+ gtk_major_version, gtk_minor_version, gtk_micro_version);
+ printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
+ major, minor, micro);
+ printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
+ printf("***\n");
+ printf("*** If you have already installed a sufficiently new version, this error\n");
+ printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
+ printf("*** being found. The easiest way to fix this is to remove the old version\n");
+ printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
+ printf("*** correct copy of gtk-config. (In this case, you will have to\n");
+ printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
+ printf("*** so that the correct libraries are found at run-time))\n");
+ }
+ }
+ return 1;
+}
+
+EOF
+if { (eval echo configure:1195: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ :
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ no_gtk=yes
+fi
+rm -fr conftest*
+fi
+
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ if test "x$no_gtk" = x ; then
+ echo "$ac_t""yes" 1>&6
+ LIBS="$LIBS $GTK_LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS"
+ else
+ echo "$ac_t""no" 1>&6
+ if test "$GTK_CONFIG" = "no" ; then
+ echo "*** The gtk-config script installed by GTK could not be found"
+ echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
+ echo "*** your path, or set the GTK_CONFIG environment variable to the"
+ echo "*** full path to gtk-config."
+ else
+ if test -f conf.gtktest ; then
+ :
+ else
+ echo "*** Could not run GTK test program, checking why..."
+ CFLAGS="$CFLAGS $GTK_CFLAGS"
+ LIBS="$LIBS $GTK_LIBS"
+ cat > conftest.$ac_ext <<EOF
+#line 1229 "configure"
+#include "confdefs.h"
+
+#include <gtk/gtk.h>
+#include <stdio.h>
+
+int main() {
+ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version));
+; return 0; }
+EOF
+if { (eval echo configure:1239: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ echo "*** The test program compiled, but did not run. This usually means"
+ echo "*** that the run-time linker is not finding GTK or finding the wrong"
+ echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
+ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+ echo "*** to the installed location Also, make sure you have run ldconfig if that"
+ echo "*** is required on your system"
+ echo "***"
+ echo "*** If you have an old version installed, it is best to remove it, although"
+ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
+ echo "***"
+ echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
+ echo "*** came with the system with the command"
+ echo "***"
+ echo "*** rpm --erase --nodeps gtk gtk-devel"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ echo "*** The test program failed to compile or link. See the file config.log for the"
+ echo "*** exact error that occured. This usually means GTK was incorrectly installed"
+ echo "*** or that you have moved GTK since it was installed. In the latter case, you"
+ echo "*** may want to edit the gtk-config script: $GTK_CONFIG"
+fi
+rm -f conftest*
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ GTK_CFLAGS=""
+ GTK_LIBS=""
+ { echo "configure: error: Cannot find GTK: Is gtk-config in path?" 1>&2; exit 1; }
+ fi
+
+
+ rm -f conf.gtktest
+
+
+for ac_prog in $CCC c++ g++ gcc CC cxx cc++ cl
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1283: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CXX"; then
+ ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_CXX="$ac_prog"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+CXX="$ac_cv_prog_CXX"
+if test -n "$CXX"; then
+ echo "$ac_t""$CXX" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+test -n "$CXX" && break
+done
+test -n "$CXX" || CXX="gcc"
+
+
+echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:1315: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
+
+ac_ext=C
+# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cxx_cross
+
+cat > conftest.$ac_ext << EOF
+
+#line 1326 "configure"
+#include "confdefs.h"
+
+int main(){return(0);}
+EOF
+if { (eval echo configure:1331: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ ac_cv_prog_cxx_works=yes
+ # If we can't run a trivial program, we are probably using a cross compiler.
+ if (./conftest; exit) 2>/dev/null; then
+ ac_cv_prog_cxx_cross=no
+ else
+ ac_cv_prog_cxx_cross=yes
+ fi
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ ac_cv_prog_cxx_works=no
+fi
+rm -fr conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo "$ac_t""$ac_cv_prog_cxx_works" 1>&6
+if test $ac_cv_prog_cxx_works = no; then
+ { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; }
+fi
+echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:1357: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6
+cross_compiling=$ac_cv_prog_cxx_cross
+
+echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
+echo "configure:1362: checking whether we are using GNU C++" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.C <<EOF
+#ifdef __GNUC__
+ yes;
+#endif
+EOF
+if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1371: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+ ac_cv_prog_gxx=yes
+else
+ ac_cv_prog_gxx=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gxx" 1>&6
+
+if test $ac_cv_prog_gxx = yes; then
+ GXX=yes
+else
+ GXX=
+fi
+
+ac_test_CXXFLAGS="${CXXFLAGS+set}"
+ac_save_CXXFLAGS="$CXXFLAGS"
+CXXFLAGS=
+echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
+echo "configure:1390: checking whether ${CXX-g++} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ echo 'void f(){}' > conftest.cc
+if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then
+ ac_cv_prog_cxx_g=yes
+else
+ ac_cv_prog_cxx_g=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6
+if test "$ac_test_CXXFLAGS" = set; then
+ CXXFLAGS="$ac_save_CXXFLAGS"
+elif test $ac_cv_prog_cxx_g = yes; then
+ if test "$GXX" = yes; then
+ CXXFLAGS="-g -O2"
+ else
+ CXXFLAGS="-g"
+ fi
+else
+ if test "$GXX" = yes; then
+ CXXFLAGS="-O2"
+ else
+ CXXFLAGS=
+ fi
+fi
+
+
+ac_ext=C
+# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cxx_cross
+
+LIBS="$LIBS -L../../../lib -lsword -lz"
+if test "x$GCC" = "xyes"; then
+ if test -z "`echo "$CFLAGS" | grep "\-Wall" 2> /dev/null`" ; then
+ CFLAGS="$CFLAGS -Wall"
+ fi
+fi
+
+trap '' 1 2 15
+cat > confcache <<\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs. It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already. You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2>&1 |
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote substitution
+ # turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ -e "s/'/'\\\\''/g" \
+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+ ;;
+ esac >> confcache
+if cmp -s $cache_file confcache; then
+ :
+else
+ if test -w $cache_file; then
+ echo "updating cache $cache_file"
+ cat confcache > $cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+fi
+rm -f confcache
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+cat > conftest.defs <<\EOF
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
+s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
+s%\[%\\&%g
+s%\]%\\&%g
+s%\$%$$%g
+EOF
+DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+rm -f conftest.defs
+
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#! /bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+ case "\$ac_option" in
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+ echo "$CONFIG_STATUS generated by autoconf version 2.13"
+ exit 0 ;;
+ -help | --help | --hel | --he | --h)
+ echo "\$ac_cs_usage"; exit 0 ;;
+ *) echo "\$ac_cs_usage"; exit 1 ;;
+ esac
+done
+
+ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
+
+trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+$ac_vpsub
+$extrasub
+s%@SHELL@%$SHELL%g
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@bindir@%$bindir%g
+s%@sbindir@%$sbindir%g
+s%@libexecdir@%$libexecdir%g
+s%@datadir@%$datadir%g
+s%@sysconfdir@%$sysconfdir%g
+s%@sharedstatedir@%$sharedstatedir%g
+s%@localstatedir@%$localstatedir%g
+s%@libdir@%$libdir%g
+s%@includedir@%$includedir%g
+s%@oldincludedir@%$oldincludedir%g
+s%@infodir@%$infodir%g
+s%@mandir@%$mandir%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@PACKAGE@%$PACKAGE%g
+s%@VERSION@%$VERSION%g
+s%@ACLOCAL@%$ACLOCAL%g
+s%@AUTOCONF@%$AUTOCONF%g
+s%@AUTOMAKE@%$AUTOMAKE%g
+s%@AUTOHEADER@%$AUTOHEADER%g
+s%@MAKEINFO@%$MAKEINFO%g
+s%@SET_MAKE@%$SET_MAKE%g
+s%@CC@%$CC%g
+s%@GTK_CONFIG@%$GTK_CONFIG%g
+s%@GTK_CFLAGS@%$GTK_CFLAGS%g
+s%@GTK_LIBS@%$GTK_LIBS%g
+s%@CXX@%$CXX%g
+
+CEOF
+EOF
+
+cat >> $CONFIG_STATUS <<\EOF
+
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+ else
+ sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+ fi
+ if test ! -s conftest.s$ac_file; then
+ ac_more_lines=false
+ rm -f conftest.s$ac_file
+ else
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f conftest.s$ac_file"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+ fi
+ ac_file=`expr $ac_file + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_cmds`
+ fi
+done
+if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+fi
+EOF
+
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+ else
+ ac_dir_suffix= ac_dots=
+ fi
+
+ case "$ac_given_srcdir" in
+ .) srcdir=.
+ if test -z "$ac_dots"; then top_srcdir=.
+ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+ /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+ *) # Relative path.
+ srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+ top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+ case "$ac_given_INSTALL" in
+ [/$]*) INSTALL="$ac_given_INSTALL" ;;
+ *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+ esac
+
+ echo creating "$ac_file"
+ rm -f "$ac_file"
+ configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+ case "$ac_file" in
+ *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+ *) ac_comsub= ;;
+ esac
+
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+fi; done
+rm -f conftest.s*
+
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
diff --git a/apps/X11/cheatah/configure.in b/apps/X11/cheatah/configure.in
new file mode 100644
index 0000000..b067a5f
--- /dev/null
+++ b/apps/X11/cheatah/configure.in
@@ -0,0 +1,25 @@
+dnl Process this file with autoconf to produce a configure script.
+
+AC_INIT(cheatah.cpp)
+
+
+AM_INIT_AUTOMAKE(cheatah, 0.1)
+
+AC_PROG_CC
+
+AM_PATH_GTK(1.2.0,
+ [LIBS="$LIBS $GTK_LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS"],
+ AC_MSG_ERROR(Cannot find GTK: Is gtk-config in path?))
+
+AC_PROG_CXX
+
+AC_LANG_CPLUSPLUS
+LIBS="$LIBS -L../../../lib -lsword -lz"
+dnl Only use -Wall if we have gcc
+if test "x$GCC" = "xyes"; then
+ if test -z "`echo "$CFLAGS" | grep "\-Wall" 2> /dev/null`" ; then
+ CFLAGS="$CFLAGS -Wall"
+ fi
+fi
+
+AC_OUTPUT(Makefile)
diff --git a/apps/X11/cheatah/install-sh b/apps/X11/cheatah/install-sh
new file mode 100644
index 0000000..e843669
--- /dev/null
+++ b/apps/X11/cheatah/install-sh
@@ -0,0 +1,250 @@
+#!/bin/sh
+#
+# install - install a program, script, or datafile
+# This comes from X11R5 (mit/util/scripts/install.sh).
+#
+# Copyright 1991 by the Massachusetts Institute of Technology
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of M.I.T. not be used in advertising or
+# publicity pertaining to distribution of the software without specific,
+# written prior permission. M.I.T. makes no representations about the
+# suitability of this software for any purpose. It is provided "as is"
+# without express or implied warranty.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch. It can only install one file at a time, a restriction
+# shared with many OS's install programs.
+
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+transformbasename=""
+transform_arg=""
+instcmd="$mvprog"
+chmodcmd="$chmodprog 0755"
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+dst=""
+dir_arg=""
+
+while [ x"$1" != x ]; do
+ case $1 in
+ -c) instcmd="$cpprog"
+ shift
+ continue;;
+
+ -d) dir_arg=true
+ shift
+ continue;;
+
+ -m) chmodcmd="$chmodprog $2"
+ shift
+ shift
+ continue;;
+
+ -o) chowncmd="$chownprog $2"
+ shift
+ shift
+ continue;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+ shift
+ shift
+ continue;;
+
+ -s) stripcmd="$stripprog"
+ shift
+ continue;;
+
+ -t=*) transformarg=`echo $1 | sed 's/-t=//'`
+ shift
+ continue;;
+
+ -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
+ shift
+ continue;;
+
+ *) if [ x"$src" = x ]
+ then
+ src=$1
+ else
+ # this colon is to work around a 386BSD /bin/sh bug
+ :
+ dst=$1
+ fi
+ shift
+ continue;;
+ esac
+done
+
+if [ x"$src" = x ]
+then
+ echo "install: no input file specified"
+ exit 1
+else
+ true
+fi
+
+if [ x"$dir_arg" != x ]; then
+ dst=$src
+ src=""
+
+ if [ -d $dst ]; then
+ instcmd=:
+ else
+ instcmd=mkdir
+ fi
+else
+
+# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
+# might cause directories to be created, which would be especially bad
+# if $src (and thus $dsttmp) contains '*'.
+
+ if [ -f $src -o -d $src ]
+ then
+ true
+ else
+ echo "install: $src does not exist"
+ exit 1
+ fi
+
+ if [ x"$dst" = x ]
+ then
+ echo "install: no destination specified"
+ exit 1
+ else
+ true
+ fi
+
+# If destination is a directory, append the input filename; if your system
+# does not like double slashes in filenames, you may need to add some logic
+
+ if [ -d $dst ]
+ then
+ dst="$dst"/`basename $src`
+ else
+ true
+ fi
+fi
+
+## this sed command emulates the dirname command
+dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
+
+# Make sure that the destination directory exists.
+# this part is taken from Noah Friedman's mkinstalldirs script
+
+# Skip lots of stat calls in the usual case.
+if [ ! -d "$dstdir" ]; then
+defaultIFS='
+'
+IFS="${IFS-${defaultIFS}}"
+
+oIFS="${IFS}"
+# Some sh's can't handle IFS=/ for some reason.
+IFS='%'
+set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
+IFS="${oIFS}"
+
+pathcomp=''
+
+while [ $# -ne 0 ] ; do
+ pathcomp="${pathcomp}${1}"
+ shift
+
+ if [ ! -d "${pathcomp}" ] ;
+ then
+ $mkdirprog "${pathcomp}"
+ else
+ true
+ fi
+
+ pathcomp="${pathcomp}/"
+done
+fi
+
+if [ x"$dir_arg" != x ]
+then
+ $doit $instcmd $dst &&
+
+ if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
+ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
+ if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
+ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
+else
+
+# If we're going to rename the final executable, determine the name now.
+
+ if [ x"$transformarg" = x ]
+ then
+ dstfile=`basename $dst`
+ else
+ dstfile=`basename $dst $transformbasename |
+ sed $transformarg`$transformbasename
+ fi
+
+# don't allow the sed command to completely eliminate the filename
+
+ if [ x"$dstfile" = x ]
+ then
+ dstfile=`basename $dst`
+ else
+ true
+ fi
+
+# Make a temp file name in the proper directory.
+
+ dsttmp=$dstdir/#inst.$$#
+
+# Move or copy the file name to the temp name
+
+ $doit $instcmd $src $dsttmp &&
+
+ trap "rm -f ${dsttmp}" 0 &&
+
+# and set any options; do chmod last to preserve setuid bits
+
+# If any of these fail, we abort the whole thing. If we want to
+# ignore errors from any of these, just make sure not to ignore
+# errors from the above "$doit $instcmd $src $dsttmp" command.
+
+ if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
+ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
+ if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
+ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
+
+# Now rename the file to the real destination.
+
+ $doit $rmcmd -f $dstdir/$dstfile &&
+ $doit $mvcmd $dsttmp $dstdir/$dstfile
+
+fi &&
+
+
+exit 0
diff --git a/apps/X11/cheatah/missing b/apps/X11/cheatah/missing
new file mode 100644
index 0000000..cbe2b0e
--- /dev/null
+++ b/apps/X11/cheatah/missing
@@ -0,0 +1,188 @@
+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+# Franc,ois Pinard <pinard@iro.umontreal.ca>, 1996.
+
+# 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, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+if test $# -eq 0; then
+ echo 1>&2 "Try \`$0 --help' for more information"
+ exit 1
+fi
+
+case "$1" in
+
+ -h|--h|--he|--hel|--help)
+ echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+ -h, --help display this help and exit
+ -v, --version output version information and exit
+
+Supported PROGRAM values:
+ aclocal touch file \`aclocal.m4'
+ autoconf touch file \`configure'
+ autoheader touch file \`config.h.in'
+ automake touch all \`Makefile.in' files
+ bison create \`y.tab.[ch]', if possible, from existing .[ch]
+ flex create \`lex.yy.c', if possible, from existing .c
+ lex create \`lex.yy.c', if possible, from existing .c
+ makeinfo touch the output file
+ yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
+ ;;
+
+ -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+ echo "missing - GNU libit 0.0"
+ ;;
+
+ -*)
+ echo 1>&2 "$0: Unknown \`$1' option"
+ echo 1>&2 "Try \`$0 --help' for more information"
+ exit 1
+ ;;
+
+ aclocal)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified \`acinclude.m4' or \`configure.in'. You might want
+ to install the \`Automake' and \`Perl' packages. Grab them from
+ any GNU archive site."
+ touch aclocal.m4
+ ;;
+
+ autoconf)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified \`configure.in'. You might want to install the
+ \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
+ archive site."
+ touch configure
+ ;;
+
+ autoheader)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified \`acconfig.h' or \`configure.in'. You might want
+ to install the \`Autoconf' and \`GNU m4' packages. Grab them
+ from any GNU archive site."
+ files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER([^):]*:\([^)]*\)).*/\1/p' configure.in`
+ if test -z "$files"; then
+ files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^):]*\)).*/\1/p' configure.in`
+ test -z "$files" || files="$files.in"
+ else
+ files=`echo "$files" | sed -e 's/:/ /g'`
+ fi
+ test -z "$files" && files="config.h.in"
+ touch $files
+ ;;
+
+ automake)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
+ You might want to install the \`Automake' and \`Perl' packages.
+ Grab them from any GNU archive site."
+ find . -type f -name Makefile.am -print \
+ | sed 's/^\(.*\).am$/touch \1.in/' \
+ | sh
+ ;;
+
+ bison|yacc)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified a \`.y' file. You may need the \`Bison' package
+ in order for those modifications to take effect. You can get
+ \`Bison' from any GNU archive site."
+ rm -f y.tab.c y.tab.h
+ if [ $# -ne 1 ]; then
+ eval LASTARG="\${$#}"
+ case "$LASTARG" in
+ *.y)
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" y.tab.c
+ fi
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" y.tab.h
+ fi
+ ;;
+ esac
+ fi
+ if [ ! -f y.tab.h ]; then
+ echo >y.tab.h
+ fi
+ if [ ! -f y.tab.c ]; then
+ echo 'main() { return 0; }' >y.tab.c
+ fi
+ ;;
+
+ lex|flex)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified a \`.l' file. You may need the \`Flex' package
+ in order for those modifications to take effect. You can get
+ \`Flex' from any GNU archive site."
+ rm -f lex.yy.c
+ if [ $# -ne 1 ]; then
+ eval LASTARG="\${$#}"
+ case "$LASTARG" in
+ *.l)
+ SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" lex.yy.c
+ fi
+ ;;
+ esac
+ fi
+ if [ ! -f lex.yy.c ]; then
+ echo 'main() { return 0; }' >lex.yy.c
+ fi
+ ;;
+
+ makeinfo)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified a \`.texi' or \`.texinfo' file, or any other file
+ indirectly affecting the aspect of the manual. The spurious
+ call might also be the consequence of using a buggy \`make' (AIX,
+ DU, IRIX). You might want to install the \`Texinfo' package or
+ the \`GNU make' package. Grab either from any GNU archive site."
+ file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+ if test -z "$file"; then
+ file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+ file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
+ fi
+ touch $file
+ ;;
+
+ *)
+ echo 1>&2 "\
+WARNING: \`$1' is needed, and you do not seem to have it handy on your
+ system. You might have modified some files without having the
+ proper tools for further handling them. Check the \`README' file,
+ it often tells you about the needed prerequirements for installing
+ this package. You may also peek at any GNU archive site, in case
+ some other package would contain this missing \`$1' program."
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/apps/X11/cheatah/mkinstalldirs b/apps/X11/cheatah/mkinstalldirs
new file mode 100644
index 0000000..9bfeff6
--- /dev/null
+++ b/apps/X11/cheatah/mkinstalldirs
@@ -0,0 +1,40 @@
+#! /bin/sh
+# mkinstalldirs --- make directory hierarchy
+# Author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Public domain
+
+# $Id: mkinstalldirs,v 1.1.1.1 1999/05/04 22:03:35 scribe Exp $
+
+errstatus=0
+
+for file
+do
+ set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+ shift
+
+ pathcomp=
+ for d
+ do
+ pathcomp="$pathcomp$d"
+ case "$pathcomp" in
+ -* ) pathcomp=./$pathcomp ;;
+ esac
+
+ if test ! -d "$pathcomp"; then
+ echo "mkdir $pathcomp" 1>&2
+
+ mkdir "$pathcomp" || lasterr=$?
+
+ if test ! -d "$pathcomp"; then
+ errstatus=$lasterr
+ fi
+ fi
+
+ pathcomp="$pathcomp/"
+ done
+done
+
+exit $errstatus
+
+# mkinstalldirs ends here
diff --git a/apps/X11/cheatah/save/Makefile.am b/apps/X11/cheatah/save/Makefile.am
new file mode 100644
index 0000000..1f8f037
--- /dev/null
+++ b/apps/X11/cheatah/save/Makefile.am
@@ -0,0 +1,2 @@
+
+CXXFLAGS = $(GTK_CFLAGS) -I../../../include
diff --git a/apps/X11/cheatah/save/cheatah.glade b/apps/X11/cheatah/save/cheatah.glade
new file mode 100644
index 0000000..0aa6e4d
--- /dev/null
+++ b/apps/X11/cheatah/save/cheatah.glade
@@ -0,0 +1,406 @@
+<?xml version="1.0"?>
+<GTK-Interface>
+
+<project>
+ <name>cheatah</name>
+ <srcdir>/tmp</srcdir>
+ <main_source_file>cheatah.cpp</main_source_file>
+ <main_header_file>cheatah.h</main_header_file>
+ <handler_source_file>cheatsig.cpp</handler_source_file>
+ <handler_header_file>cheatsig.h</handler_header_file>
+</project>
+
+<widget>
+ <class>GtkWindow</class>
+ <name>mainWindow</name>
+ <title>Cheatah - SWORD Quick Lookup / Search</title>
+ <type>GTK_WINDOW_TOPLEVEL</type>
+ <position>GTK_WIN_POS_NONE</position>
+ <allow_shrink>True</allow_shrink>
+ <allow_grow>True</allow_grow>
+ <auto_shrink>False</auto_shrink>
+
+ <widget>
+ <class>GtkVBox</class>
+ <name>mainPanel</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+
+ <widget>
+ <class>GtkHBox</class>
+ <name>headerPanel</name>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ </child>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+
+ <widget>
+ <class>GtkHandleBox</class>
+ <name>handlebox3</name>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkMenuBar</class>
+ <name>menubar4</name>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>File3</name>
+ <label>File</label>
+ <right_justify>False</right_justify>
+
+ <widget>
+ <class>GtkMenu</class>
+ <name>menu13</name>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>Exit3</name>
+ <signal>
+ <name>activate</name>
+ <handler>on_Exit3_activate</handler>
+ <last_modification_time>Sun, 06 Dec 1998 19:49:44 GMT</last_modification_time>
+ </signal>
+ <label>Exit</label>
+ <right_justify>False</right_justify>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>View3</name>
+ <signal>
+ <name>activate</name>
+ <handler>on_View3_activate</handler>
+ <last_modification_time>Sun, 06 Dec 1998 19:49:46 GMT</last_modification_time>
+ </signal>
+ <label>View</label>
+ <right_justify>False</right_justify>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>Help</name>
+ <signal>
+ <name>activate</name>
+ <handler>on_Help_activate</handler>
+ <last_modification_time>Sun, 06 Dec 1998 19:52:46 GMT</last_modification_time>
+ </signal>
+ <label>Help</label>
+ <right_justify>True</right_justify>
+
+ <widget>
+ <class>GtkMenu</class>
+ <name>menu14</name>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>About</name>
+ <signal>
+ <name>activate</name>
+ <handler>on_About_activate</handler>
+ <last_modification_time>Sun, 06 Dec 1998 19:53:14 GMT</last_modification_time>
+ </signal>
+ <label>About</label>
+ <right_justify>False</right_justify>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkHandleBox</class>
+ <name>handlebox4</name>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkHBox</class>
+ <name>hbox6</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>label2</name>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ </child>
+ <label>FreeForm Lookup:</label>
+ <justify>GTK_JUSTIFY_RIGHT</justify>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>2</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GtkEntry</class>
+ <name>lookupText</name>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ </child>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>changed</name>
+ <handler>on_lookupText_changed</handler>
+ <last_modification_time>Sun, 06 Dec 1998 20:10:28 GMT</last_modification_time>
+ </signal>
+ <editable>True</editable>
+ <text_visible>True</text_visible>
+ <text_max_length>0</text_max_length>
+ <text></text>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkArrow</class>
+ <name>arrow1</name>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+ <signal>
+ <name>button_press_event</name>
+ <handler>on_arrow1_button_press_event</handler>
+ <after>True</after>
+ <last_modification_time>Sun, 10 Jan 1999 05:14:03 GMT</last_modification_time>
+ </signal>
+ <arrow_type>GTK_ARROW_LEFT</arrow_type>
+ <shadow_type>GTK_SHADOW_OUT</shadow_type>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkHBox</class>
+ <name>hbox2</name>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+
+ <widget>
+ <class>GtkText</class>
+ <name>moduleText</name>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+ <can_focus>True</can_focus>
+ <editable>False</editable>
+ <text></text>
+ </widget>
+
+ <widget>
+ <class>GtkHandleBox</class>
+ <name>handlebox5</name>
+ <border_width>5</border_width>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+
+ <widget>
+ <class>GtkVBox</class>
+ <name>searchPanel</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+
+ <widget>
+ <class>GtkHBox</class>
+ <name>hbox4</name>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+
+ <widget>
+ <class>GtkEntry</class>
+ <name>searchText</name>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+ <can_focus>True</can_focus>
+ <editable>True</editable>
+ <text_visible>True</text_visible>
+ <text_max_length>0</text_max_length>
+ <text></text>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>searchButton</name>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ </child>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>clicked</name>
+ <handler>on_searchButton_clicked</handler>
+ <last_modification_time>Sun, 06 Dec 1998 20:09:45 GMT</last_modification_time>
+ </signal>
+ <label>Search</label>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkHBox</class>
+ <name>searchSettingsPanel</name>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+
+ <widget>
+ <class>GtkVBox</class>
+ <name>searchTypePanel</name>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+
+ <widget>
+ <class>GtkRadioButton</class>
+ <name>regexSearch</name>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ <can_focus>True</can_focus>
+ <label>Regular Expression</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <group>searchType</group>
+ </widget>
+
+ <widget>
+ <class>GtkRadioButton</class>
+ <name>phaseSearch</name>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ <can_focus>True</can_focus>
+ <label>Exact Phrase</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <group>searchType</group>
+ </widget>
+
+ <widget>
+ <class>GtkRadioButton</class>
+ <name>multiWordSearch</name>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ <can_focus>True</can_focus>
+ <label>Multi Word</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <group>searchType</group>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkVBox</class>
+ <name>searchOptionsPanel</name>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>caseSensitive</name>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ <can_focus>True</can_focus>
+ <label>Case Sensitive</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkList</class>
+ <name>resultList</name>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+ <signal>
+ <name>selection_changed</name>
+ <handler>on_resultList_selection_changed</handler>
+ <last_modification_time>Sun, 06 Dec 1998 20:11:29 GMT</last_modification_time>
+ </signal>
+ <selection_mode>GTK_SELECTION_SINGLE</selection_mode>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkStatusbar</class>
+ <name>statusbar1</name>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ </child>
+ </widget>
+ </widget>
+</widget>
+
+</GTK-Interface>
diff --git a/apps/X11/cheatah/save/configure.in b/apps/X11/cheatah/save/configure.in
new file mode 100644
index 0000000..e45446d
--- /dev/null
+++ b/apps/X11/cheatah/save/configure.in
@@ -0,0 +1,4 @@
+AC_PROG_CXX
+
+AC_LANG_CPLUSPLUS
+LIBS="$LIBS -L../../../lib -lswmgr -lkeys -lutilfuns -lmodules -lfrontend"
diff --git a/apps/X11/micros/AUTHORS b/apps/X11/micros/AUTHORS
new file mode 100644
index 0000000..cca39e0
--- /dev/null
+++ b/apps/X11/micros/AUTHORS
@@ -0,0 +1 @@
+CrossWire Bible Society and the global internet community at large.
diff --git a/apps/X11/micros/COPYING b/apps/X11/micros/COPYING
new file mode 100644
index 0000000..eeb586b
--- /dev/null
+++ b/apps/X11/micros/COPYING
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/apps/X11/micros/ChangeLog b/apps/X11/micros/ChangeLog
new file mode 100644
index 0000000..8b40e47
--- /dev/null
+++ b/apps/X11/micros/ChangeLog
@@ -0,0 +1,2 @@
+22-Dec-2000
+ Released first version of micros in public SWORD distribution
diff --git a/apps/X11/micros/INSTALL b/apps/X11/micros/INSTALL
new file mode 100644
index 0000000..08c9b6e
--- /dev/null
+++ b/apps/X11/micros/INSTALL
@@ -0,0 +1,10 @@
+
+First, be sure to read INSTALL in the root of the sword
+directory for instructions on how to make sure the API
+libraries are installed and configured properly.
+
+Then look at Makefile.cfg, changing anything to your
+preference and do a:
+
+make
+
diff --git a/apps/X11/micros/Makefile b/apps/X11/micros/Makefile
new file mode 100644
index 0000000..4bf1c2c
--- /dev/null
+++ b/apps/X11/micros/Makefile
@@ -0,0 +1,18 @@
+root := ../../..
+subdirs :=
+clean-targets := none
+targets := micros
+# set bin so we don't build these .o's into shared lib
+bin := noshare
+include ${root}/Makefile.cfg
+CPPFLAGS += -I.
+CPPFLAGS += `gtk-config --cflags` -I/usr/include
+LDFLAGS += `gtk-config --libs`
+
+cpp += micros.cpp
+cpp += microssig.cpp
+
+include ${root}/Makefile.post
+
+micros: $(o)
+ $(CROSS_COMPILE)$(CC) -o $@ $(o) -L$(root)/lib $(LIBS) -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -L/usr/X11R6/lib -lXi -lXext -lX11 -lm
diff --git a/apps/X11/micros/NEWS b/apps/X11/micros/NEWS
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/apps/X11/micros/NEWS
@@ -0,0 +1 @@
+
diff --git a/apps/X11/micros/README b/apps/X11/micros/README
new file mode 100644
index 0000000..c82c0b0
--- /dev/null
+++ b/apps/X11/micros/README
@@ -0,0 +1 @@
+This is mini GUI for use on PDA's.
diff --git a/apps/X11/micros/confdefs.h b/apps/X11/micros/confdefs.h
new file mode 100644
index 0000000..3f5c36f
--- /dev/null
+++ b/apps/X11/micros/confdefs.h
@@ -0,0 +1,3 @@
+
+#define PACKAGE "micros"
+#define VERSION "0.1"
diff --git a/apps/X11/micros/micros.cpp b/apps/X11/micros/micros.cpp
new file mode 100644
index 0000000..0321b92
--- /dev/null
+++ b/apps/X11/micros/micros.cpp
@@ -0,0 +1,699 @@
+/* micros
+ * Copyright (C) 2000, CrossWire Bible Society
+ * P. O. Box 2528
+ * Tempe, AZ 85280-2528
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
+#include <gtk/gtk.h>
+#include <gdk/gdkkeysyms.h>
+#include "microssig.h"
+#include "micros.h"
+#include <swmgr.h>
+#include <versekey.h>
+#include <regex.h>
+
+MainWindow *mainWindow = NULL;
+GtkWidget*
+get_widget (GtkWidget *widget,
+ gchar *widget_name)
+{
+ GtkWidget *found_widget;
+
+ if (widget->parent)
+ widget = gtk_widget_get_toplevel (widget);
+ found_widget = (GtkWidget*) gtk_object_get_data (GTK_OBJECT (widget),
+ widget_name);
+ if (!found_widget)
+ g_warning ("Widget not found: %s", widget_name);
+ return found_widget;
+}
+
+/* This is an internally used function to set notebook tab widgets. */
+void
+set_notebook_tab (GtkWidget *notebook,
+ gint page_num,
+ GtkWidget *widget)
+{
+ GtkNotebookPage *page;
+ GtkWidget *notebook_page;
+
+ page = (GtkNotebookPage*) g_list_nth (GTK_NOTEBOOK (notebook)->children, page_num)->data;
+ notebook_page = page->child;
+ gtk_widget_ref (notebook_page);
+ gtk_notebook_remove_page (GTK_NOTEBOOK (notebook), page_num);
+ gtk_notebook_insert_page (GTK_NOTEBOOK (notebook), notebook_page,
+ widget, page_num);
+ gtk_widget_unref (notebook_page);
+}
+
+
+
+MainWindow::MainWindow() {
+ searchType_group = NULL;
+ mainMgr = new SWMgr();
+ curMod = NULL;
+ chapDisplay = 0; // set in create
+ entryDisplay = 0; // set in create
+ skipLookup = false;
+}
+
+
+MainWindow::~MainWindow() {
+ delete mainMgr;
+ if (chapDisplay)
+ delete chapDisplay;
+ if (entryDisplay)
+ delete entryDisplay;
+}
+
+
+GtkWidget* create_mainWindow () {
+ GtkWidget *retWidget;
+ mainWindow = new MainWindow();
+ retWidget = mainWindow->create();
+ mainWindow->initSWORD();
+ return retWidget;
+}
+
+GtkWidget *MainWindow::create() {
+ mainWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "mainWindow", mainWindow);
+ gtk_window_set_title (GTK_WINDOW (mainWindow), "Micros - SWORD PDA UI");
+ gtk_window_set_policy (GTK_WINDOW (mainWindow), TRUE, TRUE, FALSE);
+ gtk_widget_set_usize(GTK_WIDGET(mainWindow), 315, 225);
+ gtk_signal_connect(GTK_OBJECT(mainWindow),
+ "destroy",
+ GTK_SIGNAL_FUNC(gtk_main_quit),
+ NULL);
+
+
+ mainPanel = gtk_vbox_new (FALSE, 0);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "mainPanel", mainPanel);
+ gtk_widget_show (mainPanel);
+ gtk_container_add (GTK_CONTAINER (mainWindow), mainPanel);
+
+ headerPanel = gtk_hbox_new (FALSE, 0);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "headerPanel", headerPanel);
+ gtk_widget_show (headerPanel);
+ gtk_box_pack_start (GTK_BOX (mainPanel), headerPanel, FALSE, TRUE, 0);
+
+ handlebox3 = gtk_handle_box_new ();
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "handlebox3", handlebox3);
+ gtk_widget_show (handlebox3);
+ gtk_box_pack_start (GTK_BOX (headerPanel), handlebox3, TRUE, TRUE, 0);
+
+ menubar4 = gtk_menu_bar_new ();
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "menubar4", menubar4);
+ gtk_widget_show (menubar4);
+ gtk_container_add (GTK_CONTAINER (handlebox3), menubar4);
+
+/*
+ File3 = gtk_menu_item_new_with_label ("File");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "File3", File3);
+ gtk_widget_show (File3);
+ gtk_container_add (GTK_CONTAINER (menubar4), File3);
+
+ menu13 = gtk_menu_new ();
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "menu13", menu13);
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (File3), menu13);
+
+ Exit3 = gtk_menu_item_new_with_label ("Exit");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "Exit3", Exit3);
+ gtk_widget_show (Exit3);
+ gtk_container_add (GTK_CONTAINER (menu13), Exit3);
+ gtk_signal_connect (GTK_OBJECT (Exit3), "activate",
+ GTK_SIGNAL_FUNC (gtk_main_quit),
+ NULL);
+*/
+
+
+ View3 = gtk_menu_item_new_with_label ("View");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "View3", View3);
+ gtk_widget_show (View3);
+ gtk_container_add (GTK_CONTAINER (menubar4), View3);
+ gtk_signal_connect (GTK_OBJECT (View3), "activate",
+ GTK_SIGNAL_FUNC (on_View3_activate),
+ NULL);
+
+ menuView = gtk_menu_new ();
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "menuView", menuView);
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (View3), menuView);
+
+ commentaries = gtk_menu_item_new_with_label ("Commentaries");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "commentaries", commentaries);
+ gtk_widget_show (commentaries);
+
+ menuCommentaries = gtk_menu_new ();
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "menuCommentaries", menuCommentaries);
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (commentaries), menuCommentaries);
+
+ dictionaries = gtk_menu_item_new_with_label ("Dictionaries");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "Dictionaries", dictionaries);
+ gtk_widget_show (dictionaries);
+
+ menuDictionaries = gtk_menu_new ();
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "menuDictionaries", menuDictionaries);
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (dictionaries), menuDictionaries);
+
+
+
+/*
+ Help = gtk_menu_item_new_with_label ("Help");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "Help", Help);
+ gtk_widget_show (Help);
+ gtk_container_add (GTK_CONTAINER (menubar4), Help);
+ gtk_signal_connect (GTK_OBJECT (Help), "activate",
+ GTK_SIGNAL_FUNC (on_Help_activate),
+ NULL);
+ gtk_menu_item_right_justify (GTK_MENU_ITEM (Help));
+
+ menu14 = gtk_menu_new ();
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "menu14", menu14);
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (Help), menu14);
+
+ About = gtk_menu_item_new_with_label ("About");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "About", About);
+ gtk_widget_show (About);
+ gtk_container_add (GTK_CONTAINER (menu14), About);
+ gtk_signal_connect (GTK_OBJECT (About), "activate",
+ GTK_SIGNAL_FUNC (on_About_activate),
+ NULL);
+*/
+
+ handlebox4 = gtk_handle_box_new ();
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "handlebox4", handlebox4);
+ gtk_widget_show (handlebox4);
+ gtk_box_pack_start (GTK_BOX (headerPanel), handlebox4, TRUE, TRUE, 0);
+
+ hbox6 = gtk_hbox_new (FALSE, 0);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "hbox6", hbox6);
+ gtk_widget_show (hbox6);
+ gtk_container_add (GTK_CONTAINER (handlebox4), hbox6);
+
+ showSearchButton = gtk_button_new_with_label ("-O");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "showSearchButton", showSearchButton);
+ gtk_widget_show (showSearchButton);
+ gtk_box_pack_start (GTK_BOX (hbox6), showSearchButton, FALSE, TRUE, 0);
+ gtk_signal_connect (GTK_OBJECT (showSearchButton), "clicked",
+ GTK_SIGNAL_FUNC (on_showSearchButton_clicked),
+ NULL);
+
+ label2 = gtk_label_new ("Verse");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "label2", label2);
+ gtk_widget_show (label2);
+ gtk_box_pack_start (GTK_BOX (hbox6), label2, FALSE, TRUE, 0);
+ gtk_label_set_justify (GTK_LABEL (label2), GTK_JUSTIFY_RIGHT);
+ gtk_misc_set_padding (GTK_MISC (label2), 2, 0);
+
+
+
+
+
+ GtkWidget *combo1 = gtk_combo_new ();
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "combo1", combo1);
+ gtk_widget_show (combo1);
+ gtk_box_pack_start (GTK_BOX (hbox6), combo1, FALSE, TRUE, 0);
+ gtk_widget_set_usize (combo1, 90, -2);
+// GtkRequisition req = {90, 175};
+// gtk_widget_size_request(GTK_WIDGET(GTK_COMBO(combo1)->list), &req);
+// gtk_widget_size_request(GTK_WIDGET(combo1), &req);
+// gtk_widget_size_allocate(GTK_WIDGET(GTK_COMBO(combo1)->list), &allc);
+// gtk_widget_set_usize(GTK_WIDGET(GTK_COMBO(combo1)->list), -2, 175);
+// gtk_list_scroll_vertical(GTK_LIST(GTK_COMBO(combo1)->list),
+// GTK_SCROLL_STEP_FORWARD,
+// 0);
+ GList *combo1_items = NULL;
+
+ VerseKey *myVk = new VerseKey();
+ myVk->Error(); //clear error
+ (*myVk) = TOP;
+ char *buf;
+ while (!myVk->Error()) {
+ const char *bname = myVk->books[myVk->Testament()-1][myVk->Book()-1].name;
+ int len = strlen(bname);
+ buf = new char [ len + 1 ];
+ strcpy(buf, bname);
+ combo1_items = g_list_append (combo1_items, buf);
+ myVk->Book(myVk->Book() + 1);
+ }
+ delete myVk;
+
+ gtk_combo_set_popdown_strings (GTK_COMBO (combo1), combo1_items);
+
+
+ lookupText = GTK_COMBO (combo1)->entry;
+ gtk_object_set_data(GTK_OBJECT(mainWindow), "lookupText", lookupText);
+ gtk_widget_show (lookupText);
+ gtk_entry_set_text (GTK_ENTRY (lookupText),(char *)g_list_nth_data (combo1_items, 0));
+ gtk_signal_connect (GTK_OBJECT (lookupText), "changed",
+ GTK_SIGNAL_FUNC (on_lookupText_changed),
+ NULL);
+
+ for (GList *i = g_list_first(combo1_items); i; i = g_list_next(i))
+ delete [] i->data;
+ g_list_free (combo1_items);
+
+ gtk_widget_set_usize (GTK_COMBO(combo1)->popup, 90, 175);
+// GtkAllocation allc = {-2, -2, 90, 175};
+// gtk_widget_size_allocate(GTK_WIDGET(combo1), &allc);
+// gtk_widget_set_usize(GTK_WIDGET(GTK_COMBO(combo1)->list), 90, 175);
+//GTK_WIDGET(GTK_COMBO(combo1))->allocation.height = 175;
+//GTK_WIDGET(GTK_COMBO(combo1))->allocation.width = 90;
+//GTK_WIDGET(GTK_COMBO(combo1)->list)->allocation.height = 175;
+//GTK_WIDGET(GTK_COMBO(combo1)->list)->allocation.width = 90;
+//GTK_WIDGET(GTK_COMBO(combo1))->requisition.height = 175;
+//GTK_WIDGET(GTK_COMBO(combo1))->requisition.width = 90;
+//GTK_WIDGET(GTK_COMBO(combo1)->list)->requisition.height = 175;
+//GTK_WIDGET(GTK_COMBO(combo1)->list)->requisition.width = 90;
+//GTK_WIDGET(GTK_COMBO(combo1)->popwin)->allocation.height = 175;
+//GTK_WIDGET(GTK_COMBO(combo1)->popwin)->allocation.width = 90;
+//GTK_WIDGET(GTK_COMBO(combo1)->popwin)->requisition.height = 175;
+//GTK_WIDGET(GTK_COMBO(combo1)->popwin)->requisition.width = 90;
+
+
+ GtkObject *spinbutton_adj = gtk_adjustment_new (1, 1, 200, 1, 10, 10);
+ chapBox = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adj), 1, 0);
+ gtk_widget_ref (chapBox);
+ gtk_object_set_data(GTK_OBJECT (mainWindow), "chapBox", chapBox);
+ gtk_widget_show (chapBox);
+ gtk_box_pack_start (GTK_BOX (hbox6), chapBox, FALSE, TRUE, 0);
+ gtk_signal_connect (GTK_OBJECT (chapBox), "changed",
+ GTK_SIGNAL_FUNC (on_lookupText_changed),
+ NULL);
+ gtk_widget_set_usize (chapBox, 40, -2);
+
+ spinbutton_adj = gtk_adjustment_new (1, 1, 200, 1, 10, 10);
+ verseBox = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adj), 1, 0);
+ gtk_widget_ref (verseBox);
+ gtk_object_set_data(GTK_OBJECT (mainWindow), "verseBox", verseBox);
+ gtk_widget_show (verseBox);
+ gtk_box_pack_start (GTK_BOX (hbox6), verseBox, FALSE, TRUE, 0);
+ gtk_signal_connect (GTK_OBJECT (verseBox), "changed",
+ GTK_SIGNAL_FUNC (on_lookupText_changed),
+ NULL);
+ gtk_widget_set_usize (verseBox, 40, -2);
+
+ hbox2 = gtk_hbox_new (FALSE, 0);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "hbox2", hbox2);
+ gtk_widget_show (hbox2);
+ gtk_box_pack_start (GTK_BOX (mainPanel), hbox2, TRUE, TRUE, 0);
+
+
+/*
+ textScrolledWindow = gtk_scrolled_window_new (NULL, NULL);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "textScrolledWindow", textScrolledWindow);
+ gtk_widget_show (textScrolledWindow);
+ gtk_box_pack_start (GTK_BOX (hbox2), textScrolledWindow, FALSE, FALSE, 0);
+*/
+
+ moduleText = gtk_text_new (NULL, NULL);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "moduleText", moduleText);
+ gtk_widget_show (moduleText);
+// gtk_container_add (GTK_CONTAINER (textScrolledWindow), moduleText);
+ gtk_box_pack_start (GTK_BOX (hbox2), moduleText, TRUE, TRUE, 0);
+ gtk_text_set_editable (GTK_TEXT (moduleText), FALSE);
+ gtk_text_set_word_wrap (GTK_TEXT (moduleText), TRUE);
+ gtk_widget_realize (moduleText);
+
+ /* Add a vertical scrollbar to the GtkText widget */
+ textScrollbar = gtk_vscrollbar_new (GTK_TEXT (moduleText)->vadj);
+ gtk_box_pack_start (GTK_BOX (hbox2), textScrollbar, FALSE, FALSE, 0);
+ gtk_widget_show (textScrollbar);
+
+
+/*
+ handlebox5 = gtk_handle_box_new ();
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "handlebox5", handlebox5);
+ gtk_widget_show (handlebox5);
+ gtk_box_pack_start (GTK_BOX (hbox2), handlebox5, FALSE, FALSE, 0);
+ gtk_container_border_width (GTK_CONTAINER (handlebox5), 5);
+*/
+
+ searchPanel = gtk_vbox_new (FALSE, 0);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "searchPanel", searchPanel);
+ gtk_widget_hide (searchPanel);
+ gtk_box_pack_start (GTK_BOX (hbox2), searchPanel, FALSE, FALSE, 0);
+// gtk_container_add (GTK_CONTAINER (handlebox5), searchPanel);
+
+ hbox4 = gtk_hbox_new (FALSE, 0);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "hbox4", hbox4);
+ gtk_widget_show (hbox4);
+ gtk_box_pack_start (GTK_BOX (searchPanel), hbox4, FALSE, FALSE, 0);
+
+ searchText = gtk_entry_new ();
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "searchText", searchText);
+ gtk_widget_show (searchText);
+ gtk_box_pack_start (GTK_BOX (hbox4), searchText, TRUE, TRUE, 0);
+ gtk_widget_set_usize (searchText, 90, -2);
+
+ searchButton = gtk_button_new_with_label ("Go");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "searchButton", searchButton);
+ gtk_widget_show (searchButton);
+ gtk_box_pack_start (GTK_BOX (hbox4), searchButton, FALSE, TRUE, 0);
+ gtk_signal_connect (GTK_OBJECT (searchButton), "clicked",
+ GTK_SIGNAL_FUNC (on_searchButton_clicked),
+ NULL);
+
+ searchSettingsPanel = gtk_hbox_new (FALSE, 0);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "searchSettingsPanel", searchSettingsPanel);
+ gtk_widget_show (searchSettingsPanel);
+ gtk_box_pack_start (GTK_BOX (searchPanel), searchSettingsPanel, FALSE, FALSE, 0);
+
+ searchTypePanel = gtk_vbox_new (FALSE, 0);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "searchTypePanel", searchTypePanel);
+ gtk_widget_show (searchTypePanel);
+ gtk_box_pack_start (GTK_BOX (searchSettingsPanel), searchTypePanel, FALSE, FALSE, 0);
+
+ multiWordSearch = gtk_radio_button_new_with_label (searchType_group, "Multi Word");
+ searchType_group = gtk_radio_button_group (GTK_RADIO_BUTTON (multiWordSearch));
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "multiWordSearch", multiWordSearch);
+ gtk_widget_show (multiWordSearch);
+ gtk_box_pack_start (GTK_BOX (searchTypePanel), multiWordSearch, FALSE, FALSE, 0);
+
+ phraseSearch = gtk_radio_button_new_with_label (searchType_group, "Exact Phrase");
+ searchType_group = gtk_radio_button_group (GTK_RADIO_BUTTON (phraseSearch));
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "phraseSearch", phraseSearch);
+ gtk_widget_show (phraseSearch);
+ gtk_box_pack_start (GTK_BOX (searchTypePanel), phraseSearch, FALSE, FALSE, 0);
+
+ regexSearch = gtk_radio_button_new_with_label (searchType_group, "Regular Expression");
+ searchType_group = gtk_radio_button_group (GTK_RADIO_BUTTON (regexSearch));
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "regexSearch", regexSearch);
+ gtk_widget_show (regexSearch);
+ gtk_box_pack_start (GTK_BOX (searchTypePanel), regexSearch, FALSE, FALSE, 0);
+
+
+/*
+ searchOptionsPanel = gtk_vbox_new (FALSE, 0);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "searchOptionsPanel", searchOptionsPanel);
+ gtk_widget_show (searchOptionsPanel);
+ gtk_box_pack_start (GTK_BOX (searchSettingsPanel), searchOptionsPanel, FALSE, FALSE, 0);
+*/
+
+ caseSensitive = gtk_check_button_new_with_label ("Case Sensitive");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "caseSensitive", caseSensitive);
+ gtk_widget_show (caseSensitive);
+// gtk_box_pack_start (GTK_BOX (searchOptionsPanel), caseSensitive, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (searchTypePanel), caseSensitive, FALSE, FALSE, 0);
+
+ GtkWidget *resultPanel = gtk_hbox_new (FALSE, 0);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "resultPanel", resultPanel);
+ gtk_widget_show (resultPanel);
+ gtk_box_pack_start (GTK_BOX (searchPanel), resultPanel, TRUE, TRUE, 0);
+ resultList = gtk_clist_new(1);
+ gtk_object_set_data(GTK_OBJECT (mainWindow), "resultList", resultList);
+// gtk_clist_set_policy(GTK_CLIST(resultList), GTK_POLICY_AUTOMATIC, 0);
+// gtk_clist_set_border(GTK_CLIST(resultList), GTK_SHADOW_ETCHED_IN);
+ gtk_widget_show (resultList);
+ gtk_box_pack_start (GTK_BOX (resultPanel), resultList, TRUE, TRUE, 0);
+ gtk_signal_connect (GTK_OBJECT (resultList), "select_row",
+ GTK_SIGNAL_FUNC (on_resultList_selection_changed),
+ NULL);
+ /* Add a vertical scrollbar to the GtkCList widget */
+ textScrollbar = gtk_vscrollbar_new (NULL);
+ gtk_clist_set_vadjustment (GTK_CLIST(resultList), gtk_range_get_adjustment(GTK_RANGE(textScrollbar)));
+ gtk_box_pack_start (GTK_BOX (resultPanel), textScrollbar, FALSE, FALSE, 0);
+ gtk_widget_show (textScrollbar);
+
+
+/*
+ statusbar1 = gtk_statusbar_new ();
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "statusbar1", statusbar1);
+ gtk_widget_show (statusbar1);
+ gtk_box_pack_start (GTK_BOX (mainPanel), statusbar1, FALSE, TRUE, 0);
+*/
+
+/*
+ arrow1 = gtk_button_new_with_label ("[<]");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "arrow1", arrow1);
+ gtk_widget_show (arrow1);
+ gtk_box_pack_start (GTK_BOX (headerPanel), arrow1, FALSE, FALSE, 0);
+ gtk_signal_connect (GTK_OBJECT (arrow1), "clicked",
+ GTK_SIGNAL_FUNC (on_arrow1_button_press_event),
+ NULL);
+
+ arrow2 = gtk_button_new_with_label ("[>]");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "arrow2", arrow2);
+ gtk_widget_show (arrow2);
+ gtk_box_pack_start (GTK_BOX (headerPanel), arrow2, FALSE, FALSE, 0);
+ gtk_signal_connect (GTK_OBJECT (arrow2), "clicked",
+ GTK_SIGNAL_FUNC (on_arrow2_button_press_event),
+ NULL);
+
+*/
+
+ statusbar1 = gtk_label_new ("");
+ gtk_object_set_data (GTK_OBJECT (mainWindow), "statusbar1", statusbar1);
+ gtk_widget_show (statusbar1);
+ gtk_box_pack_start (GTK_BOX (mainPanel), statusbar1, FALSE, FALSE, 0);
+ gtk_label_set_justify (GTK_LABEL (statusbar1), GTK_JUSTIFY_LEFT);
+ gtk_misc_set_padding (GTK_MISC (statusbar1), 2, 0);
+
+
+ GTKEntryDisp::__initialize();
+ chapDisplay = new GTKChapDisp(moduleText);
+ entryDisplay = new GTKEntryDisp(moduleText);
+
+ return mainWindow;
+}
+
+void MainWindow::initSWORD() {
+
+ GtkWidget *menuChoice;
+ int viewNumber = 1;
+ char menuName[64];
+ ModMap::iterator it;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ char *font;
+ SWModule *curMod;
+
+ for (it = mainMgr->Modules.begin(); it != mainMgr->Modules.end(); it++) {
+ curMod = (*it).second;
+ menuChoice = gtk_menu_item_new_with_label (curMod->Name());
+ sprintf(menuName, "viewMod%d", viewNumber++);
+ gtk_object_set_data (GTK_OBJECT (mainWindow), menuName, menuChoice);
+ gtk_widget_show (menuChoice);
+ gtk_signal_connect(GTK_OBJECT (menuChoice), "activate",
+ GTK_SIGNAL_FUNC (on_viewMod_activate),
+ g_strdup(curMod->Name()));
+
+ if (!strcmp((*it).second->Type(), "Biblical Texts")) {
+ gtk_container_add (GTK_CONTAINER (menuView), menuChoice);
+ font = 0;
+ if ((sit = mainMgr->config->Sections.find((*it).second->Name())) != mainMgr->config->Sections.end()) {
+ if ((eit = (*sit).second.find("Font")) != (*sit).second.end()) {
+ font = (char *)(*eit).second.c_str();
+ }
+ }
+// CreateTextPane((*it).second, font);
+ curMod->Disp(chapDisplay); // set our GTKChapDisp object up for the diplayer of each Biblical Text module
+ if (!this->curMod) // set currently selected module for app to first module from SWMgr (Bible Texts get first preference
+ this->curMod = curMod;
+ }
+ else {
+ curMod->Disp(entryDisplay); // set our GTKEntryDisp object up for the diplayer of each module other than Biblical Texts
+ if (!strcmp((*it).second->Type(), "Commentaries")) {
+ gtk_container_add (GTK_CONTAINER (menuCommentaries), menuChoice);
+ // CreateCommentPane((*it).second);
+ }
+ if (!strcmp((*it).second->Type(), "Lexicons / Dictionaries")) {
+ gtk_container_add (GTK_CONTAINER (menuDictionaries), menuChoice);
+ // CreateLDPane((*it).second);
+ }
+ }
+
+
+ }
+ gtk_container_add (GTK_CONTAINER (menuView), commentaries);
+ gtk_container_add (GTK_CONTAINER (menuView), dictionaries);
+ if (!this->curMod) // set currently selected module for app to first module from SWMgr
+ this->curMod = curMod;
+}
+
+
+void MainWindow::lookupTextChanged() {
+ string keyText;
+ gchar *entryText;
+ char tmpBuf[255];
+
+ if (!skipLookup) {
+ entryText = gtk_entry_get_text(GTK_ENTRY(lookupText));
+ keyText = entryText;
+ entryText = gtk_entry_get_text(GTK_ENTRY(chapBox));
+ keyText += " ";
+ keyText += entryText;
+ entryText = gtk_entry_get_text(GTK_ENTRY(verseBox));
+ keyText += ":";
+ keyText += entryText;
+
+ if (curMod) {
+ curMod->SetKey(keyText.c_str());
+ curMod->Display();
+ sprintf(tmpBuf, "%s (%s)", curMod->KeyText(), curMod->Name());
+ gtk_label_set(GTK_LABEL(statusbar1), tmpBuf);
+ }
+ }
+}
+
+void MainWindow::viewModActivate(GtkMenuItem *sender, gchar *modName) {
+ ModMap::iterator it;
+
+ it = mainMgr->Modules.find(modName);
+ if (it != mainMgr->Modules.end()) {
+ curMod = (*it).second;
+ lookupTextChanged();
+ }
+ else curMod = 0;
+}
+
+
+void MainWindow::navigateButtonClicked(int direction) {
+ if (curMod) {
+ if (direction)
+ (*curMod)++;
+ else (*curMod)--;
+ (const char *)*curMod; // snap to closest locations
+ const gchar *text = curMod->KeyText();
+ gtk_entry_set_text(GTK_ENTRY(lookupText), text);
+// curMod->Display();
+ }
+}
+
+
+void MainWindow::showSearchButtonClicked() {
+ static bool showing = false;
+ if (showing)
+ gtk_widget_hide(searchPanel);
+ else gtk_widget_show(searchPanel);
+ showing = !showing;
+
+}
+
+void statusUpdate(char percent, void *userData) {
+ char buf[5];
+ GtkWidget *button = (GtkWidget *)userData;
+ sprintf(buf, "%d%%", percent);
+ gtk_label_set_text(GTK_LABEL(GTK_BIN(button)->child), buf);
+// gtk_widget_draw_focus(button);
+}
+
+
+void MainWindow::searchButtonClicked() {
+ string srchText;
+ gchar *entryText;
+ const gchar *resultText;
+ gchar **clistText = (gchar **)&resultText;
+
+
+ gtk_clist_clear(GTK_CLIST(resultList));
+
+ entryText = gtk_entry_get_text(GTK_ENTRY(searchText));
+ srchText = entryText;
+
+ if (curMod) {
+ int searchType = GTK_TOGGLE_BUTTON(regexSearch)->active ? 0 : GTK_TOGGLE_BUTTON(phraseSearch)->active ? -1 : -2;
+ int searchParams = GTK_TOGGLE_BUTTON(caseSensitive)->active ? 0 : REG_ICASE;
+ gtk_clist_freeze(GTK_CLIST(resultList));
+ for (ListKey searchResults = curMod->Search(srchText.c_str(), searchType, searchParams, 0, 0, statusUpdate, searchButton); !searchResults.Error(); searchResults++) {
+ resultText = (const char *)searchResults;
+ gtk_clist_append(GTK_CLIST(resultList), clistText);
+ }
+ gtk_clist_thaw(GTK_CLIST(resultList));
+ gtk_label_set_text(GTK_LABEL(GTK_BIN(searchButton)->child), "Go");
+ }
+}
+
+
+void MainWindow::resultListSelectionChanged(GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data) {
+ gchar *text;
+ char buf[256];
+
+ gtk_clist_get_text(GTK_CLIST(resultList), row, column, &text);
+ VerseKey vkey(text);
+
+ if (text) {
+ skipLookup = true;
+ memset(buf, 0, 256);
+ int len = strlen((const char *)vkey);
+ if (len > 255) len = 255;
+ strncpy(buf, (const char *)vkey, len-4);
+ gtk_entry_set_text(GTK_ENTRY(lookupText), vkey.books[vkey.Testament()-1][vkey.Book()-1].name);
+ sprintf(buf, "%d", vkey.Chapter());
+ gtk_entry_set_text(GTK_ENTRY(chapBox), buf);
+ skipLookup = false;
+ sprintf(buf, "%d", vkey.Verse());
+ gtk_entry_set_text(GTK_ENTRY(verseBox), buf);
+ }
+}
+
+GdkColor GTKEntryDisp::colourBlue;
+GdkColor GTKEntryDisp::colourGreen;
+
+char GTKEntryDisp::Display(SWModule &imodule) {
+ char tmpBuf[255];
+
+ gtk_text_set_point(GTK_TEXT(gtkText), 0);
+ gtk_text_forward_delete (GTK_TEXT (gtkText), gtk_text_get_length((GTK_TEXT(gtkText))));
+ int curPos = 0;
+ (const char *)imodule; // snap to entry
+ gtk_text_freeze (GTK_TEXT(gtkText));
+ sprintf(tmpBuf, "[%s] ", imodule.KeyText());
+ gtk_text_insert(GTK_TEXT(gtkText), NULL, &colourBlue, NULL, tmpBuf, -1);
+ gtk_text_insert(GTK_TEXT(gtkText), NULL, &gtkText->style->black, NULL, imodule.StripText(), -1);
+ gtk_text_set_point(GTK_TEXT(gtkText), curPos);
+ gtk_text_thaw(GTK_TEXT(gtkText));
+}
+
+
+char GTKChapDisp::Display(SWModule &imodule) {
+ char tmpBuf[255];
+
+ gtk_text_set_point(GTK_TEXT(gtkText), 0);
+ gtk_text_forward_delete (GTK_TEXT (gtkText), gtk_text_get_length((GTK_TEXT(gtkText))));
+ VerseKey *key = (VerseKey *)(SWKey *)imodule;
+ int curVerse = key->Verse();
+ int curChapter = key->Chapter();
+ int curBook = key->Book();
+ int curPos = 0;
+ gfloat adjVal;
+ gtk_text_freeze (GTK_TEXT(gtkText));
+ for (key->Verse(1); (key->Book() == curBook && key->Chapter() == curChapter && !imodule.Error()); imodule++) {
+ sprintf(tmpBuf, "%d. ", key->Verse());
+ gtk_text_insert(GTK_TEXT(gtkText), NULL, &colourBlue, NULL, tmpBuf, -1);
+ if (key->Verse() == curVerse) {
+ gtk_text_thaw(GTK_TEXT(gtkText));
+ adjVal = GTK_TEXT(gtkText)->vadj->upper;
+ curPos = gtk_text_get_length(GTK_TEXT(gtkText));
+ gtk_text_insert(GTK_TEXT(gtkText), NULL, &colourGreen, NULL, imodule.StripText(), -1);
+ gtk_text_freeze (GTK_TEXT(gtkText));
+ }
+ else {
+ gtk_text_insert(GTK_TEXT(gtkText), NULL, &gtkText->style->black, NULL, imodule.StripText(), -1);
+ }
+ gtk_text_insert(GTK_TEXT(gtkText), NULL, &gtkText->style->black, NULL, " ", -1);
+ }
+ gtk_text_set_point(GTK_TEXT(gtkText), curPos);
+ gtk_text_thaw(GTK_TEXT(gtkText));
+ adjVal -= (GTK_TEXT(gtkText)->vadj->page_size / 2);
+ gtk_adjustment_set_value(GTK_TEXT(gtkText)->vadj, (adjVal>0)?adjVal:0);
+ key->Verse(1);
+ key->Chapter(1);
+ key->Book(curBook);
+ key->Chapter(curChapter);
+ key->Verse(curVerse);
+}
diff --git a/apps/X11/micros/micros.h b/apps/X11/micros/micros.h
new file mode 100644
index 0000000..f7a60aa
--- /dev/null
+++ b/apps/X11/micros/micros.h
@@ -0,0 +1,151 @@
+/* Note: You are free to use whatever license you want.
+ Eventually you will be able to edit it within Glade. */
+
+/* micros
+ * Copyright (C) <YEAR> <AUTHORS>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
+#include <gtk/gtk.h>
+#include <swmgr.h>
+#include <swdisp.h>
+
+/*
+ * This function returns a widget in a component created by Glade.
+ * Call it with the toplevel widget in the component (i.e. a window/dialog),
+ * or alternatively any widget in the component, and the name of the widget
+ * you want returned.
+ */
+GtkWidget*
+get_widget (GtkWidget *widget,
+ gchar *widget_name);
+
+
+ /*
+ * This is an internally used function for setting notebook tabs. It is only
+ * included in this header file so you don't get compilation warnings
+ */
+void
+set_notebook_tab (GtkWidget *notebook,
+ gint page_num,
+ GtkWidget *widget);
+
+GtkWidget* create_mainWindow (void);
+
+class GTKEntryDisp : public SWDisplay {
+protected:
+ GtkWidget *gtkText;
+public:
+ static GdkColor colourGreen;
+ static GdkColor colourBlue;
+ static void __initialize() {
+ GdkColormap *cmap;
+
+ cmap = gdk_colormap_get_system();
+ colourGreen.red = 0;
+ colourGreen.green = 0x00ff;
+ colourGreen.blue = 0xffff;
+ colourBlue.red = 0;
+ colourBlue.green = 0;
+ colourBlue.blue = 0xffff;
+ if (!gdk_color_alloc(cmap, &colourGreen)) {
+ g_error("couldn't allocate colour");
+ }
+ if (!gdk_color_alloc(cmap, &colourBlue)) {
+ g_error("couldn't allocate colour");
+ }
+ }
+ GTKEntryDisp(GtkWidget *gtkText) { this->gtkText = gtkText; }
+ virtual char Display(SWModule &imodule);
+};
+
+class GTKChapDisp : public GTKEntryDisp {
+public:
+ GTKChapDisp(GtkWidget *gtkText) : GTKEntryDisp(gtkText) {}
+ virtual char Display(SWModule &imodule);
+};
+
+class MainWindow {
+ bool skipLookup;
+ GtkWidget *mainWindow;
+ GtkWidget *mainPanel;
+ GtkWidget *headerPanel;
+ GtkWidget *handlebox3;
+ GtkWidget *menubar4;
+ GtkWidget *File3;
+ GtkWidget *menu13;
+ GtkWidget *Exit3;
+ GtkWidget *View3;
+ GtkWidget *Help;
+ GtkWidget *menu14;
+ GtkWidget *menuView;
+ GtkWidget *menuCommentaries;
+ GtkWidget *menuDictionaries;
+ GtkWidget *commentaries;
+ GtkWidget *dictionaries;
+ GtkWidget *About;
+ GtkWidget *handlebox4;
+ GtkWidget *hbox6;
+ GtkWidget *label2;
+ GtkWidget *lookupText;
+ GtkWidget *chapBox;
+ GtkWidget *verseBox;
+ GtkWidget *hbox2;
+ GtkWidget *moduleText;
+ GtkWidget *handlebox5;
+ GtkWidget *showSearchButton;
+ GtkWidget *searchPanel;
+ GtkWidget *hbox4;
+ GtkWidget *searchText;
+ GtkWidget *searchButton;
+ GtkWidget *searchSettingsPanel;
+ GtkWidget *searchTypePanel;
+ GSList *searchType_group;
+ GtkWidget *regexSearch;
+ GtkWidget *phraseSearch;
+ GtkWidget *multiWordSearch;
+ GtkWidget *searchOptionsPanel;
+ GtkWidget *caseSensitive;
+ GtkWidget *resultList;
+ GtkWidget *statusbar1;
+ GtkWidget *textScrolledWindow;
+ GtkWidget *textScrollbar;
+ GtkWidget *arrow1;
+ GtkWidget *arrow2;
+
+
+ SWMgr *mainMgr;
+ SWModule *curMod;
+ SWDisplay *chapDisplay;
+ SWDisplay *entryDisplay;
+public:
+ MainWindow();
+ ~MainWindow();
+ GtkWidget *create();
+ void initSWORD();
+ void lookupTextChanged();
+ void viewModActivate(GtkMenuItem *sender, gchar *modName);
+ void searchButtonClicked();
+ void showSearchButtonClicked();
+ void navigateButtonClicked(int direction);
+ void resultListSelectionChanged(GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data);
+};
+
+
+extern MainWindow *mainWindow;
+
+
+
diff --git a/apps/X11/micros/microssig.cpp b/apps/X11/micros/microssig.cpp
new file mode 100644
index 0000000..0739901
--- /dev/null
+++ b/apps/X11/micros/microssig.cpp
@@ -0,0 +1,125 @@
+/* Note: You are free to use whatever license you want.
+ Eventually you will be able to edit it within Glade. */
+
+/* micros
+ * Copyright (C) <YEAR> <AUTHORS>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
+#include <gtk/gtk.h>
+#include "micros.h"
+#include "microssig.h"
+
+int
+main (int argc, char *argv[])
+{
+ GtkWidget *mainWindow;
+
+ gtk_set_locale ();
+ gtk_init (&argc, &argv);
+
+ /*
+ * The following code was added by Glade to create one of each component
+ * (except popup menus), just so that you see something after building
+ * the project. Delete any components that you don't want shown initially.
+ */
+ mainWindow = create_mainWindow ();
+ gtk_widget_show (mainWindow);
+
+ gtk_main ();
+ return 0;
+}
+
+
+void
+on_Exit3_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+
+}
+
+
+void
+on_View3_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+
+}
+
+
+void
+on_Help_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+
+}
+
+
+void
+on_viewMod_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+ mainWindow->viewModActivate(menuitem, (gchar *)user_data);
+}
+
+
+void
+on_About_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+
+}
+
+
+void
+on_lookupText_changed (GtkEditable *editable,
+ gpointer user_data)
+{
+ mainWindow->lookupTextChanged();
+}
+
+
+void
+on_showSearchButton_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ mainWindow->showSearchButtonClicked();
+}
+
+void
+on_searchButton_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ mainWindow->searchButtonClicked();
+}
+
+
+void
+on_resultList_selection_changed (GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data)
+{
+ mainWindow->resultListSelectionChanged(clist, row, column, event, data);
+}
+
+
+void on_arrow1_button_press_event(GtkButton *button, gpointer user_data) {
+ mainWindow->navigateButtonClicked(0);
+}
+
+
+void on_arrow2_button_press_event(GtkButton *button, gpointer user_data) {
+ mainWindow->navigateButtonClicked(1);
+}
+
diff --git a/apps/X11/micros/microssig.h b/apps/X11/micros/microssig.h
new file mode 100644
index 0000000..8e29fb7
--- /dev/null
+++ b/apps/X11/micros/microssig.h
@@ -0,0 +1,67 @@
+/* Note: You are free to use whatever license you want.
+ Eventually you will be able to edit it within Glade. */
+
+/* micros
+ * Copyright (C) <YEAR> <AUTHORS>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
+#include <gtk/gtk.h>
+
+
+void
+on_Exit3_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_View3_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_Help_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_viewMod_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_About_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_lookupText_changed (GtkEditable *editable,
+ gpointer user_data);
+
+void
+on_searchButton_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_showSearchButton_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_resultList_selection_changed (GtkWidget *clist, gint row, gint column, GdkEventButton *event, gpointer data);
+
+void
+on_arrow1_button_press_event (GtkButton *button,
+ gpointer user_data);
+
+void
+on_arrow2_button_press_event (GtkButton *button,
+ gpointer user_data);
+
diff --git a/apps/X11/wxSword/Makefile b/apps/X11/wxSword/Makefile
new file mode 100644
index 0000000..736cf95
--- /dev/null
+++ b/apps/X11/wxSword/Makefile
@@ -0,0 +1,26 @@
+root := ../../..
+subdirs :=
+pre-targets :=
+targets := gui_sword
+bin := gui_sword
+include ${root}/Makefile.cfg
+
+cpp += gui_sword.cpp
+CPPFLAGS += -I. -I/usr/local/wxGTK/include -D__WXGTK__
+#CPPFLAGS += -I. -I/usr/local/wxGTK/include -I/usr/local/wxGTK/src/zlib -D__WXGTK__
+LFLAGS += -L/usr/X11/lib
+
+
+s = $(c) $(cpp)
+d = $(c:%.c=%.d) $(cpp:%.cpp=%.d)
+o = $(c:%.c=%.o) $(cpp:%.cpp=%.o)
+l = -lsword -lstdc++-lwx_gtk -lgtk -lgdk -lglib -lXext -lX11 -lm -ldl -lSM -lICE -lpthread-0.7
+
+
+gui_sword: $(o)
+ $(CC) -D__WXGTK__ $(LFLAGS) -o $@ $(o) $(l) $(l)
+
+
+ifneq ($(nodeps),yes)
+-include $(d)
+endif
diff --git a/apps/X11/wxSword/bak/gui_sword.mak b/apps/X11/wxSword/bak/gui_sword.mak
new file mode 100644
index 0000000..c6805d5
--- /dev/null
+++ b/apps/X11/wxSword/bak/gui_sword.mak
@@ -0,0 +1,18 @@
+sword.e : sword.o
+ egcs -pipe -o sword.e gui_sword.o -L. \
+ -L/home/lcortes/WXGUI/wxGTK/lib/Linux \
+ -L/home/lcortes/SWORD/sword/lib \
+ -lwx_gtk -L/usr/lib -L/usr/X11/lib -lgtk \
+ -lgdk -lglib -lXext -lX11 -lm -ldl -lSM \
+ -lmodules -lswmgr -lutilfuns -lfrontend -lkeys \
+ -lICE -lpthread-0.7 -lstdc++
+
+
+sword.o : gui_sword.C gui_sword.h
+ egcs -c -pipe -o gui_sword.o -Wall -g -I.. -D__WXGTK__ \
+ -I. -I.. -I/home/lcortes/WXGUI/wxGTK/include \
+ -I/home/lcortes/WXGUI/wxGTKsrc/zlib \
+ -I/home/lcortes/SWORD/sword/include \
+ -I/usr/lib/glib/include gui_sword.C
+
+
diff --git a/apps/X11/wxSword/bak/project.prj b/apps/X11/wxSword/bak/project.prj
new file mode 100644
index 0000000..8b6e7d5
--- /dev/null
+++ b/apps/X11/wxSword/bak/project.prj
@@ -0,0 +1,17 @@
+#
+# xwpe - project-file: project.prj
+# createted by xwpe version Version 1.5.9
+#
+
+
+CMP= egcs
+CMPFLAGS= -g -D__WXGTK__ -I. -I.. -I/home/lcortes/WXGUI/wxGTK/include -I/home/lcortes/WXGUI/wxGTKsrc/zlib -I/home/lcortes/SWORD/sword/include -I/usr/lib/glib/include
+LDFLAGS= -L. -L/home/lcortes/WXGUI/wxGTK/lib/Linux -L/home/lcortes/SWORD/sword/lib -lwx_gtk -L/usr/lib -L/usr/X11/lib -lgtk -lgdk -lglib -lXext -lX11 -lm -ldl -lSM -lmodules -lswmgr -lutilfuns -lfrontend -lkeys -lICE -lpthread-0.7 -lstdc++
+EXENAME= sword.e
+CMPSWTCH= gnu
+CMPMESSAGE= '${?*:warning:}\"${FILE}\", line ${LINE}:* at or near * \"${COLUMN=AFTER}\"'
+
+FILES= gui_sword.C
+
+install:
+
diff --git a/apps/X11/wxSword/bitmaps/copy.bmp b/apps/X11/wxSword/bitmaps/copy.bmp
new file mode 100644
index 0000000..4551a06
--- /dev/null
+++ b/apps/X11/wxSword/bitmaps/copy.bmp
Binary files differ
diff --git a/apps/X11/wxSword/bitmaps/copy.xpm b/apps/X11/wxSword/bitmaps/copy.xpm
new file mode 100644
index 0000000..47565c1
--- /dev/null
+++ b/apps/X11/wxSword/bitmaps/copy.xpm
@@ -0,0 +1,25 @@
+/* XPM */
+static char *copy_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"16 15 4 1",
+" c None",
+". c Black",
+"X c Gray100",
+"o c #000080",
+/* pixels */
+" ",
+" ...... ",
+" .XXXX.. ",
+" .XXXX.X. ",
+" .X..X.oooooo ",
+" .XXXXXoXXXXoo ",
+" .X....oXXXXoXo ",
+" .XXXXXoX..Xoooo",
+" .X....oXXXXXXXo",
+" .XXXXXoX.....Xo",
+" ......oXXXXXXXo",
+" oX.....Xo",
+" oXXXXXXXo",
+" ooooooooo",
+" "
+};
diff --git a/apps/X11/wxSword/bitmaps/cut.bmp b/apps/X11/wxSword/bitmaps/cut.bmp
new file mode 100644
index 0000000..1555433
--- /dev/null
+++ b/apps/X11/wxSword/bitmaps/cut.bmp
Binary files differ
diff --git a/apps/X11/wxSword/bitmaps/cut.xpm b/apps/X11/wxSword/bitmaps/cut.xpm
new file mode 100644
index 0000000..bfe7e95
--- /dev/null
+++ b/apps/X11/wxSword/bitmaps/cut.xpm
@@ -0,0 +1,24 @@
+/* XPM */
+static char *cut_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"16 15 3 1",
+" c None",
+". c Black",
+"X c #000080",
+/* pixels */
+" ",
+" . . ",
+" . . ",
+" . . ",
+" .. .. ",
+" . . ",
+" ... ",
+" . ",
+" X.X ",
+" X XXX ",
+" XXX X X ",
+" X X X X ",
+" X X X X ",
+" X X XX ",
+" XX "
+};
diff --git a/apps/X11/wxSword/bitmaps/help.bmp b/apps/X11/wxSword/bitmaps/help.bmp
new file mode 100644
index 0000000..2d9e692
--- /dev/null
+++ b/apps/X11/wxSword/bitmaps/help.bmp
Binary files differ
diff --git a/apps/X11/wxSword/bitmaps/help.xpm b/apps/X11/wxSword/bitmaps/help.xpm
new file mode 100644
index 0000000..50fdb41
--- /dev/null
+++ b/apps/X11/wxSword/bitmaps/help.xpm
@@ -0,0 +1,25 @@
+/* XPM */
+static char *help_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"16 15 4 1",
+" c None",
+". c Black",
+"X c Blue",
+"o c #000080",
+/* pixels */
+" ",
+" ...... ",
+" .XXXXX.. ",
+" .XX...oX.. ",
+" .X.. .X.. ",
+" .X.. .XX.. ",
+" .. .XX.. ",
+" .XX.. ",
+" .X.. ",
+" .X.. ",
+" .o.. ",
+" .. ",
+" .XX.. ",
+" .XX.. ",
+" ... "
+};
diff --git a/apps/X11/wxSword/bitmaps/new.bmp b/apps/X11/wxSword/bitmaps/new.bmp
new file mode 100644
index 0000000..d66feb2
--- /dev/null
+++ b/apps/X11/wxSword/bitmaps/new.bmp
Binary files differ
diff --git a/apps/X11/wxSword/bitmaps/new.xpm b/apps/X11/wxSword/bitmaps/new.xpm
new file mode 100644
index 0000000..754d2d2
--- /dev/null
+++ b/apps/X11/wxSword/bitmaps/new.xpm
@@ -0,0 +1,24 @@
+/* XPM */
+static char *new_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"16 15 3 1",
+" c None",
+". c Black",
+"X c Gray100",
+/* pixels */
+" ",
+" ........ ",
+" .XXXXXX.. ",
+" .XXXXXX.X. ",
+" .XXXXXX.... ",
+" .XXXXXXXXX. ",
+" .XXXXXXXXX. ",
+" .XXXXXXXXX. ",
+" .XXXXXXXXX. ",
+" .XXXXXXXXX. ",
+" .XXXXXXXXX. ",
+" .XXXXXXXXX. ",
+" .XXXXXXXXX. ",
+" ........... ",
+" "
+};
diff --git a/apps/X11/wxSword/bitmaps/open.bmp b/apps/X11/wxSword/bitmaps/open.bmp
new file mode 100644
index 0000000..bbf93fe
--- /dev/null
+++ b/apps/X11/wxSword/bitmaps/open.bmp
Binary files differ
diff --git a/apps/X11/wxSword/bitmaps/open.xpm b/apps/X11/wxSword/bitmaps/open.xpm
new file mode 100644
index 0000000..54748e9
--- /dev/null
+++ b/apps/X11/wxSword/bitmaps/open.xpm
@@ -0,0 +1,26 @@
+/* XPM */
+static char *open_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"16 15 5 1",
+" c None",
+". c Black",
+"X c Yellow",
+"o c Gray100",
+"O c #bfbf00",
+/* pixels */
+" ",
+" ... ",
+" . . .",
+" ..",
+" ... ...",
+" .XoX....... ",
+" .oXoXoXoXo. ",
+" .XoXoXoXoX. ",
+" .oXoX..........",
+" .XoX.OOOOOOOOO.",
+" .oo.OOOOOOOOO. ",
+" .X.OOOOOOOOO. ",
+" ..OOOOOOOOO. ",
+" ........... ",
+" "
+};
diff --git a/apps/X11/wxSword/bitmaps/page.bmp b/apps/X11/wxSword/bitmaps/page.bmp
new file mode 100644
index 0000000..3dbd4b0
--- /dev/null
+++ b/apps/X11/wxSword/bitmaps/page.bmp
Binary files differ
diff --git a/apps/X11/wxSword/bitmaps/paste.bmp b/apps/X11/wxSword/bitmaps/paste.bmp
new file mode 100644
index 0000000..564f514
--- /dev/null
+++ b/apps/X11/wxSword/bitmaps/paste.bmp
Binary files differ
diff --git a/apps/X11/wxSword/bitmaps/preview.bmp b/apps/X11/wxSword/bitmaps/preview.bmp
new file mode 100644
index 0000000..da1f4db
--- /dev/null
+++ b/apps/X11/wxSword/bitmaps/preview.bmp
Binary files differ
diff --git a/apps/X11/wxSword/bitmaps/preview.xpm b/apps/X11/wxSword/bitmaps/preview.xpm
new file mode 100644
index 0000000..0dfdca4
--- /dev/null
+++ b/apps/X11/wxSword/bitmaps/preview.xpm
@@ -0,0 +1,26 @@
+/* XPM */
+static char *preview_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"16 15 5 1",
+" c Black",
+". c None",
+"X c Gray100",
+"o c #808080",
+"O c Cyan",
+/* pixels */
+" .......",
+" XXXXXXX ......",
+" XXXXXXX . .....",
+" XXXXXXX ....",
+" XXXXXXXXXX ....",
+" XXXXXXX ....",
+" XXXXXX o..o ...",
+" XXXXX oOO.oo ..",
+" XXXXX .O..o. ..",
+" XXXXX ....o. ..",
+" XXXXX o..Ooo ..",
+" XXXXXX o..o o..",
+" XXXXXXX o .",
+" XXXXXXXXXX . ",
+" .. "
+};
diff --git a/apps/X11/wxSword/bitmaps/print.bmp b/apps/X11/wxSword/bitmaps/print.bmp
new file mode 100644
index 0000000..00319b5
--- /dev/null
+++ b/apps/X11/wxSword/bitmaps/print.bmp
Binary files differ
diff --git a/apps/X11/wxSword/bitmaps/print.xpm b/apps/X11/wxSword/bitmaps/print.xpm
new file mode 100644
index 0000000..3c2e2be
--- /dev/null
+++ b/apps/X11/wxSword/bitmaps/print.xpm
@@ -0,0 +1,26 @@
+/* XPM */
+static char *print_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"16 15 5 1",
+" c None",
+". c Black",
+"X c Gray100",
+"o c #808000",
+"O c Yellow",
+/* pixels */
+" ",
+" ......... ",
+" .XXXXXXXX. ",
+" .X.....X. ",
+" .XXXXXXXX. ",
+" .X.....X.... ",
+" .XXXXXXXX. . .",
+" .......... . ..",
+". . . .",
+"............. .",
+". ooo . . ",
+". OOO ... ",
+"............. . ",
+" . . . ",
+" ........... "
+};
diff --git a/apps/X11/wxSword/bitmaps/save.bmp b/apps/X11/wxSword/bitmaps/save.bmp
new file mode 100644
index 0000000..56dd10b
--- /dev/null
+++ b/apps/X11/wxSword/bitmaps/save.bmp
Binary files differ
diff --git a/apps/X11/wxSword/bitmaps/save.xpm b/apps/X11/wxSword/bitmaps/save.xpm
new file mode 100644
index 0000000..01b18f9
--- /dev/null
+++ b/apps/X11/wxSword/bitmaps/save.xpm
@@ -0,0 +1,25 @@
+/* XPM */
+static char *save_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"16 15 4 1",
+" c None",
+". c Black",
+"X c #808000",
+"o c #808080",
+/* pixels */
+" ",
+" .............. ",
+" .X. . . ",
+" .X. ... ",
+" .X. .X. ",
+" .X. .X. ",
+" .X. .X. ",
+" .X. .X. ",
+" .XX........oX. ",
+" .XXXXXXXXXXXX. ",
+" .XX.........X. ",
+" .XX...... .X. ",
+" .XX...... .X. ",
+" .XX...... .X. ",
+" ............. "
+};
diff --git a/apps/X11/wxSword/gui_sword.cpp b/apps/X11/wxSword/gui_sword.cpp
new file mode 100644
index 0000000..33d50ca
--- /dev/null
+++ b/apps/X11/wxSword/gui_sword.cpp
@@ -0,0 +1,1075 @@
+// --------------------------------------------------------------
+// For compilers that support precompilation, includes "wx/wx.h"
+
+#include "wx/wxprec.h"
+
+#ifndef WX_PRECOMP
+#include "wx/wx.h"
+#endif
+
+// Things for Sword
+#include <stdio.h>
+#include <iostream.h>
+#include <versekey.h>
+#include <rawtext.h>
+#include <zcom.h>
+#include <rawcom.h>
+#include <rawgbf.h>
+#include <stdlib.h>
+#include <rawcom.h>
+#include <rawld.h>
+#include <regex.h>
+
+#include <swmgr.h>
+
+// I added
+#include <stl.h>
+#include <strstream.h>
+
+#include "wx/notebook.h"
+#include "wx/imaglist.h"
+#include "wx/toolbar.h"
+#include "gui_sword.h"
+
+
+#ifdef __WXGTK__
+#include "mondrian.xpm"
+#include "bitmaps/new.xpm"
+#include "bitmaps/open.xpm"
+#include "bitmaps/save.xpm"
+#include "bitmaps/copy.xpm"
+#include "bitmaps/cut.xpm"
+
+// #include "bitmaps/paste.xpm"
+
+#include "bitmaps/print.xpm"
+#include "bitmaps/preview.xpm"
+#include "bitmaps/help.xpm"
+#endif
+
+#include "jptr.h"
+
+
+int ID_CHOICE = 300;
+
+// ===============================================================================
+// Global Declarations
+// ===============================================================================
+class ttextVec : public vector<clJPTR<wxTextCtrl> >
+{
+};
+
+class tpanelVec : public vector<clJPTR<wxPanel> >
+{
+};
+
+class globals
+{
+private:
+ static int id_counter;
+
+public:
+ int get_id()
+ {
+ return (id_counter ++ );
+ }
+};
+
+int globals::id_counter = 10;
+globals gPool;
+
+
+IMPLEMENT_APP(MyApp)
+
+// =============================================
+// CLASS: cNewNote
+//
+// Contain all information for a particular
+// notebook control.
+//
+// =============================================
+ template< class tType >
+class cNewNote
+{
+public:
+ class tVec : public vector< clJPTR<tType> >
+ {
+ };
+
+private:
+ ttextVec m_vpTextCtrl;
+ tpanelVec m_vpPanel;
+
+private:
+ clJPTR<wxNotebook> m_notebook;
+ tVec m_vBookList;
+
+public:
+
+ cNewNote()
+ {
+ }
+
+ void Init( wxPanel* pMainPanel )
+ {
+ assert( m_vBookList.size() > 0 && "use AddPage First!" );
+
+ // Create a new NOTEBOOK item
+ m_notebook = new wxNotebook( pMainPanel, gPool.get_id() );
+
+ // Add all the pages
+ make_panels ();
+
+ // Layout NoteBook in Main Panel
+ wxLayoutConstraints *pLayout = new wxLayoutConstraints;
+ pLayout->left.SameAs ( pMainPanel, wxLeft );
+ pLayout->top.SameAs ( pMainPanel, wxTop );
+ pLayout->right.SameAs ( pMainPanel, wxRight);
+ pLayout->bottom.SameAs ( pMainPanel, wxBottom);
+ m_notebook -> SetConstraints( pLayout );
+
+ // Create Initial Verse and Populate notebook texts.
+ // Update all commentaries and bibles
+ // NewVerse( wxString( "Genesis 1:1" ));
+ }
+
+ // -----------------------------------------------
+ // Create a note book tab, including
+ // panel, name of tab, and text area.
+ //
+ // -----------------------------------------------
+ void make_panels()
+ {
+ tVec& oList = m_vBookList;
+ tVec::const_iterator iWalk;
+
+ // For all books in our list do ...
+ for( iWalk = oList.begin(); iWalk != oList.end(); iWalk ++ )
+ {
+ // Create a new Panel
+ m_vpPanel.push_back( new wxPanel( m_notebook.ptr() ) );
+ m_vpPanel.back() -> SetAutoLayout( TRUE );
+
+ // Create a Text control for our panel
+ m_vpTextCtrl.push_back( new wxTextCtrl( (m_vpPanel.back()).ptr(),
+ gPool.get_id(), "",
+ wxPoint(-1,-1), wxSize(-1,-1), wxTE_MULTILINE ));
+
+ // Remove right to edit
+ m_vpTextCtrl.back() -> SetEditable( FALSE );
+
+ // Set layout for this panel
+ wxLayoutConstraints *pLayout = new wxLayoutConstraints;
+ pLayout->left.SameAs ( (m_vpPanel.back()).ptr(), wxLeft );
+ pLayout->top.SameAs ( (m_vpPanel.back()).ptr(), wxTop );
+ pLayout->right.SameAs ( (m_vpPanel.back()).ptr(), wxRight);
+ pLayout->bottom.SameAs ( (m_vpPanel.back()).ptr(), wxBottom);
+ m_vpTextCtrl.back() -> SetConstraints(pLayout);
+
+ // SET: Tab Name
+ m_notebook->AddPage( (m_vpPanel.back()).ptr(), (*iWalk)->Name(NULL), FALSE);
+ }
+ }
+
+ // Adds a book I want to reference in my NoteBook.
+ void AddBook( tType* pABook )
+ {
+ m_vBookList.push_back( pABook );
+ }
+
+
+ // ---------------------------------------------------------
+ // NewVerse
+ //
+ //
+ void CommentaryVerse( wxString sVerse )
+ {
+ VerseKey oKey = (char * ) sVerse.c_str();
+
+ oKey.Persist(1);
+
+ tVec::iterator iWalk;
+
+ // For every book in my list of books
+ // set this verse
+ for( iWalk = m_vBookList.begin();
+ iWalk != m_vBookList.end();
+ iWalk ++ )
+ {
+ (*iWalk) -> SetKey( oKey );
+ }
+
+ ttextVec::iterator iText;
+ tVec::iterator iBooks = m_vBookList.begin();
+
+ // For every book, update verse info in text control.
+ for( iText = m_vpTextCtrl.begin();
+ iText != m_vpTextCtrl.end();
+ iText ++, iBooks ++ )
+ {
+ // (*iText) -> SetValue( wxString( (*iBooks)->KeyText() ));
+ (*iText) -> SetValue( wxString( * ((*iBooks).ptr()) ));
+ }
+ }
+ // ----------------------------------------------------
+ // Set the chapter in all the relevant note books
+ //
+ void BibleVerse( wxString sBook, const int nChapter, const int nVerse )
+ {
+ wxString sTop;
+ sTop.Printf( "%s %d:%d", sBook.c_str(), nChapter, nVerse );
+
+ VerseKey oKey = (char * ) sTop.c_str();
+ oKey.Persist(1);
+
+ tVec::iterator iWalk;
+
+ // For every book in my list of books
+ // set this verse
+ for( iWalk = m_vBookList.begin(); iWalk != m_vBookList.end(); iWalk ++ )
+ {
+ (*iWalk) -> SetKey( oKey );
+ }
+
+ ttextVec::iterator iText;
+ tVec::iterator iBooks = m_vBookList.begin();
+
+ // For every book, update verse info in text control.
+ for( iText = m_vpTextCtrl.begin();
+ iText != m_vpTextCtrl.end();
+ iText ++, iBooks ++ )
+ {
+ int i = 1;
+ ostrstream oOut;
+ int nStartPos = 0;
+
+ // Clear Previous Text
+ (*iText) -> SetValue("");
+
+ // Add new Text
+ for( oKey = (char * ) sTop.c_str() ; oKey.Chapter() == nChapter; oKey ++, i++ )
+ {
+ if ( i == nVerse )
+ {
+ // Here is the verse we are interested in, mark it in some special
+ // way.
+ oOut << " <" << i << "> ";
+ }
+ else
+ oOut << " [" << i <<"] " ;
+
+ oOut << * ((*iBooks).ptr());
+
+ if ( i == nVerse )
+ {
+ nStartPos = oOut.pcount();
+ }
+ }
+ oOut.put(0);
+ // Write out entire chapter
+ (*iText) -> WriteText( oOut.str());
+
+ // @todo: At this point you might want to
+ // 1. Grab a dynamic scroll bar
+ // 2. If you have the scroll bar, adjust it to the
+ // correct position, and with any insight
+ // the window should scroll to the appropriate
+ // verse.
+ // Exercise is left to the reader
+
+ }
+ }
+
+
+
+ void DictionaryKey( wxString sWord ) {
+ ttextVec::iterator iText;
+ tVec::iterator iBooks = m_vBookList.begin();
+
+ // For every book, update verse info in text control.
+ for( iText = m_vpTextCtrl.begin(); iText != m_vpTextCtrl.end(); iText ++, iBooks ++ ) {
+ ostrstream oOut;
+
+ (*iBooks)->SetKey( sWord.c_str() );
+
+ // Clear Previous Text
+ (*iText) -> SetValue("");
+
+ // Add new Text
+ // This 'if' checks to make sure we have an entry
+ // It also forces the module to retrieve its text which forces KeyText to closest
+ // match. Without it, the call to KeyText would get exactly what we set with
+ // SetKey, above.
+ if (strlen(* ((*iBooks).ptr())) > 0) {
+ oOut << "[ " << ((*iBooks).ptr()) -> KeyText() << " ]" << endl;
+ oOut << * ((*iBooks).ptr()) << endl;
+ oOut.put(0);
+ (*iText) -> WriteText( oOut.str());
+ }
+ }
+ }
+
+ // NEW UPDATE
+
+ void UpdateSearch( wxString sWord )
+ {
+ ttextVec::iterator iText;
+ tVec::iterator iBooks = m_vBookList.begin();
+
+ // For every book, update verse info in text control.
+ for( iText = m_vpTextCtrl.begin();
+ iText != m_vpTextCtrl.end();
+ iText ++, iBooks ++ )
+ {
+ ostrstream oOut;
+
+ // Get the search results and start a key here.
+ SWListKey& oSearchResults = (*iBooks)->Search( sWord );
+ oSearchResults.Persist( true );
+ (*iBooks)->SetKey( oSearchResults );
+
+ // Clear Previous Text
+ (*iText) -> SetValue("");
+
+ // Add new Text
+ for( oSearchResults = TOP;
+ !oSearchResults.Error();
+ oSearchResults ++ )
+ {
+ oOut << (const char *) oSearchResults << ":" << endl;
+ oOut << * ((*iBooks).ptr()) << endl;
+ }
+ // Write out all matches
+ oOut.put(0);
+ (*iText) -> WriteText( oOut.str());
+ }
+ }
+
+
+
+ // ---------------------------------------------------------
+ // UpdateSearch
+ // Given a word, update all windows to reflect
+ // that word.
+ // NOTE: This may only be need by the Definition
+ // Windows.
+ //
+ void OLD_UpdateSearch( const wxString sWord )
+ {
+ SWListKey oList;
+ tVec::iterator iWalk;
+ ttextVec::iterator iText = m_vpTextCtrl.begin();
+ char szBuff[5000] = { 0 };
+
+ for( iWalk = m_vBookList.begin();
+ iWalk != m_vBookList.end();
+ iWalk ++ )
+ {
+ // For all the matches do:
+ for( SWListKey oListKey = (*iWalk) -> Search( sWord.c_str(), REG_ICASE );
+ !oListKey.Error();
+ oListKey++ )
+ {
+ strcat( szBuff, (const char *) oListKey );
+ strcat( szBuff, "\n\n" );
+ }
+
+ // Update Text of Notebook
+ (*iText) -> SetValue( wxString( szBuff ) );
+ }
+ return;
+ }
+
+
+};
+
+
+
+
+// --------------------------------------------------------
+// CLASS: CHEADLINE
+//
+//
+
+class cHeadLine
+{
+public:
+ clJPTR<wxComboBox> m_pBible;
+ clJPTR<wxComboBox> m_pChapter;
+ clJPTR<wxComboBox> m_pVerse;
+private:
+ clJPTR<wxButton> m_pButton;
+
+
+private: // member functions
+ // ----------------------------------------------------------
+ // Find Book info in one of our 2 book lists.
+ // ---------------------------------------------------------
+ struct sbook* FindBook( const wxString& sBook )
+ {
+ static const VerseKey oStep;
+
+
+ for(int i = 0; i < 2; i ++ )
+ {
+ for( int j = 0; j < oStep.BMAX[i]; j ++ )
+ {
+ if ( wxStringEq(sBook, wxString(oStep.books[i][j].name)) )
+ {
+ return &oStep.books[i][j];
+ }
+ }
+ }
+ return ( NULL );
+ }
+
+public:
+ cHeadLine( wxPanel* pPanel)
+ {
+ static wxString choices[ 200 ];
+ static VerseKey oStep;
+ int k = 0;
+
+ // Initialize STRINGS of books of bible
+ for( int i = 0; i < 2; i ++ )
+ {
+ for( int j = 0; j < oStep.BMAX[i]; j ++ )
+ {
+ choices[k++] = wxString( oStep.books[i][j].name );
+ }
+ }
+
+ // Create Bible Book Selector
+ m_pBible = new wxComboBox( pPanel ,
+ ID_CHOICE+1, choices[0], wxPoint(10,10),
+ wxSize(200,-1), k, choices );
+
+ m_pBible -> SetEditable( FALSE );
+
+ // Create Chapter Selector
+ m_pChapter = new wxComboBox( pPanel ,
+ ID_CHOICE+2, "", wxPoint(220,10),
+ wxSize(50,-1) );
+
+ m_pChapter -> SetEditable( FALSE );
+
+ // Create Verse Selector
+
+ m_pVerse = new wxComboBox( pPanel ,
+ ID_CHOICE+3, "", wxPoint(280,10),
+ wxSize(50,-1) );
+
+ m_pVerse -> SetEditable( FALSE );
+
+ // Create Button for Search for Verse NOW.
+ m_pButton = new wxButton( pPanel,
+ ID_CHOICE+4, "GO!", wxPoint( 340, 10),
+ wxSize( 60 , -1 ));
+
+ UpdateChapter( choices[0] );
+ UpdateVerse( choices[0], 0 );
+ }
+
+ // -----------------------------------------------------
+ // UpdateChapter
+ // Set all chapter numbers for the 1st chapter
+ // of this particular book.
+ //
+ //
+ void UpdateChapter( const wxString& sBook )
+ {
+ struct sbook* pFound = NULL;
+ wxString sTemp;
+
+ // Find Struct of Book Info
+ pFound = FindBook( sBook );
+ assert( pFound && "This should always find something!");
+
+ // Remove all elements from chapter control.
+ m_pChapter->Clear();
+
+ // Fill List of Chapters
+ for( int i = 0; i < pFound->chapmax; i ++ )
+ {
+ sTemp.Printf("%2d", i + 1 );
+ m_pChapter->Append( sTemp );
+ }
+ }
+
+
+ // -----------------------------------------------------
+ // UpdateVerse
+ // Set all verses for the 1st verse of this
+ // particular chapter, in this particular
+ // book.
+ //
+ UpdateVerse( wxString sBook, const int iChapter )
+ {
+ struct sbook* pFound = NULL;
+
+ // Find Struct of Book Info
+ pFound = FindBook( sBook );
+ assert( pFound && "This should always find something!");
+
+ wxString sTemp;
+
+ m_pVerse -> Clear();
+ for( int i = 0; i < pFound->versemax[iChapter]; i ++ )
+ {
+ sTemp.Printf( "%d", i + 1 );
+ m_pVerse->Append( sTemp );
+ }
+ }
+};
+
+
+
+// ===================================================================
+// CLASS: CDEFHEADLINE
+// Contain Headliner information about Definition notebook.
+//
+// @todo: Looks like a kludge - fix.
+int WID_STATICTEXT = 100;
+int WID_TEXT = WID_STATICTEXT + 1;
+
+
+class cDefHeadLine
+{
+public:
+ clJPTR<wxTextCtrl> m_pSearchCtrl;
+
+public:
+ cDefHeadLine(wxPanel* pPanel)
+ {
+
+ // Create Bible Book Selector
+ new wxStaticText( pPanel,
+ WID_STATICTEXT, "Dictionary Key:",
+ wxPoint( 10, 15), wxSize( 100, -1 ),
+ wxRAISED_BORDER);
+
+ m_pSearchCtrl = new wxTextCtrl( pPanel,
+ WID_TEXT, "", wxPoint(105,10),
+ wxSize(200,-1), wxTE_PROCESS_ENTER);
+ }
+};
+
+
+// ===================================================================
+// CLASS: MyFrame
+//
+// Define a new frame
+class MyFrame: public wxFrame
+{
+public:
+ wxPanel* m_pBiblePanel;
+ wxPanel* m_pCommentPanel;
+ wxPanel* m_pDefPanel;
+ wxPanel* m_pHeadLine;
+ wxPanel* m_pDefHeadLine;
+
+ cHeadLine* m_pcHeadLine;
+ cDefHeadLine* m_pcDefHeadLine;
+
+ cNewNote<SWModule>* m_pcNoteBible;
+ cNewNote<SWModule>* m_pcNoteCommentary;
+ cNewNote<SWModule>* m_pcNoteDef;
+
+public:
+ MyFrame(wxFrame *parent, wxWindowID id = -1, const wxString& title = "wxToolBar Sample",
+ const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
+ long style = wxDEFAULT_FRAME_STYLE);
+
+ virtual ~MyFrame();
+
+public:
+ // Event Handlers
+ void OnCloseWindow(wxCloseEvent& event);
+ void OnQuit(wxCommandEvent& event);
+ void OnAbout(wxCommandEvent& event);
+ void OnToolLeftClick(wxCommandEvent& event);
+ void OnToolEnter(wxCommandEvent& event);
+ void OnBookUpdate( wxCommandEvent& event );
+ void OnChapterUpdate( wxCommandEvent& event );
+ void OnGoButton( wxCommandEvent& event );
+ void OnDefinitionSearch( wxCommandEvent& event );
+
+ DECLARE_EVENT_TABLE()
+
+
+ public:
+ SWMgr *mainMgr;
+ char CreateTextPane(SWModule *mod, char *font = 0);
+ char CreateCommentPane(SWModule *mod);
+ char CreateLDPane(SWModule *mod);
+};
+
+
+// -----------------------------------------------------------------------
+// The `main program' equivalent, creating the windows and returning the
+// main frame
+// -----------------------------------------------------------------------
+bool MyApp::OnInit(void)
+{
+ // CREATE Main Frame
+ MyFrame* pFrame =
+ new MyFrame((wxFrame *) NULL, -1,
+ (const wxString) "Sword Project 1.0",
+ wxPoint(100, 100), wxSize(650, 500));
+
+ // CREATE Status Line
+ pFrame -> CreateStatusBar();
+
+ // SET: Auto Layout
+ pFrame -> SetAutoLayout( TRUE );
+
+ // SET: Icon
+ pFrame->SetIcon( wxIcon(mondrian_xpm) );
+
+ // CREATE File Menu
+ wxMenu *fileMenu = new wxMenu;
+
+ fileMenu->Append(wxID_EXIT, "E&xit");
+
+ // CREATE Help Menu
+ wxMenu *helpMenu = new wxMenu;
+ helpMenu->Append(wxID_HELP, "&About");
+
+ // CREATE Menu Bar
+ wxMenuBar* menuBar = new wxMenuBar;
+
+ menuBar->Append(fileMenu, "&File");
+ menuBar->Append(helpMenu, "&Help");
+
+ // ASSOCIATE: Menubar and Frame
+ pFrame->SetMenuBar(menuBar);
+
+ // CREATE: toolbar
+ pFrame->CreateToolBar(wxNO_BORDER|wxHORIZONTAL|wxTB_FLAT, ID_TOOLBAR);
+
+ // INITIALIZE: toolbar
+ InitToolbar(pFrame->GetToolBar());
+
+ // Text Message
+ pFrame->SetStatusText("Alpha $Revision: 1.1.1.1 $:Linux Version:Sword Development Team.");
+
+ // Add Panel Info ==============================================
+
+ // CREATE: Bible All Major Panels
+ pFrame->m_pBiblePanel = new wxPanel(pFrame, 0, 0, 10, 10, wxTAB_TRAVERSAL);
+ pFrame->m_pCommentPanel = new wxPanel(pFrame, 0, 0, 10, 10, wxTAB_TRAVERSAL);
+ pFrame->m_pDefPanel = new wxPanel(pFrame, 0, 0, 10, 10, wxTAB_TRAVERSAL);
+ pFrame->m_pHeadLine = new wxPanel(pFrame, 0, 0, 10, 10, wxRAISED_BORDER);
+ pFrame->m_pDefHeadLine = new wxPanel(pFrame, 0, 0, 10, 10, wxRAISED_BORDER);
+
+ // pFrame->m_pDefPanel->SetBackgroundColour(wxColour(192, 192, 192));
+
+ // Set constraints for panel subwindow
+ wxLayoutConstraints *pLayout = new wxLayoutConstraints;
+
+ // Set constraints for Head Line Window
+
+ pLayout->left.SameAs ( pFrame, wxLeft );
+ pLayout->right.SameAs ( pFrame, wxRight);
+ pLayout->top.SameAs ( pFrame, wxTop );
+ pLayout->height.PercentOf ( pFrame, wxHeight, 10 );
+
+ pFrame-> m_pHeadLine ->SetConstraints( pLayout );
+
+ // Bible Constraints
+ pLayout = new wxLayoutConstraints;
+ pLayout->left.SameAs (pFrame, wxLeft);
+ pLayout->right.PercentOf (pFrame, wxWidth, 60);
+ pLayout->top.SameAs ( pFrame -> m_pHeadLine, wxBottom );
+ pLayout->height.PercentOf (pFrame, wxHeight, 50);
+
+ pFrame-> m_pBiblePanel -> SetConstraints( pLayout );
+
+ // Commentary Constraints
+ pLayout = new wxLayoutConstraints;
+
+ pLayout->left.SameAs ( pFrame->m_pBiblePanel, wxRight );
+ pLayout->right.SameAs ( pFrame, wxRight );
+ pLayout->top.SameAs ( pFrame -> m_pHeadLine, wxBottom );
+ pLayout->height.PercentOf ( pFrame, wxHeight, 50 );
+
+ pFrame-> m_pCommentPanel -> SetConstraints( pLayout );
+
+ // Set constraints for Definition Search
+ pLayout = new wxLayoutConstraints;
+
+ pLayout->left.SameAs ( pFrame, wxLeft );
+ pLayout->right.SameAs ( pFrame, wxRight);
+ pLayout->top.SameAs ( pFrame->m_pBiblePanel, wxBottom );
+ pLayout->height.PercentOf ( pFrame, wxHeight, 10 );
+
+ pFrame -> m_pDefHeadLine -> SetConstraints( pLayout );
+
+ // Definition Window
+ pLayout = new wxLayoutConstraints;
+ pLayout->left.SameAs ( pFrame, wxLeft );
+ pLayout->right.SameAs ( pFrame, wxRight);
+ pLayout->top.SameAs ( pFrame->m_pDefHeadLine, wxBottom );
+ pLayout->bottom.SameAs ( pFrame, wxBottom);
+
+ pFrame-> m_pDefPanel ->SetConstraints( pLayout );
+
+
+ // =====================================================
+ // Start loading modules.
+ //
+ pFrame -> m_pcHeadLine = new cHeadLine( pFrame -> m_pHeadLine );
+ pFrame -> m_pcDefHeadLine = new cDefHeadLine( pFrame -> m_pDefHeadLine );
+
+ pFrame -> m_pcNoteBible = new cNewNote<SWModule>;
+ pFrame -> m_pcNoteCommentary = new cNewNote<SWModule>;
+ pFrame -> m_pcNoteDef = new cNewNote<SWModule>;
+
+ ModMap::iterator it;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ char *font;
+
+ pFrame->mainMgr = new SWMgr();
+
+ // --------------------------------------------
+ // @todo: Need to find a better way to exit.
+ //
+ assert( (pFrame -> mainMgr -> Modules.size() > 0) && "No modules found!" );
+
+ for (it = pFrame->mainMgr->Modules.begin();
+ it != pFrame->mainMgr->Modules.end(); it++)
+ {
+ if (!strcmp((*it).second->Type(), "Biblical Texts"))
+ {
+ font = 0;
+ if ((sit = pFrame->mainMgr->config->Sections.find((*it).second->Name())) != pFrame->mainMgr->config->Sections.end())
+ {
+ if ((eit = (*sit).second.find("Font")) != (*sit).second.end())
+ {
+ font = (char *)(*eit).second.c_str();
+ }
+ }
+
+ // question: why is font null?
+ // answer: most of the time, a unique font is not
+ // specified in mods.conf with 'font='
+ cout << font << endl;
+ pFrame->CreateTextPane((*it).second, font);
+ }
+
+ if (!strcmp((*it).second->Type(), "Commentaries"))
+ pFrame->CreateCommentPane((*it).second);
+
+ if (!strcmp((*it).second->Type(), "Lexicons / Dictionaries"))
+ pFrame->CreateLDPane((*it).second);
+ }
+
+ // Initialize all views with data
+ if ( pFrame && pFrame -> m_pcNoteBible )
+ pFrame -> m_pcNoteBible -> Init( pFrame -> m_pBiblePanel );
+
+ if ( pFrame && pFrame -> m_pcNoteCommentary )
+ pFrame -> m_pcNoteCommentary -> Init( pFrame -> m_pCommentPanel );
+
+ if (pFrame && pFrame -> m_pcNoteDef )
+ pFrame -> m_pcNoteDef -> Init( pFrame -> m_pDefPanel );
+
+ // -----------------------------------------------
+ // Okay, Initial verse would be a nice touch.
+ //
+ wxString sBook = "Genesis";
+ wxString sStart = sBook + " 1:1";
+
+ if (pFrame && pFrame -> m_pcNoteBible )
+ pFrame -> m_pcNoteBible -> BibleVerse( sBook, 1, 1 );
+
+ if (pFrame && pFrame -> m_pcNoteCommentary )
+ pFrame -> m_pcNoteCommentary -> CommentaryVerse( sStart );
+
+ // Force a resize. This should probably be replaced by a call to a wxFrame
+ // function that lays out default decorations and the remaining content window.
+
+ // pFrame->OnSize(wxSizeEvent(wxSize(-1, -1), pFrame->GetId()) );
+ pFrame->Show(TRUE);
+
+ // =================================================
+
+ SetTopWindow( pFrame );
+ return TRUE;
+}
+
+
+/******************************************************************************
+ * CreateTextPane - creates a new pane in the tabsheet for a Bible Text
+ *
+ * mod - Bible text module to associate with this panel
+ * font - font to use for displaying this module (default = 0)
+ *
+ * RETURN: error status
+ */
+
+char MyFrame::CreateTextPane(SWModule *mod, char *font)
+{
+ // @todo: need to make use of font for displaying Greek MSS
+
+ m_pcNoteBible->AddBook(mod);
+ return 0;
+}
+
+
+/******************************************************************************
+ * CreateCommentPane - creates a new pane in the tabsheet for a Bible
+ * Commentary
+ *
+ * mod - Bible commentary module to associate with this panel
+ *
+ * RETURN: error status
+ */
+
+char MyFrame::CreateCommentPane(SWModule *mod)
+{
+ m_pcNoteCommentary->AddBook(mod);
+ return 0;
+}
+
+
+/******************************************************************************
+ * CreateLDPane - creates a new pane in the tabsheet for a Bible
+ * Lexicon or Dictionary
+ *
+ * mod - Bible text module to associate with this panel
+ *
+ * RETURN: error status
+ */
+
+char MyFrame::CreateLDPane(SWModule *mod)
+{
+ m_pcNoteDef->AddBook(mod);
+ return 0;
+}
+
+
+
+
+bool MyApp::InitToolbar(wxToolBar* toolBar)
+{
+ toolBar->SetMargins(5, 5);
+
+ // Set up toolbar
+ wxBitmap* toolBarBitmaps[8];
+
+ toolBarBitmaps[0] = new wxBitmap( new_xpm );
+ toolBarBitmaps[1] = new wxBitmap( open_xpm );
+ toolBarBitmaps[2] = new wxBitmap( save_xpm );
+ toolBarBitmaps[3] = new wxBitmap( copy_xpm );
+ toolBarBitmaps[4] = new wxBitmap( cut_xpm );
+ // toolBarBitmaps[5] = new wxBitmap( paste_xpm );
+ toolBarBitmaps[5] = new wxBitmap( preview_xpm );
+ toolBarBitmaps[6] = new wxBitmap( print_xpm );
+ toolBarBitmaps[7] = new wxBitmap( help_xpm );
+
+ int width = 16;
+ int currentX = 5;
+
+ toolBar->AddTool(wxID_NEW, *(toolBarBitmaps[0]), wxNullBitmap, FALSE, (float)currentX, -1, (wxObject *) NULL, "New file");
+ currentX += width + 5;
+ toolBar->AddTool(wxID_OPEN, *(toolBarBitmaps[1]), wxNullBitmap, FALSE, (float)currentX, -1, (wxObject *) NULL, "Open file");
+ currentX += width + 5;
+ toolBar->AddTool(wxID_SAVE, *(toolBarBitmaps[2]), wxNullBitmap, FALSE, (float)currentX, -1, (wxObject *) NULL, "Save file");
+ currentX += width + 5;
+ toolBar->AddSeparator();
+ toolBar->AddTool(wxID_COPY, *(toolBarBitmaps[3]), wxNullBitmap, FALSE, (float)currentX, -1, (wxObject *) NULL, "Copy");
+ currentX += width + 5;
+ toolBar->AddTool(wxID_CUT, *(toolBarBitmaps[4]), wxNullBitmap, FALSE, (float)currentX, -1, (wxObject *) NULL, "Cut");
+ currentX += width + 5;
+ toolBar->AddTool(wxID_PASTE, *(toolBarBitmaps[5]), wxNullBitmap, FALSE, (float)currentX, -1, (wxObject *) NULL, "Paste");
+ currentX += width + 5;
+ toolBar->AddSeparator();
+ toolBar->AddTool(wxID_PRINT, *(toolBarBitmaps[6]), wxNullBitmap, FALSE, (float)currentX, -1, (wxObject *) NULL, "Print");
+ currentX += width + 5;
+ toolBar->AddSeparator();
+ toolBar->AddTool(wxID_HELP, *(toolBarBitmaps[7]), wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Help");
+
+ toolBar->Realize();
+
+ // Can delete the bitmaps since they're reference counted
+ int i;
+ for (i = 0; i < 8; i++)
+ delete toolBarBitmaps[i];
+
+ return TRUE;
+}
+
+// wxID_HELP will be processed for the 'About' menu and the toolbar help button.
+
+BEGIN_EVENT_TABLE(MyFrame, wxFrame)
+ EVT_MENU(wxID_EXIT, MyFrame::OnQuit)
+ EVT_MENU(wxID_HELP, MyFrame::OnAbout)
+ EVT_CLOSE(MyFrame::OnCloseWindow)
+ EVT_TOOL_RANGE(wxID_OPEN, wxID_PASTE, MyFrame::OnToolLeftClick)
+ EVT_TOOL_ENTER(ID_TOOLBAR, MyFrame::OnToolEnter)
+ EVT_CHOICE(ID_CHOICE+1, MyFrame::OnBookUpdate)
+ EVT_CHOICE(ID_CHOICE+2, MyFrame::OnChapterUpdate)
+ EVT_BUTTON(ID_CHOICE+4, MyFrame::OnGoButton)
+
+ // REQUIREMENT: On enter on text to search
+ EVT_TEXT(WID_TEXT, MyFrame::OnDefinitionSearch )
+
+ // End
+ END_EVENT_TABLE()
+
+ // Define my frame constructor
+ MyFrame::MyFrame(wxFrame* parent, wxWindowID id, const wxString& title, const wxPoint& pos,
+ const wxSize& size, long style):
+ wxFrame(parent, id, title, pos, size, style)
+{
+ // m_textWindow = new wxTextCtrl(this, -1, "", wxPoint(0, 0), wxSize(-1, -1), wxTE_MULTILINE);
+ mainMgr = 0;
+}
+
+
+MyFrame::~MyFrame()
+{
+ if (mainMgr)
+ delete mainMgr;
+}
+
+
+void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
+{
+ Close(TRUE);
+}
+
+void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
+{
+ static char * szMess =
+ {
+ "Sword Project 1.0\n"
+ "Linux Version\n"
+ "Sword Development Team\n"
+ "LC\n"
+ };
+
+
+ (void)wxMessageBox( szMess , "About Sword");
+}
+
+// Define the behaviour for the frame closing
+// - must delete all frames except for the main one.
+void MyFrame::OnCloseWindow(wxCloseEvent& WXUNUSED(event))
+{
+ Destroy();
+}
+
+void MyFrame::OnToolLeftClick(wxCommandEvent& event)
+{
+ wxString str;
+ str.Printf("Clicked on tool %d", event.GetId());
+ SetStatusText(str);
+}
+
+void MyFrame::OnToolEnter(wxCommandEvent& event)
+{
+ if (event.GetSelection() > -1)
+ {
+ wxString str;
+ str.Printf("This is tool number %d", event.GetSelection());
+ SetStatusText(str);
+ }
+ else
+ SetStatusText("");
+}
+
+
+// ============================================================================
+// OnBookUpdate
+// When the book changes we do 3 things.
+// 1. Reset verse and chapter to 1 ( all books have 1 chapter 1 verse ).
+// 2. Update the valid list of Chapters 1..ChapterMax for this book
+// 3. Update the verse list for the first chapter (1..verse max for this chapter).
+//
+void MyFrame::OnBookUpdate( wxCommandEvent& event )
+{
+ if (event.GetSelection() > -1)
+ {
+
+ if (m_pcHeadLine)
+ {
+ // Get book name.
+ wxString sBook = m_pcHeadLine ->m_pBible->GetString( event.GetSelection() );
+
+ // Update chapter (automagically calls OnChapterUpdate )
+ m_pcHeadLine -> UpdateChapter( sBook );
+ }
+ }
+}
+
+// ===============================================================
+// On chapter change we need to do
+// 1. Update Verse information for this chapter.
+//
+void MyFrame::OnChapterUpdate( wxCommandEvent& event )
+{
+ if (event.GetSelection() > -1 )
+ {
+
+ if (m_pcHeadLine)
+ {
+ // Get Book and current chapter
+ wxString sBook = m_pcHeadLine -> m_pBible -> GetValue();
+ int iChapter = event.GetSelection();
+
+ m_pcHeadLine -> UpdateVerse( sBook, iChapter );
+ }
+ }
+}
+
+void MyFrame::OnGoButton( wxCommandEvent& event )
+{
+ wxString sNewVerse;
+
+ // Check for Programmer Error
+ assert( m_pcHeadLine );
+ assert( m_pcNoteBible );
+ assert( m_pcNoteCommentary );
+
+
+ // Insanity Check
+ if ( m_pcHeadLine )
+ {
+ // Get Selection Data
+ wxString sBook = m_pcHeadLine ->m_pBible-> GetValue();
+ int iChapter = atoi(m_pcHeadLine -> m_pChapter -> GetValue());
+ int iVerse = atoi(m_pcHeadLine -> m_pVerse -> GetValue());
+
+ sNewVerse.Printf( "%s %d : %d", sBook.c_str(), iChapter, iVerse );
+
+ // Update current verse
+ SetStatusText( "VERSE: " + sNewVerse );
+
+ // Update all commentaries and bibles
+ m_pcNoteBible -> BibleVerse( sBook, iChapter, iVerse);
+ m_pcNoteCommentary -> CommentaryVerse( sNewVerse );
+ }
+}
+
+
+// ----------------------------------------------------
+// OnDefinitionSearch
+// Search for definition of the word in the
+// text area. Use the definition NOTEBOOK object.
+//
+//
+
+void MyFrame::OnDefinitionSearch( wxCommandEvent& event )
+{
+ if (m_pcDefHeadLine)
+ {
+ wxString sDefinition = wxString( "Searching for: ")
+ + m_pcDefHeadLine -> m_pSearchCtrl -> GetValue();
+ SetStatusText( sDefinition );
+
+ m_pcNoteDef -> DictionaryKey( m_pcDefHeadLine -> m_pSearchCtrl -> GetValue() );
+ }
+}
diff --git a/apps/X11/wxSword/gui_sword.h b/apps/X11/wxSword/gui_sword.h
new file mode 100644
index 0000000..9cdc152
--- /dev/null
+++ b/apps/X11/wxSword/gui_sword.h
@@ -0,0 +1,11 @@
+// Define a new application
+class MyApp: public wxApp
+{
+ public:
+ bool OnInit(void);
+ bool InitToolbar(wxToolBar* toolBar);
+};
+
+
+#define ID_TOOLBAR 500
+
diff --git a/apps/X11/wxSword/jptr.C b/apps/X11/wxSword/jptr.C
new file mode 100644
index 0000000..bf2c2c4
--- /dev/null
+++ b/apps/X11/wxSword/jptr.C
@@ -0,0 +1,199 @@
+// #include "jptr.h"
+
+
+template <class tType>
+ tType* clJPTR<tType>::ptr() const
+ {
+ ldebug(cout<<"MEMBER type*"<<endl, 3 );
+
+ assert( _pKey && "Key should always have data!" );
+ return (_pKey );
+ }
+
+template < class tType >
+ void clJPTR< tType >::operator=( tType* pMem )
+ {
+ ldebug(cout<<"MEMBER operator=pMemory"<<endl,3);
+
+ // check if new returned null. I really don't know
+ // if it does or throughs an exception, but just
+ // in case.
+ if (!pMem)
+ {
+ OutOfMemory();
+ return;
+ }
+
+ // If we where pointing to something else,
+ // stop point to it, and start pointing to pMEm.
+ if (_pKey)
+ remove();
+ add( pMem );
+ }
+
+template < class tType >
+ void clJPTR< tType >::operator=( const clJPTR& oOther )
+ {
+ ldebug(cout<<"MEMBER operator=Java Pointer"<<endl,3);
+
+ // Re-use other code.
+ *this = oOther._pKey;
+ }
+
+template < class tType >
+ tType* clJPTR< tType >::operator->() const
+ {
+ ldebug(cout<<"MEMBER operator ->"<<endl, 3 );
+
+ assert( _pKey && "Key should always have data!" );
+ return (_pKey );
+ }
+
+template < class tType >
+ tType* clJPTR< tType >::clone() const
+ {
+ ldebug( cout<<"MEMBER clone"<<endl,3 );
+ assert( _pKey && "This shouldn't be null!" );
+
+ // DANGER: This assumes that class we point to has
+ // copy constructor!
+ return new tType(*_pKey);
+ }
+
+template < class tType >
+ void clJPTR< tType >::add( tType* pMem )
+ {
+ ldebug(cout<<"MEMBER add"<<endl,4);
+
+ // Add key
+ _pKey = pMem;
+
+ // Add 1 to our count
+ _oMap[ pMem ] ++;
+
+ ldebug(print(2),2);
+ }
+
+template < class tType >
+ void clJPTR< tType >::remove()
+ {
+ ldebug(cout<<"MEMBER remove"<<endl,4);
+
+ // Decrement our reference count
+ _oMap[ _pKey ] --;
+
+ // Insanity Check
+ assert( (_oMap[_pKey] >= 0) && "Map value is negative!" );
+
+ // If 0 then we have just deleted our last pointer
+ if ( _oMap[_pKey] == 0 )
+ {
+ ldebug( cout<<"DELETEING MEMORY: ",2 );
+ assert( _pKey && "Major bug, this should never be NULL" );
+
+ // Remove Memory
+ delete _pKey;
+
+ // Remove Key Entry
+ _oMap.erase( _pKey );
+ }
+
+ // undefine key
+ _pKey = NULL;
+
+ // List table of entries
+ ldebug( print(2), 2 );
+ }
+
+
+template< class tType >
+ void clJPTR< tType >::print(int level)
+ {
+ assert( (level > -1) && "Expecting a non-negative level!" );
+
+ clMap::const_iterator iWalk;
+ char cBuff[30] = { 0 };
+ char cTabs[20] = { 0 };
+
+ // Fill fillers
+ memset( cBuff, '-', sizeof( cBuff ) -1 );
+ memset( cTabs, '\t', min( level, (int) sizeof( cTabs ) - 1) );
+
+ // add a new line
+ cout << endl;
+
+ // Title of table
+ cout << cTabs << "Ptr -> Reference Count" << endl;
+ cout << cTabs << cBuff << endl;
+
+ // Elements of Table
+ for( iWalk = _oMap.begin(); iWalk != _oMap.end(); iWalk ++ )
+ {
+ cout << cTabs << (*iWalk).first << " -> " << (*iWalk).second << endl;
+ }
+
+ // Trailer of table
+ cout << cTabs << cBuff << endl;
+ }
+
+
+
+/*
+ The reason this is private is so the you the programmer are not
+ tempted to write something like
+ clJPTR< xcl > oNew;
+
+ because this pointer will not have an object to after it's
+ constructor and a little too dangerous.
+*/
+
+template < class tType >
+ clJPTR< tType >::clJPTR()
+ {
+ ldebug(cout<<"DEFAULT Constructor"<<endl,4);
+ _pKey = NULL;
+ };
+
+template < class tType >
+ clJPTR<tType>::clJPTR( tType* pMem )
+ {
+ ldebug(cout<<"MEM Constructor"<<endl,4);
+ _pKey = NULL;
+ *this=pMem;
+ }
+
+template < class tType >
+ clJPTR<tType>::clJPTR(const clJPTR<tType>& oThat)
+ {
+ ldebug(cout<<"COPY Constructor"<<endl,4);
+ _pKey = NULL;
+ *this=oThat;
+ }
+
+template <class tType >
+ clJPTR<tType>::~clJPTR()
+ {
+ ldebug(cout<<"Destructor"<<endl,4);
+ if (_pKey)
+ remove();
+ }
+
+/* override this method,
+ it is for the instance when new returns
+ NULL
+*/
+
+template <class tType>
+ void clJPTR<tType>::OutOfMemory()
+ {
+ ldebug(cout << "ERROR: Out of Memory" << endl, 1 );
+ assert( 0 && "Out of Memory!" );
+ }
+
+
+// Wierd but true, global variable declaration for this
+// class.
+//
+template <class tType>
+ clJPTR<tType>::clMap clJPTR<tType>::_oMap;
+
diff --git a/apps/X11/wxSword/jptr.h b/apps/X11/wxSword/jptr.h
new file mode 100644
index 0000000..2a5a3be
--- /dev/null
+++ b/apps/X11/wxSword/jptr.h
@@ -0,0 +1,95 @@
+// #ifndef __JPTR_H__
+// #define __JPTR_H__
+
+
+
+#include <iostream>
+#include <stl.h>
+#include <assert.h>
+#include <string.h>
+
+const int gDebugLevel = 0 ;
+
+// level 0: no Debugging
+// level 1: construction of test object
+// level 2: list of memory after add or delete of pointer to object
+// level 3: Public api of jptr
+// level 4: all api of jptr
+
+
+#define ldebug(oRoutine,level) {if (level <= gDebugLevel) \
+ {for(int i = 0; i < max(level,1); i++ ) \
+ cout << "\t"; \
+ cout<<"D"<<level<<": "; oRoutine; }}
+
+
+// ===============================================================
+// class template clJPTR
+// purpose: simulate symantics of Java Pointers.
+// benefits:
+// 1. Don't need to worry about freeing the memory.
+// 2. Don't need to design ownership models.
+// 3. Generic.
+// 4. Easy to use, almost fool proof.
+//
+// ===============================================================
+template <class tType>
+ class clJPTR
+ {
+ private: // declarations
+ // The following is declaration of a global multimap
+ // for an instanciation of this template class.
+ //
+ class clMap :
+ public map< tType*, int, less< tType* > >
+ { };
+
+
+ private: // variables
+ static clMap _oMap;
+ tType* _pKey;
+
+
+ public: // public member functions
+ void operator=( tType* pMem );
+ void operator=( const clJPTR& oOther );
+ tType* operator->() const;
+ tType* clone() const;
+ tType* ptr() const;
+
+
+ private: // private helper functions
+ void add( tType* pMem );
+ void remove();
+ void print(int level);
+
+/*
+ The reason this is private is so the you the programmer are not
+ tempted to write something like
+ clJPTR< xcl > oNew;
+
+ because this pointer will not have an object to after it's
+ constructor and a little too dangerous.
+*/
+
+ public: // Constructors
+ clJPTR();
+
+ clJPTR( tType* pMem );
+ clJPTR(const clJPTR<tType>& oThat);
+
+ public: // Virtual Methods!
+
+ virtual ~clJPTR();
+
+ /* override this method,
+ it is for the instance when new returns
+ NULL
+ */
+ virtual void OutOfMemory();
+
+};
+
+#include "jptr.C"
+
+// #endif // JPTR
diff --git a/apps/X11/wxSword/mondrian.xpm b/apps/X11/wxSword/mondrian.xpm
new file mode 100644
index 0000000..409f27a
--- /dev/null
+++ b/apps/X11/wxSword/mondrian.xpm
@@ -0,0 +1,44 @@
+/* XPM */
+static char *mondrian_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"32 32 6 1",
+" c Black",
+". c Blue",
+"X c #00bf00",
+"o c Red",
+"O c Yellow",
+"+ c Gray100",
+/* pixels */
+" ",
+" oooooo +++++++++++++++++++++++ ",
+" oooooo +++++++++++++++++++++++ ",
+" oooooo +++++++++++++++++++++++ ",
+" oooooo +++++++++++++++++++++++ ",
+" oooooo +++++++++++++++++++++++ ",
+" oooooo +++++++++++++++++++++++ ",
+" oooooo +++++++++++++++++++++++ ",
+" ",
+" ++++++ ++++++++++++++++++ .... ",
+" ++++++ ++++++++++++++++++ .... ",
+" ++++++ ++++++++++++++++++ .... ",
+" ++++++ ++++++++++++++++++ .... ",
+" ++++++ ++++++++++++++++++ .... ",
+" ++++++ ++++++++++++++++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++ ",
+" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
+" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
+" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
+" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
+" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
+" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
+" "
+};
diff --git a/apps/console/Makefile.am b/apps/console/Makefile.am
new file mode 100644
index 0000000..47597c3
--- /dev/null
+++ b/apps/console/Makefile.am
@@ -0,0 +1,3 @@
+AUTOMAKE_OPTIONS = 1.5
+
+SUBDIRS = diatheke
diff --git a/apps/console/Makefile.in b/apps/console/Makefile.in
new file mode 100644
index 0000000..e61349a
--- /dev/null
+++ b/apps/console/Makefile.in
@@ -0,0 +1,351 @@
+# Makefile.in generated by automake 1.6 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+
+EXEEXT = @EXEEXT@
+OBJEXT = @OBJEXT@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+AMTAR = @AMTAR@
+AS = @AS@
+AWK = @AWK@
+CC = @CC@
+CXX = @CXX@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+ECHO = @ECHO@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+MAINT = @MAINT@
+OBJDUMP = @OBJDUMP@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+STRIP = @STRIP@
+VERSION = @VERSION@
+am__include = @am__include@
+am__quote = @am__quote@
+dir_confdef = @dir_confdef@
+enable_debug = @enable_debug@
+enable_profile = @enable_profile@
+enable_vcl = @enable_vcl@
+install_sh = @install_sh@
+target_cpu = @target_cpu@
+target_mingw32 = @target_mingw32@
+target_os = @target_os@
+target_system = @target_system@
+target_vendor = @target_vendor@
+with_conf = @with_conf@
+with_icu = @with_icu@
+with_zlib = @with_zlib@
+AUTOMAKE_OPTIONS = 1.5
+
+SUBDIRS = diatheke
+subdir = apps/console
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+
+RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \
+ uninstall-info-recursive all-recursive install-data-recursive \
+ install-exec-recursive installdirs-recursive install-recursive \
+ uninstall-recursive check-recursive installcheck-recursive
+DIST_COMMON = Makefile.am Makefile.in
+DIST_SUBDIRS = $(SUBDIRS)
+all: all-recursive
+
+.SUFFIXES:
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu apps/console/Makefile
+Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+uninstall-info-am:
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+ @set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+
+ETAGS = etags
+ETAGSFLAGS =
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$tags$$unique" \
+ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ../..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkinstalldirs) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ cp -pR $$d/$$file $(distdir)$$dir \
+ || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d $(distdir)/$$subdir \
+ || mkdir $(distdir)/$$subdir \
+ || exit 1; \
+ (cd $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" \
+ distdir=../$(distdir)/$$subdir \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+
+distclean-am: clean-am distclean-generic distclean-libtool \
+ distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+uninstall-am: uninstall-info-am
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
+ clean-generic clean-libtool clean-recursive distclean \
+ distclean-generic distclean-libtool distclean-recursive \
+ distclean-tags distdir dvi dvi-am dvi-recursive info info-am \
+ info-recursive install install-am install-data install-data-am \
+ install-data-recursive install-exec install-exec-am \
+ install-exec-recursive install-info install-info-am \
+ install-info-recursive install-man install-recursive \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am installdirs-recursive maintainer-clean \
+ maintainer-clean-generic maintainer-clean-recursive mostlyclean \
+ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \
+ tags tags-recursive uninstall uninstall-am uninstall-info-am \
+ uninstall-info-recursive uninstall-recursive
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/apps/console/diatheke/Makefile.am b/apps/console/diatheke/Makefile.am
new file mode 100644
index 0000000..613a6ed
--- /dev/null
+++ b/apps/console/diatheke/Makefile.am
@@ -0,0 +1,9 @@
+AUTOMAKE_OPTIONS = 1.5
+
+INCLUDES = -I$(top_srcdir)/include
+
+bin_PROGRAMS = diatheke
+diatheke_SOURCES = diatheke.cpp corediatheke.cpp diathekemgr.cpp \
+ diafiltmgr.cpp thmlcgi.cpp gbfcgi.cpp
+diatheke_LDADD = -L$(top_builddir)/lib -lsword
+
diff --git a/apps/console/diatheke/Makefile.in b/apps/console/diatheke/Makefile.in
new file mode 100644
index 0000000..f03cd1d
--- /dev/null
+++ b/apps/console/diatheke/Makefile.in
@@ -0,0 +1,373 @@
+# Makefile.in generated by automake 1.6 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+
+EXEEXT = @EXEEXT@
+OBJEXT = @OBJEXT@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+AMTAR = @AMTAR@
+AS = @AS@
+AWK = @AWK@
+CC = @CC@
+CXX = @CXX@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+ECHO = @ECHO@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+MAINT = @MAINT@
+OBJDUMP = @OBJDUMP@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+STRIP = @STRIP@
+VERSION = @VERSION@
+am__include = @am__include@
+am__quote = @am__quote@
+dir_confdef = @dir_confdef@
+enable_debug = @enable_debug@
+enable_profile = @enable_profile@
+enable_vcl = @enable_vcl@
+install_sh = @install_sh@
+target_cpu = @target_cpu@
+target_mingw32 = @target_mingw32@
+target_os = @target_os@
+target_system = @target_system@
+target_vendor = @target_vendor@
+with_conf = @with_conf@
+with_icu = @with_icu@
+with_zlib = @with_zlib@
+AUTOMAKE_OPTIONS = 1.5
+
+INCLUDES = -I$(top_srcdir)/include
+
+bin_PROGRAMS = diatheke
+diatheke_SOURCES = diatheke.cpp corediatheke.cpp diathekemgr.cpp \
+ diafiltmgr.cpp thmlcgi.cpp gbfcgi.cpp
+
+diatheke_LDADD = -L$(top_builddir)/lib -lsword
+subdir = apps/console/diatheke
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+bin_PROGRAMS = diatheke$(EXEEXT)
+PROGRAMS = $(bin_PROGRAMS)
+
+am_diatheke_OBJECTS = diatheke.$(OBJEXT) corediatheke.$(OBJEXT) \
+ diathekemgr.$(OBJEXT) diafiltmgr.$(OBJEXT) thmlcgi.$(OBJEXT) \
+ gbfcgi.$(OBJEXT)
+diatheke_OBJECTS = $(am_diatheke_OBJECTS)
+diatheke_DEPENDENCIES =
+diatheke_LDFLAGS =
+
+DEFS = @DEFS@
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/corediatheke.Po \
+@AMDEP_TRUE@ ./$(DEPDIR)/diafiltmgr.Po ./$(DEPDIR)/diatheke.Po \
+@AMDEP_TRUE@ ./$(DEPDIR)/diathekemgr.Po ./$(DEPDIR)/gbfcgi.Po \
+@AMDEP_TRUE@ ./$(DEPDIR)/thmlcgi.Po
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+CXXFLAGS = @CXXFLAGS@
+DIST_SOURCES = $(diatheke_SOURCES)
+DIST_COMMON = README Makefile.am Makefile.in
+SOURCES = $(diatheke_SOURCES)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .lo .o .obj
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu apps/console/diatheke/Makefile
+Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ if test -f $$p \
+ || test -f $$p1 \
+ ; then \
+ p1=`echo "$$p1" | sed -e 's,^.*/,,'`; \
+ f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f; \
+ else :; fi; \
+ done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+ f=`echo "$$f" | sed -e 's,^.*/,,'`; \
+ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
+ rm -f $(DESTDIR)$(bindir)/$$f; \
+ done
+
+clean-binPROGRAMS:
+ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+diatheke$(EXEEXT): $(diatheke_OBJECTS) $(diatheke_DEPENDENCIES)
+ @rm -f diatheke$(EXEEXT)
+ $(CXXLINK) $(diatheke_LDFLAGS) $(diatheke_OBJECTS) $(diatheke_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT) core *.core
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/corediatheke.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diafiltmgr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diatheke.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diathekemgr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gbfcgi.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/thmlcgi.Po@am__quote@
+
+distclean-depend:
+ -rm -rf ./$(DEPDIR)
+
+.cpp.o:
+@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(CXXCOMPILE) -c -o $@ `test -f $< || echo '$(srcdir)/'`$<
+
+.cpp.obj:
+@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(CXXCOMPILE) -c -o $@ `cygpath -w $<`
+
+.cpp.lo:
+@AMDEP_TRUE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(LTCXXCOMPILE) -c -o $@ `test -f $< || echo '$(srcdir)/'`$<
+CXXDEPMODE = @CXXDEPMODE@
+uninstall-info-am:
+
+ETAGS = etags
+ETAGSFLAGS =
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$tags$$unique" \
+ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ../../..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkinstalldirs) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ cp -pR $$d/$$file $(distdir)$$dir \
+ || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+
+distclean-am: clean-am distclean-compile distclean-depend \
+ distclean-generic distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+uninstall-am: uninstall-binPROGRAMS uninstall-info-am
+
+.PHONY: GTAGS all all-am check check-am clean clean-binPROGRAMS \
+ clean-generic clean-libtool distclean distclean-compile \
+ distclean-depend distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am info info-am install \
+ install-am install-binPROGRAMS install-data install-data-am \
+ install-exec install-exec-am install-info install-info-am \
+ install-man install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool tags uninstall uninstall-am \
+ uninstall-binPROGRAMS uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/apps/console/diatheke/README b/apps/console/diatheke/README
new file mode 100644
index 0000000..5f1a793
--- /dev/null
+++ b/apps/console/diatheke/README
@@ -0,0 +1,76 @@
+Diatheke Suite release 4.0
+by Chris Little <chrislit@crosswire.org>
+
+This suite is intended for use with libraries and modules from
+the SWORD Project, available at http://www.crosswire.org/
+
+The latest versions of this suite and its components are available
+at http://www.crosswire.org/sword/diatheke
+
+Version 4.0 of this suite consists of the following components:
+
+Diatheke 4.0 - a command line utility, good for lots of stuff
+Diatheke/CGI 4.0 - a PERL CGI module interface to Diatheke 4.0
+
+--------------------------------------------------------------------
+INSTALLING Diatheke/CGI
+
+To install Diatheke/CGI, first install PERL and a webserver such as
+Apache that is capable of running PERL CGIs. Installing mod_perl is
+recommended for a speed improvement, but is by no means necessary.
+
+Then copy the two .pl files from the ./cgi directory of this
+distribution into your cgi-bin directory. Modify the top of
+diatheke.pl to reflect the correct location of your your diatheke
+command line utility binary and the default font if necessary. The
+CGI is now installed and ready for access.
+
+diatheke.pl is the main lookup script. dia-def.pl is a supplemental
+script used to set a default Bible translation (saved on the
+user's computer as a cookie).
+
+Two sample HTML files are included as sample interfaces for an
+general Web-Bible gateway. index-public.html includes all currently
+available free texts while index-private.html includes all currently
+available texts, including those which are encrypted because
+of copyright and distribution restrictions. In any case, you should
+only use these as a guide, adding and subtracting modules depending
+on which modules you have installed and have permission to publish
+on the internet or your intranet. The bottom section of each file
+includes an example call to the dia-def.pl script to set a default
+Bible version.
+
+You may also direct users directly to your perl script since it will
+present a page with all of your modules. Or you may wish to use this
+default page to create a custom index.html for your users.
+
+----------------------------------------------------------------------
+VERSION HISTORY
+
+4.0 July 8, 2001.
+ Updated to Sword 1.5.2 with innumerable bug fixes.
+ Now builds properly for Win32 using VC++.
+ Diatheke/Tcl and HANDiatheke were omitted, for the moment
+ from this release, but are still available in the CVS.
+
+3.0 March 31, 2001.
+ Self-generating HTML page for the lazy (Diatheke/CGI).
+ Localization support. (Diatheke and Diatheke/CGI).
+
+2.5 Now supports ThML. Numerous bugfixes. December 10, 2000.
+ Includes Diatheke 3.0, Diatheke/CGI 3.0, Diatheke/Tcl 3.0,
+ and HANDiatheke 3.0 (initial version, but version-synced)
+
+2.0 First public release, including Diatheke 2.0, Diatheke/CGI
+ 2.0, and Diatheke/Tcl 2.5. October 23, 1999.
+
+-----------------------------------------------------------------------
+COPYRIGHT
+
+The Diatheke Suite and its components, Diatheke, Diatheke/CGI, and
+Diatheke/Tcl are Copyright 1999, 2000, 2001 by CrossWire Bible Society.
+HANDiatheke is Copyright 2000, 2001 by CrossWire Bible Society.
+The Diatheke Suite and all of its components are licensed through
+the GNU General Public License and are intended for free distribution.
+See http://www.gnu.org/copyleft/gpl.html for details.
+
diff --git a/apps/console/diatheke/cgi/dia-def.pl b/apps/console/diatheke/cgi/dia-def.pl
new file mode 100755
index 0000000..e2f1d4f
--- /dev/null
+++ b/apps/console/diatheke/cgi/dia-def.pl
@@ -0,0 +1,41 @@
+#!/usr/bin/perl
+
+#change this variable to hostname of your server
+@values = split(/\&/,$ENV{'QUERY_STRING'});
+$DOMAIN = $ENV{'REMOTE_ADDR'};
+$EXPIRES = 'Fri Dec 31 23:59:00 GMT 2005';
+
+foreach $i (@values) {
+ ($varname, $mydata) = split(/=/,$i);
+ if ($varname eq "defversion") {
+ $COOKIE = "DEFTRANS=$mydata ; expires=$EXPIRES";
+ }
+ elsif ($varname eq "locale") {
+ $COOKIE = "LOCALE=$mydata ; expires=$EXPIRES";
+ }
+ elsif ($varname eq "settrans") {
+ $COOKIE = "SETTRANS=$mydata ; expires=$EXPIRES";
+ }
+ elsif ($varname eq "setcomm") {
+ $COOKIE = "SETCOMM=$mydata ; expires=$EXPIRES";
+ }
+ elsif ($varname eq "setld") {
+ $COOKIE = "SETLD=$mydata ; expires=$EXPIRES";
+ }
+}
+
+# Set the cookie and send the user the thank you page.
+print "Set-cookie: $COOKIE\n";
+print "Content-type: text/html\n\n"; #Note extra newline to mark
+ #end of header.
+
+print "<html><meta http-equiv=\"refresh\" content=\"0\; URL=$ENV{'HTTP_REFERER'}\"></html>";
+
+
+
+
+
+
+
+
+
diff --git a/apps/console/diatheke/cgi/diatheke.pl b/apps/console/diatheke/cgi/diatheke.pl
new file mode 100755
index 0000000..1d3de91
--- /dev/null
+++ b/apps/console/diatheke/cgi/diatheke.pl
@@ -0,0 +1,467 @@
+#!/usr/bin/perl
+
+# Typical Linux/Unix settings
+$err = "2> /dev/null";
+$sword_path = "/home/sword"; # SWORD_PATH environment variable you want to use
+$diatheke = "nice /usr/bin/diatheke"; # location of diatheke command line program
+
+# Typical Windows settings
+#$err = "";
+#$sword_path = "C:\\Program Files\\CrossWire\\The SWORD Project"; # SWORD_PATH environment variable you want to use
+#$diatheke = "$sword_path\\diatheke.exe"; # location of diatheke command line program
+
+$cgiurl = "http:\/\/bible.gotjesus.org\/cgi-bin";
+
+$scriptname = "diatheke.pl";
+$defaultfontface = "Times New Roman, Times, Roman, serif"; # default font name
+$maxverses = 50; # maximum number of verses diatheke will return per query (prevents people from asking for Gen1:1-Rev22:21)
+$defaultbook = "KJV"; # book to query when none is selected, but a verse/search is entered
+$deflocale = "abbr"; # this is just the default for cases where user has not selected a locale and his browser does not reveal one -- you can also set locale using locale=<locale> in the GET URL
+
+###############################################################################
+## You should not need to edit anything below this line.
+## Unless you want to modify functionality of course. :)
+###############################################################################
+
+$version = "4.2";
+
+sub plussifyaddress {
+ ($p_ver = @_[0]) =~ tr/ /+/;
+ $p_newline = "<a href=\"$scriptname?verse=$p_ver&@_[1]=on\">";
+ return $p_newline;
+}
+
+sub urlvers {
+ $u_verse = @_[0];
+ $u_version = @_[1];
+ $u_oldverse = $u_verse;
+ $u_verse =~ tr/ /+/;
+ $u_newline = "<a href=\"$scriptname?verse=$u_verse&$u_version=on\">$u_oldverse</a>";
+ return $u_newline;
+}
+
+$ENV{'SWORD_PATH'} = $sword_path;
+
+print "Content-type: text/html\n\n";
+
+
+if ($ENV{'HTTP_COOKIE'}) {
+
+ $cookie = $ENV{'HTTP_COOKIE'};
+ $cookie =~ s/\; /=/g;
+ %cookiedata = split(/=/, $cookie);
+
+ $defversion = $cookiedata{DEFTRANS};
+ $locale = $cookiedata{LOCALE};
+}
+
+if ($defversion eq "") {
+ $defversion = 'KJV';
+}
+if ($locale eq "") {
+ $locale = $ENV{'HTTP_ACCEPT_LANGUAGE'};
+ $locale =~ s/(..).*/$1/;
+ if ($locale eq "") {
+ $locale = $deflocale;
+ }
+ elsif ($locale eq "en") {
+ $locale = "abbr";
+ }
+}
+
+$hostname = $ENV{'REMOTE_ADDR'};
+@values = split(/\&/,$ENV{'QUERY_STRING'});
+$n = 0;
+$palm = 0;
+
+$latinxlit = "";
+
+$optionfilters = "";
+$debug=0;
+foreach $i (@values) {
+ ($varname, $mydata) = split(/=/,$i);
+ if ($varname ne "Submit" && $varname ne "lookup") {
+ if ($varname eq "verse") {
+ $verse = $mydata;
+ $verse =~ tr/+/ /;
+ $verse =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+ }
+ elsif ($varname eq "search" && $mydata ne "" && $mydata ne "off") {
+ $search = "-s $mydata";
+ }
+
+ elsif ($varname eq "strongs") {
+ $optionfilters .= "n";
+ }
+ elsif ($varname eq "footnotes") {
+ $optionfilters .= "f";
+ }
+ elsif ($varname eq "headings") {
+ $optionfilters .= "h";
+ }
+ elsif ($varname eq "morph") {
+ $optionfilters .= "m";
+ }
+ elsif ($varname eq "hebcant") {
+ $optionfilters .= "c";
+ }
+ elsif ($varname eq "hebvowels") {
+ $optionfilters .= "v";
+ }
+ elsif ($varname eq "grkacc") {
+ $optionfilters .= "a";
+ }
+ elsif ($varname eq "lemmas") {
+ $optionfilters .= "l";
+ }
+ elsif ($varname eq "scriprefs") {
+ $optionfilters .= "s";
+ }
+ elsif ($varname eq "arshape") {
+ $optionfilters .= "r";
+ }
+ elsif ($varname eq "bidi") {
+ $optionfilters .= "b";
+ }
+
+ elsif ($varname eq "latinxlit") {
+ $latinxlit = "-t Latin";
+ }
+
+ elsif ($varname eq "palm") {
+ $palm = 1;
+ }
+ elsif ($varname eq "debug") {
+ $debug = 1;
+ }
+ elsif ($varname eq "locale") {
+ $locale = $mydata;
+ }
+ elsif ($varname eq "maxverses") {
+ $maxverses = $mydata;
+ }
+ elsif ($mydata eq "on" || $mydata eq "ON") {
+ $versions[$n] = $varname;
+ $n++;
+ }
+ }
+}
+if ($optionfilters ne "") {
+ $optionfilters = "-o " . $optionfilters;
+}
+
+
+
+if ($n == 0) {
+ $versions[0] = $defaultbook;
+ $n++;
+}
+
+if ($verse eq "") {
+
+ @versionlist = `$diatheke -b system -k modulelist $err`;
+ @versionlist2 = @versionlist;
+ @localelist = `$diatheke -b system -k localelist $err`;
+
+ print <<DEF1;
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Diatheke Online Bible</title>
+</head>
+
+<body>
+
+<form method="get" action="$scriptname">
+ <p /><input type="radio" name="search" checked value="" /><font face="Arial, Helvetica, sans-serif">Verse/Commentary Lookup&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Verse or Search key:</font><input type="text" name="verse" size="20"><input type="submit" name="Submit" value="Submit"><input type="reset" name="Reset" value="Reset"><br />
+ <input type="radio" name="search" value="phrase" /><font face="Arial, Helvetica, sans-serif">Phrase Search</font><br />
+ <input type="radio" name="search" value="multiword" /><font face="Arial, Helvetica, sans-serif">Multiple Word Search</font><br />
+ <input type="radio" name="search" value="regex" /><font face="Arial, Helvetica, sans-serif">Regular Expression Search</font><br />
+ <table width="100%" border="0">
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="strongs" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Strong's Numbers</font></td>
+ <td width="50%">
+ <input type="checkbox" name="headings" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Section Headings</font></td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="footnotes" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Footnotes</font></td>
+ <td width="50%">
+ <input type="checkbox" name="scriprefs" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Scripture Cross-References</font></td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="morph" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Morphology</font></td>
+ <td width="50%">
+ <input type="checkbox" name="hebvowels" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Hebrew Vowels</font></td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="lemmas" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Lemmas</font></td>
+ <td width="50%">
+ <input type="checkbox" name="hebcant" value="on">
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Hebrew Cantillation
+ Marks </font></td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="latinxlit" value="on">
+ <font face="Arial, Helvetica, sans-serif" size="-1">Latin Transliterate</font>
+ </td>
+ <td width="50%">
+ <input type="checkbox" name="grkacc" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Greek Accents</font>
+ </td>
+ </tr>
+ </table>
+ <br />
+ <table BORDER="0" WIDTH="100%">
+DEF1
+
+ foreach $line (@versionlist) {
+ chomp($line);
+
+ if ($line eq "Biblical Texts:") {
+ print "<tr><td><font face=$defaultfontface><b>Biblical Texts:</b></font><br /></td></tr>";
+ }
+ elsif ($line eq "Commentaries:") {
+ print "<tr><td><font face=$defaultfontface><b>Commentaries:</b></font></td></tr>";
+ }
+ elsif ($line eq "Dictionaries:") {
+ print "<tr><td><font face=$defaultfontface><b>Dictionaries & Lexica:</b></font></td></tr>";
+ }
+ else {
+ $line =~ s/([^:]+) : (.+)/<tr><td><input type=\"checkbox\" name=\"$1\" value=\"on\"><font size=\"-1\" face=$defaultfontface>$2 ($1)<\/font><\/td><\/tr>/;
+ print "$line\n";
+ }
+
+ }
+
+ print <<DEF2;
+ </table>
+</form>
+
+<form method="get" action="dia-def.pl">
+ Select default Bible version for cross-references:&nbsp;<select name="defversion" size="1">
+
+DEF2
+
+ $biblesflag = 1;
+ foreach $line (@versionlist2) {
+ if ($biblesflag == 1) {
+ chomp ($line);
+ if ($line eq "Biblical Texts:") {
+ }
+ elsif ($line eq "Commentaries:") {
+ $biblesflag = 0;
+ }
+ else {
+ $line =~ s/([^:]+) : (.+)/<option value=\"$1\">$2 ($1)<\/option>/;
+ print "$line\n";
+ }
+ }
+ }
+
+ print <<DEF3;
+</select><input type="submit" name="Submit" value="Submit"></form><br/><form method="get" action="dia-def.pl">Select locale:&nbsp;
+<select name="locale" size="1"><option value="">browser default</option>
+<option value="en">en</option>
+DEF3
+ foreach $line (@localelist) {
+ chomp($line);
+ print "<option value=\"$line\">$line<\/option>";
+ }
+print <<DEF4
+</select>
+<input type="submit" name="Submit" value="Submit">
+</form>
+</body>
+</html>
+DEF4
+
+}
+else {
+
+
+
+if ($palm == 0) {
+print <<END;
+
+<html><head>
+<title>Diatheke Interlinear Bible</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="palmcomputingplatform" content="true">
+<meta name="historylisttext" content="Diatheke">
+<style type="text/css">
+#divBottom{position:absolute; visibility:hidden; font-family:arial,helvetica; height:30; width:100; font-size:10pt; font-weight:bold}
+A:link, A:visited, A:active{text-decoration: none}
+</style>
+<script type="text/javascript" language="JavaScript">
+/********************************************************************************
+Copyright (C) 1999 Thomas Brattli
+This script is made by and copyrighted to Thomas Brattli at www.bratta.com
+Visit for more great scripts. This may be used freely as long as this msg is intact!
+I will also appriciate any links you could give me.
+********************************************************************************/
+//Default browsercheck, added to all scripts!
+function checkBrowser(){
+ this.ver=navigator.appVersion;
+ this.dom=document.getElementById?1:0;
+ this.ie5=( (this.ver.indexOf("MSIE 6")>-1 || this.ver.indexOf("MSIE 5")>-1) && this.dom)?1:0;
+ this.ie4=(document.all && !this.dom)?1:0;
+ this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
+ this.ns4=(document.layers && !this.dom)?1:0;
+ this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5);
+ return this;
+}
+bw=new checkBrowser()
+/********************************************************************************
+Remeber to set the look of the divBottom layer in the stylesheet (if you wan't
+another font or something)
+********************************************************************************/
+/*Set these values, gright for how much from the right you wan't the layer to go
+and gbottom for how much from the bottom you want it*/
+var gright=160
+var gbottom=80
+
+
+
+/********************************************************************************
+Constructing the ChangeText object
+********************************************************************************/
+function makeObj(obj,nest){
+ nest=(!nest) ? '':'document.'+nest+'.';
+ this.css=bw.dom? document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+"document.layers." +obj):0;
+ this.moveIt=b_moveIt;
+}
+function b_moveIt(x,y){this.x=x; this.y=y; this.css.left=this.x; this.css.top=this.y}
+
+/********************************************************************************
+Initilizing the page, getting height and width to moveto and calls the
+object constructor
+********************************************************************************/
+ function geoInit(){
+ oGeo=new makeObj('divBottom');
+ pageWidth=(bw.ie4 || bw.ie5)?document.body.offsetWidth-4:innerWidth;
+ pageHeight=(bw.ie4 || bw.ie5)?document.body.offsetHeight-2:innerHeight;
+ checkIt();
+ // sets the resize handler.
+ onresize=resized;
+ if(bw.ie4 || bw.ie5) window.onscroll=checkIt;
+ // shows the div
+ oGeo.css.visibility='visible';
+ }
+/********************************************************************************
+This function executes onscroll in ie and every 30 millisecond in ns
+and checks if the user have scrolled, and if it has it moves the layer.
+********************************************************************************/
+function checkIt(){
+ if(bw.ie4 || bw.ie5) oGeo.moveIt(document.body.scrollLeft +pageWidth-gright,document.body.scrollTop+pageHeight-gbottom);
+ else if(bw.ns4){
+ oGeo.moveIt(window.pageXOffset+pageWidth-gright, window.pageYOffset+pageHeight-gbottom);
+ setTimeout('checkIt()',30);
+ }
+}
+
+//Adds a onresize event handler to handle the resizing of the window.
+function resized(){
+ pageWidth=(bw.ie4 || bw.ie5)?document.body.offsetWidth-4:innerWidth;
+ pageHeight=(bw.ie4 || bw.ie5)?document.body.offsetHeight-2:innerHeight;
+ if(bw.ie4 || bw.ie5) checkIt()
+}
+
+
+//Calls the geoInit onload
+if(bw.bw && !bw.ns5) onload=geoInit;
+
+//Here we will write the div out so that lower browser won't see it.'
+if(bw.bw && !bw.ns5) document.write('<div id="divBottom"><table><tr><td align="center">Powered by<br /><img src="http://www.crosswire.org/sword/pbsword.gif"><br /><a href="http://www.crosswire.org/">www.crosswire.org</td></tr></table></div>')
+</script>
+
+</head>
+
+<body bgcolor="#FFFFFF"><font face="$defaultfontface">
+
+END
+}
+else {
+print <<END
+
+<html><head>
+<title>HANDiatheke</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="palmcomputingplatform" content="true">
+<meta name="historylisttext" content="HANDiatheke">
+</head>
+<body bgcolor="#FFFFFF"><font face="$defaultfontface">
+END
+}
+for ($i = 0; $i < $n; $i++) {
+
+ $line = "$diatheke $search $optionfilters $latinxlit -l $locale -m $maxverses -f cgi -b $versions[$i] -k \"$verse\" $err";
+
+ if ($debug) {
+ print "command line: $line\n<br />";
+ }
+ $line = `$line`;
+
+ chomp($line);
+
+ $line =~ s/!DIATHEKE_URL!/$scriptname\?/g;
+
+# Parse and link to Strong's references if present
+
+ $info = `$diatheke -b info -k $versions[$i] $err`;
+ $info =~ /([^\;]+)\;([^\;]+)/;
+ $format = $1;
+ $type = $2;
+
+ if ($versions[$i] eq "StrongsHebrew") {
+ $line =~ s/(see HEBREW for )([0-9]+)/<a href=\"$scriptname?verse=$2&StrongsHebrew=on\">$1$2\<\/a\>/g;
+ }
+ elsif($versions[$i] eq "StrongsGreek") {
+ $line =~ s/(see GREEK for )([0-9]+)/<a href=\"$scriptname?verse=$2&StrongsGreek=on\">$1$2\<\/a\>/g;
+ }
+ #case for searches
+ elsif($search ne "") {
+ $line =~ s/<entry>([^<]+)<\/entry>/urlvers($1, $versions[$i])/eg;
+ }
+ #case for non-ThML, non-Bible texts
+ elsif($type ne "Biblical Texts") {
+ $book = $verse;
+ $book =~ s/^([A-Za-z0-9]+) [0-9]+:[0-9]+.*/$1/;
+ $chapter = $verse;
+ $chapter =~ s/[A-Za-z0-9]+ ([0-9]+):[0-9]+.*/$1/;
+ $line =~ s/\#*([1-9]*[A-Z][a-z]+\.*) ([0-9]+):([0-9]+-*,*[0-9]*)\|*/<a href=\"$scriptname?verse=$1+$2%3A$3&$defversion=on\">$1 $2:$3\<\/a\>/g;
+ $line =~ s/\#([0-9]+):([0-9]+-*,*[0-9]*)\|*/<a href=\"$scriptname?verse=$book+$1%3A$2&$defversion=on\">$book $1:$2\<\/a\>/g;
+ $line =~ s/\#([0-9]+-*,*[0-9]*)\|*/<a href=\"$scriptname?verse=$book+$chapter%3A$1&$defversion=on\">$book $chapter:$1\<\/a\>/g;
+ }
+
+ if ($locale ne "abbr") {
+ $line =~ s/href=\"$scriptname([^\"]+)\"/href=\"$scriptname$1&locale=$locale\"/g;
+ }
+ if ($palm == 1) {
+ $line =~ s/href=\"$scriptname([^\"]+)\"/href=\"$cgiurl\/$scriptname$1&palm=on\"/g;
+ }
+
+ print "$line <br /><br />\n";
+}
+
+if ($palm == 1) {
+ print "<hr>Powered by Diatheke (http:\/\/www.gotjesus.org\/sword\/diatheke) and the SWORD Project (http:\/\/www.crosswire.org\/sword).";
+}
+
+print "<br /><br /><br /><br /></font></body></html>";
+
+}
+
+
diff --git a/apps/console/diatheke/cgi/index-private.html b/apps/console/diatheke/cgi/index-private.html
new file mode 100644
index 0000000..6afbc91
--- /dev/null
+++ b/apps/console/diatheke/cgi/index-private.html
@@ -0,0 +1,1264 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Diatheke Online Bible</title>
+</head>
+
+<body>
+
+<form method="get" action="cgi-bin/diatheke.pl">
+ <p /> <font face="Arial, Helvetica, sans-serif">Verse or Search key:</font>
+ <input type="text" name="verse" size="20">
+ <input type="submit" name="Submit" value="Submit">
+ <input type="reset" name="Reset" value="Reset">
+ <br />
+ <br />
+ <input type="radio" name="search" checked value="" />
+ <font face="Arial, Helvetica, sans-serif">Verse/Commentary Lookup</font> <br />
+ <input type="radio" name="search" value="phrase" />
+ <font face="Arial, Helvetica, sans-serif">Phrase Search</font><br />
+ <input type="radio" name="search" value="multiword" />
+ <font face="Arial, Helvetica, sans-serif">Multiple Word Search</font><br />
+ <input type="radio" name="search" value="regex" />
+ <font face="Arial, Helvetica, sans-serif">Regular Expression Search<br>
+ <br>
+ </font>
+ <table width="100%" border="0">
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="strongs" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Strong's Numbers</font></td>
+ <td width="50%">
+ <input type="checkbox" name="headings" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Section Headings</font></td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="footnotes" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Footnotes</font></td>
+ <td width="50%">
+ <input type="checkbox" name="scriprefs" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Scripture Cross-References</font></td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="morph" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Morphology</font></td>
+ <td width="50%">
+ <input type="checkbox" name="hebvowels" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Hebrew Vowels</font></td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="lemmas" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Lemmas</font></td>
+ <td width="50%">
+ <input type="checkbox" name="hebcant" value="on">
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Hebrew Cantillation
+ Marks </font></td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="latinxlit" value="on">
+ <font face="Arial, Helvetica, sans-serif" size="-1">Latin Transliterate</font>
+ </td>
+ <td width="50%">
+ <input type="checkbox" name="grkacc" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Greek Accents</font>
+ </td>
+ </tr>
+ </table>
+ <br>
+ <table BORDER="0" WIDTH="100%">
+ <tr>
+ <td width="50%"><font face=Times New Roman, Times, serif><b>English Biblical
+ Texts:</b></font><br />
+ </td>
+ <td width="50%"><font face=Times New Roman, Times, serif><b>Non-English
+ Biblical Texts:</b></font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="AKJV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>American King James
+ Version (AKJV)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="ALB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Albanian Bible (ALB)</font>
+ </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="ALT" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Analytical-Literal
+ Translation (ALT)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="Afr1953" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1953 Afrikaans Bybel
+ (Afr1953)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="ASV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1901 American Standard
+ Version (ASV)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="Afr1983" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1983 Afrikaans Bybel
+ (Afr1983)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="BBE" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1965 Bible in Basic
+ English (BBE)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="AraSVD" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Smith & Van Dyke Arabic
+ Bible (AraSVD)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="BWE" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Bible in Worldwide
+ English (BWE)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="ChiGU" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Chinese Glory Union
+ Bible (ChiGU)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Brenton" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Brenton's English Translation
+ of the Septuagint (Brenton)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="CzeBKR" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Czech Bible Kralicka
+ (CzeBKR)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Common" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The Common Edition:
+ New Testament (Common)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="CzeCEP" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Czech Ekumenicky Cesky
+ preklad (CzeCEP)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="DR" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Douay-Rheims Bible
+ (DR)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="CzeKMS" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Czech Preklad KMS Nova
+ smlouva (CzeKMS)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="DRA" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Douay-Rheims 1899 American
+ Edition (DRA)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="CzeNKB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Czech Nova kralicka
+ Bible (CzeNKB)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Darby" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1889 Darby Bible (Darby)</font>
+ </td>
+ <td width="50%">
+ <input type="checkbox" name="Dan" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Danske Bibel (Dan)</font>
+ </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="GodsWord" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>GOD'S WORD Translation
+ (GodsWord)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="DutLEI" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Dutch Leidse Vertaling
+ (DutLEI)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="HNV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Hebrew Names Version
+ of the World English Bible (HNV)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="DutLU" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Dutch Lutherse Vertaling
+ (DutLU)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="IGNT" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Interlinear Greek New
+ Testament (IGNT)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="DutNBG" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Dutch Netherlands Bijbelgenootschap
+ Vertaling 1951 (DutNBG)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="ISV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>International Standard
+ Version (ISV)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="DutPALM" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Dutch PALM-editie NT
+ (DutPALM)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="JPS" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Jewish Publication
+ Society Old Testament (JPS)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="DutSVV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Dutch Statenvertaling
+ (DutSVV)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="KJ21" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>21st Century King James
+ Version (KJ21)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="EquShr" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Equadorian Shuar NT
+ (EquShr)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="KJV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>King James Version
+ of 1611 w/ Strongs Numbers (KJV)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Esperanto" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Esperanto Bible (Esperanto)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="LITV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Green's Literal Translation
+ (LITV)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="FinPR" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Finnish 1938 PhyZ Raamattu
+ (FinPR)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="LO" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The Living Oracles
+ NT (LO)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="FreBFC" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>French Bible en francais
+ courant, edition revisee (FreBFC)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="MKJV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Green's Modern King
+ James Version (MKJV)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="FreBJ" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>French Bible de Jerusalem
+ (FreBJ)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Montgomery" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Montgomery New Testament
+ (Montgomery)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="FreCrl" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>French Haitian Creole
+ Version (FreCrl)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Murdock" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>James Murdock's Translation
+ of the Syriac Peshitta (Murdock)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="FreDrb" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>French Darby Version
+ (FreDrb)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="NAB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>New American Bible
+ (NAB)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="FreLSG" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>French 1910 Louis Segond
+ (FreLSG)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="NASB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>New American Standard
+ Bible (NASB)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="FreNEG" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>French Nouvelle Edition
+ de Geneve 1979 (FreNEG)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="NASB95" value="on">
+ <font size="-1" face=Times New Roman, Times, serif> New American Standard
+ Bible 1995 Update (NASB95)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="FreTOB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>French Traduction oecumenique
+ de la Bible (FreTOB)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="NCV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>New Century Version
+ (NCV)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="GerBen" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>German Bengel NT (GerBen)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="NIV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>New International Version
+ (NIV)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="GerEin" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>German Einheitsuebersetzung
+ der Heilegen Schrift (GerEin)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="NIVBr" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>New International Version,
+ British Edition (NIVBr)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="GerElb" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>German Darby Unrevidierte
+ Elberfelder 1905 (GerElb)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="NJB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>New Jerusalem Bible
+ (NJB)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="GerLut" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>German 1912 Luther
+ (GerLut)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="NKJV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>New King James Version
+ (NKJV)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="GerLut1545" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>German 1545 Luther
+ (GerLut1545)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="NLT" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>New Living Translation
+ (NLT)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="GerRElb" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>German Elberfelder
+ Bibel revidierte Fassung 1993 (GerRElb)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="NRSV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>New Revised Standard
+ Version (NRSV)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="GerRLut" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>German Revised Lutherbibel
+ 1984 (GerRLut)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="ORTHJBC" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The Orthodox Jewish
+ Brit Chadasha (ORTHJBC)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="GerSch" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>German 1951 Schlachter
+ Bibel (GerSch)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Phillips" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>J B Phillips New Testament
+ (Phillips)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="GothicA" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Gothic Codex Ambr.
+ A & Mss. (GothicA)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="RNKJV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Restored Name King
+ James Version (RNKJV)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="GothicB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Gothic Codex Ambr.
+ B & Car. (GothicB)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="RSV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Revised Standard Version
+ (RSV)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="HunKar" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Hungarian Karoli (HunKar)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="RWebster" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Revised 1833 Webster
+ Version (RWebster)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Icelandic" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Icelandic Bible (Icelandic)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Rotherham" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The Emphasized Bible
+ by J. B. Rotherham (Rotherham)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="IndBIS" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Indonesian Bahasa Indonesia
+ Sehari-hari (IndBIS)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="TEV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Todays English Version
+ (Good News Bible) 1966 and 1976 (TEV)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="IndTB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Indonesian Terjemahan
+ Baru (IndTB)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="TMB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Third Millenium Bible
+ (TMB)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="IndTL" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Indonesian Terjemahan
+ Baru (IndTL)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Twenty" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Twentieth Century New
+ Testament (Twenty)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="ItaIEP" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Italian NVB Nuovissima
+ Versione della Bibbbia San Paolo Edizione (ItaIEP)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="WEB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>World English Bible
+ (WEB)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="ItaLND" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Italian 1991 La Nuova
+ Diodati (ItaLND)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Websters" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Webster Bible (Websters)</font>
+ </td>
+ <td width="50%">
+ <input type="checkbox" name="ItaNRV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Italian 1994 La Sacra
+ Bibbia Nuova Riveduta (ItaNRV)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Weymouth" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1912 Weymouth NT (Weymouth)</font>
+ </td>
+ <td width="50%">
+ <input type="checkbox" name="JapKUG" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Japanese JKUG Translation
+ (JapKUG)</font> </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="YLT" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1898 Young's Literal
+ Translation (YLT)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="JapSNKI" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Japanese JSNKI Translation
+ (JapSNKI)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">&nbsp; </td>
+ <td width="50%">
+ <input type="checkbox" name="Ketchi" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Ketchi Bible (Ketchi)</font></td>
+ </tr>
+ <tr>
+ <td width="48%"><font face=Times New Roman, Times, serif><b>Unorthodox or
+ Heretical Biblical Texts:</b></font> </td>
+ <td width="50%">
+ <input type="checkbox" name="Korean" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Korean Bible (Korean)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="CLNT" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Concordant Literal
+ New Testament (CLNT)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="Latvian" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Latvian New Testament
+ (Latvian)</font> </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Diaglott" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The Emphatic Diaglott
+ (Diaglott)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="ManxGaelic" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Manx Gaelic Scripture
+ Portions (ManxGaelic)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="JST" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Joseph Smith Translation
+ (JST)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Maori" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Maori Bible (Maori)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="RVIC" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Revised Version, Improved
+ and Corrected (RVIC)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Mel" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Melanesian Pidgin Bible
+ (Mel)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">&nbsp; </td>
+ <td width="50%">
+ <input type="checkbox" name="NorBok" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Norwegian 1930 Bokmal
+ (NorBok)</font></td>
+ </tr>
+ <tr>
+ <td width="48%"><font face=Times New Roman, Times, serif><b>Original Language
+ Biblical Texts:</b></font> </td>
+ <td width="50%">
+ <input type="checkbox" name="NorN38" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Norwegian 1938 Nynorsk
+ (NorN38)</font></td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="LXX" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Septuagint (LXX)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="NorNBK" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Norwegian Bibel Konkordant
+ (NorNBK)</font></td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="LXXM" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Septuagint, Morphologically
+ Tagged Rahlfs' (LXXM)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="NorNyn" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Norwegian 1994 Nynorsk
+ (NorNyn)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="N27U4" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Nestle Aland 27th Ed./
+ UBS 4th Ed. Greek Text (N27U4)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="Norsk" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Norsk Bibelen (Norsk)</font></td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="BHS" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Biblia Hebraica Stuttgartensia
+ (BHS)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="PhiCEB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Philippine Nga Cebuano
+ (PhiCEB)</font> </td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="Byz" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1991 Byzantine/Majority
+ Text (Byz)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="PolBTP" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Polish Millenium Bible
+ 1984, 4th Ed. (PolBTP)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Scrivner" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1894 Scrivener Textus
+ Receptus (Scrivner)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="PorAA" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Portuguese Joao Ferreira
+ de Almeida Atualizada (PorAA)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Stephanus" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1550 Stephanus Textus
+ Receptus (Stephanus)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="PorACF" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Brazillian Portuguese
+ Joao Ferreira de Almeida, Corrigada Fiel 1995 (PorACF)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Tisch" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Tischendorf's Eighth
+ Edition GNT (Tisch)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="PorBRP" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Portuguese 1994 Almeida
+ Biblia (PorBRP)</font></td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="Vulgate" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Latin Vulgate (Vulgate)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="PorRA" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Portuguese Almeida
+ Revista e Atualizada (PorRA)</font></td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="Vulgate_HebPs" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Latin Vulgate Psalms
+ from Hebrew (Vulgate_HebPs)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="PorRC" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Portuguese Almeida
+ Revista e Corrigida (PorRC)</font></td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="WH" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1881 Westcott-Hort
+ Greek Text (WH)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="RST" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Russian Synodal Translation
+ (RST)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="WHNU" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Westcott-Hort with
+ NA27U4 variants (WHNU)</font> </td>
+ <td width="50%">
+ <input type="checkbox" name="RomCor" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Romanian Cornilescu
+ Version (RomCor)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">&nbsp;</td>
+ <td width="50%">
+ <input type="checkbox" name="Romani" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Romani (Gypsy) New
+ Testament (Romani)</font></td>
+ </tr>
+ <tr>
+ <td width="48%"><font face=Times New Roman, Times, serif><b>Commentaries:</b></font></td>
+ <td width="50%">
+ <input type="checkbox" name="Sango" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Le Sainte Bible en
+ sango, 1996 (Sango)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="AudioKJV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>KJV Audio Bible read
+ by James Scourby (AudioKJV)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="ScotsGaelic" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Scots Gaelic Gospel
+ of Mark (ScotsGaelic)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Barnes" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Barnes' New Testament
+ Notes (Barnes)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="SpaLBA" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Spanish La Biblia de
+ Las Americas (SpaLBA)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Clarke" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Adam Clarke's Commentary
+ on the Bible (Clarke)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="SpaRV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Spanish Reina-Valera
+ (SpaRV)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="DTN" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Darby Translation Notes
+ (DTN)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="SpaRV60" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Spanish Reina-Valera
+ Revised 1960 (SpaRV60)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Family" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Family Bible Notes
+ (Family)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="SpaRV95" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Spanish Reina-Valera
+ Update 1995 (SpaRV95)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Geneva" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Geneva Bible Translation
+ Notes (Geneva)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="SpaRVA" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Spanish Version Reina-Valera
+ Actualizada (SpaRVA)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Gill" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>John Gill's Expositor
+ (Gill)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="SpaSEV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Spanish 1569 Sagradas
+ Escrituras Version Antigua (SpaSEV)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="JFB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Jamieson Fausset Brown
+ Bible Commentary (JFB)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="SpaVNT" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Spanish 1858 Valera
+ New Testament (SpaVNT)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="MAK" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Matthias Ansorgs Kommentar
+ (MAK)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Swahili" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Swahili New Testament
+ (Swahili)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="MHC" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Matthew Henry's Complete
+ Commentary on the Whole Bible (MHC)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="SweSVE" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Swedish Bible 1917
+ New Testament (SweSVE)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="MHCC" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Matthew Henry's Concise
+ Commentary on the Whole Bible (MHCC)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Tagalog" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Tagalog (John & James)
+ (Tagalog)</font> </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="PNT" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The People's New Testament
+ (PNT)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Tamil" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Tamil Bible (Tamil)</font>
+ </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Personal" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Personal Commentary
+ (Personal)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="ThaiKJV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Thai KJV (ThaiKJV)</font>
+ </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="RWP" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Robertson's Word Pictures
+ (RWP)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Turkish" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Turkish NT (Turkish)</font>
+ </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Rieger" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Carl Heinrich Riegers
+ Kommentar (Rieger)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="UMGreek" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Unaccented Modern Greek
+ Text (UMGreek)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="TDavid" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>C. H. Spurgeon's Treasury
+ of David (TDavid)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Ukrainian" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Ukrainian Bible (Ukrainian)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="TFG" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The Fourfold Gospel
+ and Commentary on Acts of Apostles (TFG)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Uma" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Uma New Testament (Uma)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="TSK" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Treasury of Scriptural
+ Knowledge (TSK)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Viet" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1934 Vietnamese Bible
+ (Viet)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Wesley" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>John Wesley's Notes
+ on the Bible (Wesley)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Xhosa" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Xhosa Bible (Xhosa)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">&nbsp;</td>
+ <td width="50%">&nbsp; </td>
+ </tr>
+ <tr>
+ <td width="48%"><font face=Times New Roman, Times, serif><b>Dictionaries
+ & Lexica:</b></font></td>
+ <td width="50%"><font face=Times New Roman, Times, serif><b>Daily Devotionals:</b></font>
+ </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="AmTract" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>American Tract Society
+ Bible Dictionary (AmTract)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="Daily" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Jonathan Bagster's
+ Daily Light on the Daily Path (Daily)</font> </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="BDB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Brown-Driver-Briggs
+ Hebrew Lexicon (BDB)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="SME" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>C. H. Spurgeon's Morning
+ and Evening: Daily Readins (SME)</font> </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Eastons" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Easton's Bible Dictionary
+ (Eastons)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="losung_de_89" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1989 Losung auf deutsch
+ (losung_de_89)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Hitchcocks" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Hitchcock's Bible Names
+ (Hitchcocks)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="losung_de_90" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1990 Losung auf deutsch
+ (losung_de_90)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="ISBE" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>International Standard
+ Bible Encyclopedia (ISBE)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="losung_de_91" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1991 Losung auf deutsch
+ (losung_de_91)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Naves" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Nave's Topical Bible
+ (Naves)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="losung_de_92" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1992 Losung auf deutsch
+ (losung_de_92)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Packard" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Packard's Morphological
+ Analysis Codes (Packard)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="losung_de_93" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1993 Losung auf deutsch
+ (losung_de_93)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Smiths" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Smith's Bible Dictionary
+ (Smiths)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="losung_de_94" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1994 Losung auf deutsch
+ (losung_de_94)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="StrongsGreek" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Strong's Greek Bible
+ Dictionary (StrongsGreek)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="losung_de_95" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1995 Losung auf deutsch
+ (losung_de_95)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="StrongsHebrew" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Strong's Hebrew Bible
+ Dictionary (StrongsHebrew)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="losung_de_96" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1996 Losung auf deutsch
+ (losung_de_96)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Thayer" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Thayer's Greek Lexicon
+ (Thayer)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="losung_de_97" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1997 Losung auf deutsch
+ (losung_de_97)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Torrey" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>R. A. Torrey's New
+ Topical Textbook (Torrey)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="losung_de_98" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1998 Losung auf deutsch
+ (losung_de_98)</font></td>
+ </tr>
+ <tr>
+ <td width="48%" height="23">
+ <input type="checkbox" name="Vines" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Vines Bible Dictionary
+ (Vines)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="losung_de_99" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1999 Losung auf deutsch
+ (losung_de_99)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="WebstersDict" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Webster's Revised Unabridged
+ Dictionary 1913 (WebstersDict)</font></td>
+ <td width="50%">
+ <input type="checkbox" name="losung_en_96" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1996 Watchwords (Losung)
+ in English (losung_en_96)</font></td>
+ </tr>
+ <tr>
+ <td width="48%" height="23">&nbsp;</td>
+ <td width="50%" height="23">
+ <input type="checkbox" name="losung_en_97" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1997 Watchwords (Losung)
+ in English (losung_en_97)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">&nbsp;</td>
+ <td width="50%">
+ <input type="checkbox" name="losung_en_98" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1998 Watchwords (Losung)
+ in English (losung_en_98)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">&nbsp; </td>
+ <td width="50%">
+ <input type="checkbox" name="losung_en_99" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1999 Watchwords (Losung)
+ in English (losung_en_99)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">&nbsp; </td>
+ <td width="50%">
+ <input type="checkbox" name="losung_es_99" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1999 Watchwords (Losung)
+ en Castellano (losung_es_99)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">&nbsp;</td>
+ <td width="50%">
+ <input type="checkbox" name="losung_nl_99" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1999 Watchwords (Losung)
+ in Dutch (losung_nl_99)</font></td>
+ </tr>
+ </table>
+</form>
+
+<form method="get" action="cgi-bin/dia-def.pl">
+ Select default Bible version for cross-references:&nbsp;<select name="defversion" size="1">
+
+<option value="AKJV">American King James Version (AKJV)</option>
+<option value="ALB">Albanian Bible (ALB)</option>
+<option value="ALT">Analytical-Literal Translation (ALT)</option>
+<option value="ASV">1901 American Standard Version (ASV)</option>
+<option value="Afr1953">1953 Afrikaans Bybel (Afr1953)</option>
+<option value="Afr1983">1983 Afrikaans Bybel (Afr1983)</option>
+<option value="AraSVD">Smith & Van Dyke Arabic Bible (AraSVD)</option>
+<option value="BBE">1965 Bible in Basic English (BBE)</option>
+<option value="BHS">Biblia Hebraica Stuttgartensia (BHS)</option>
+<option value="BWE">Bible in Worldwide English (BWE)</option>
+<option value="Brenton">Brenton's English Translation of the Septuagint (Brenton)</option>
+<option value="Byz">1991 Byzantine/Majority Text (Byz)</option>
+<option value="CLNT">Concordant Literal New Testament (CLNT)</option>
+<option value="ChiGU">Chinese Glory Union Bible (ChiGU)</option>
+<option value="Common">The Common Edition: New Testament (Common)</option>
+<option value="CzeBKR">Czech Bible Kralicka (CzeBKR)</option>
+<option value="CzeCEP">Czech Ekumenicky Cesky preklad (CzeCEP)</option>
+<option value="CzeKMS">Czech Preklad KMS Nova smlouva (CzeKMS)</option>
+<option value="CzeNKB">Czech Nova kralicka Bible (CzeNKB)</option>
+<option value="DR">Douay-Rheims Bible (DR)</option>
+<option value="DRA">Douay-Rheims 1899 American Edition (DRA)</option>
+<option value="Dan">Danske Bibel (Dan)</option>
+<option value="Darby">1889 Darby Bible (Darby)</option>
+<option value="Diaglott">The Emphatic Diaglott (Diaglott)</option>
+<option value="DutLEI">Dutch Leidse Vertaling (DutLEI)</option>
+<option value="DutLU">Dutch Lutherse Vertaling (DutLU)</option>
+<option value="DutNBG">Dutch Netherlands Bijbelgenootschap Vertaling 1951 (DutNBG)</option>
+<option value="DutPALM">Dutch PALM-editie NT (DutPALM)</option>
+<option value="DutSVV">Dutch Statenvertaling (DutSVV)</option>
+<option value="EquShr">Equadorian Shuar NT (EquShr)</option>
+<option value="Esperanto">Esperanto Bible (Esperanto)</option>
+<option value="FinPR">Finnish 1938 PhyZ Raamattu (FinPR)</option>
+<option value="FreBFC">French Bible en francais courant, edition revisee (FreBFC)</option>
+<option value="FreBJ">French Bible de Jerusalem (FreBJ)</option>
+<option value="FreCrl">French Haitian Creole Version (FreCrl)</option>
+<option value="FreDrb">French Darby Version (FreDrb)</option>
+<option value="FreLSG">1910 Louis Segond (FreLSG)</option>
+<option value="FreNEG">French Nouvelle Edition de Geneve 1979 (FreNEG)</option>
+<option value="FreTOB">French Traduction oecumenique de la Bible (FreTOB)</option>
+<option value="GerBen">German Bengel NT (GerBen)</option>
+<option value="GerEin">German Einheitsuebersetzung der Heilegen Schrift (GerEin)</option>
+<option value="GerElb">German Darby Unrevidierte Elberfelder 1905 (GerElb)</option>
+<option value="GerLut">German 1912 Luther (GerLut)</option>
+<option value="GerLut1545">German 1545 Luther (GerLut1545)</option>
+<option value="GerRElb">German Elberfelder Bibel revidierte Fassung 1993 (GerRElb)</option>
+<option value="GerRLut">German Revised Lutherbibel 1984 (GerRLut)</option>
+<option value="GerSch">German 1951 Schlachter Bibel (GerSch)</option>
+<option value="GodsWord">GOD'S WORD Translation (GodsWord)</option>
+<option value="GothicA">Gothic Codex Ambr. A & Mss. (GothicA)</option>
+<option value="GothicB">Gothic Codex Ambr. B & Car. (GothicB)</option>
+<option value="HNV">Hebrew Names Version of the World English Bible (HNV)</option>
+<option value="HunKar">Hungarian Karoli (HunKar)</option>
+<option value="IGNT">Interlinear Greek New Testament (IGNT)</option>
+<option value="ISV">International Standard Version (ISV)</option>
+<option value="Icelandic">Icelandic Bible (Icelandic)</option>
+<option value="IndBIS">Indonesian Bahasa Indonesia Sehari-hari (IndBIS)</option>
+<option value="IndTB">Indonesian Terjemahan Baru (IndTB)</option>
+<option value="IndTL">Indonesian Terjemahan Baru (IndTL)</option>
+<option value="ItaIEP">Italian NVB Nuovissima Versione della Bibbbia San Paolo Edizione (ItaIEP)</option>
+<option value="ItaLND">Italian 1991 La Nuova Diodati (ItaLND)</option>
+<option value="ItaNRV">Italian 1994 La Sacra Bibbia Nuova Riveduta (ItaNRV)</option>
+<option value="JPS">Jewish Publication Society Old Testament (JPS)</option>
+<option value="JST">Joseph Smith Translation (JST)</option>
+<option value="JapKUG">Japanese JKUG Translation (JapKUG)</option>
+<option value="JapSNKI">Japanese JSNKI Translation (JapSNKI)</option>
+<option value="KJ21">21st Century King James Version (KJ21)</option>
+<option value="KJV">King James Version of 1611 w/ Strongs Numbers (KJV)</option>
+<option value="Ketchi">Ketchi Bible (Ketchi)</option>
+<option value="Korean">Korean Bible (Korean)</option>
+<option value="LITV">Green's Literal Translation (LITV)</option>
+<option value="LO">The Living Oracles NT (LO)</option>
+<option value="LXX">Septuagint (LXX)</option>
+<option value="LXXM">Septuagint, Morphologically Tagged Rahlfs' (LXXM)</option>
+<option value="Latvian">Latvian New Testament (Latvian)</option>
+<option value="MKJV">Green's Modern King James Version (MKJV) (MKJV)</option>
+<option value="ManxGaelic">Manx Gaelic Scripture Portions (ManxGaelic)</option>
+<option value="Maori">Maori Bible (Maori)</option>
+<option value="Mel">Melanesian Pidgin Bible (Mel)</option>
+<option value="Montgomery">Montgomery New Testament (Montgomery)</option>
+<option value="Murdock">James Murdock's Translation of the Syriac Peshitta (Murdock)</option>
+<option value="N27U4">Nestle Aland 27th Ed./ UBS 4th Ed. Greek Text (N27U4)</option>
+<option value="NAB">New American Bible (NAB)</option>
+<option value="NASB">The New American Standard Bible (NASB)</option>
+<option value="NASB95">The New American Standard Bible 1995 Update (NASB95)</option>
+<option value="NCV">New Century Version (NCV)</option>
+<option value="NIV">New International Version (NIV)</option>
+<option value="NIVBr">New International Version, British Edition (NIVBr)</option>
+<option value="NJB">New Jerusalem Bible (NJB)</option>
+<option value="NKJV">New King James Version (NKJV)</option>
+<option value="NLT">New Living Translation (NLT)</option>
+<option value="NRSV">New Revised Standard Version (NRSV)</option>
+<option value="NorBok">Norwegian 1930 Bokmal (NorBok)</option>
+<option value="NorN38">Norwegian 1938 Nynorsk (NorN38)</option>
+<option value="NorNBK">Norwegian Bibel Konkordant (NorNBK)</option>
+<option value="NorNyn">Norwegian 1994 Nynorsk (NorNyn)</option>
+<option value="Norsk">Norsk Bibelen (Norsk)</option>
+<option value="ORTHJBC">The Orthodox Jewish Brit Chadasha (ORTHJBC)</option>
+<option value="PhiCEB">Philippine Nga Cebuano (PhiCEB)</option>
+<option value="Phillips">J B Phillips New Testament (Phillips)</option>
+<option value="PolBTP">Polish Millenium Bible 1984, 4th Ed. (PolBTP)</option>
+<option value="PorAA">Portuguese Joao Ferreira de Almeida Atualizada (PorAA)</option>
+<option value="PorACF">Brazillian Portuguese Joao Ferreira de Almeida, Corrigada Fiel 1995 (PorACF)</option>
+<option value="PorBRP">Portuguese 1994 Almeida Biblia (PorBRP)</option>
+<option value="PorRA">Portuguese Almeida Revista e Atualizada (PorRA)</option>
+<option value="PorRC">Portuguese Almeida Revista e Corrigida (PorRC)</option>
+<option value="RNKJV">Restored Name King James Version (RNKJV)</option>
+<option value="RST">Russian Synodal Translation (RST)</option>
+<option value="RSV">Revised Standard Version (RSV)</option>
+<option value="RVIC">Revised Version, Improved and Corrected (RVIC)</option>
+<option value="RWebster">Revised 1833 Webster Version (RWebster)</option>
+<option value="RomCor">Romanian Cornilescu Version (RomCor)</option>
+<option value="Romani">Romani (Gypsy) New Testament (Romani)</option>
+<option value="Rotherham">The Emphasized Bible by J. B. Rotherham (Rotherham)</option>
+<option value="Sango">Le Sainte Bible en sango, 1996 (Sango)</option>
+<option value="ScotsGaelic">Scots Gaelic Gospel of Mark (ScotsGaelic)</option>
+<option value="Scrivner">1894 Scrivener Textus Receptus (Scrivner)</option>
+<option value="SpaLBA">Spanish La Biblia de Las Americas (SpaLBA)</option>
+<option value="SpaRV">Spanish Reina-Valera (SpaRV)</option>
+<option value="SpaRV60">Spanish Reina-Valera Revised 1960 (SpaRV60)</option>
+<option value="SpaRV95">Spanish Reina-Valera Update 1995 (SpaRV95)</option>
+<option value="SpaRVA">Spanish Version Reina-Valera Actualizada (SpaRVA)</option>
+<option value="SpaSEV">Spanish 1569 Sagradas Escrituras Version Antigua (SpaSEV)</option>
+<option value="SpaVNT">Spanish 1858 Valera New Testament (SpaVNT)</option>
+<option value="Stephanus">1550 Stephanus Textus Receptus (Stephanus)</option>
+<option value="Swahili">Swahili New Testament (Swahili)</option>
+<option value="SweSVE">Swedish Bible 1917 New Testament (SweSVE)</option>
+<option value="TEV">Todays English Version (Good News Bible) 1966 and 1976 (TEV)</option>
+<option value="TMB">Third Millenium Bible (TMB)</option>
+<option value="Tagalog">Tagalog (John & James) (Tagalog)</option>
+<option value="Tamil">Tamil Bible (Tamil)</option>
+<option value="ThaiKJV">Thai KJV (ThaiKJV)</option>
+<option value="Tisch">Tischendorf's Eighth Edition GNT (Tisch)</option>
+<option value="Turkish">Turkish NT (Turkish)</option>
+<option value="Twenty">Twentieth Century New Testament (Twenty)</option>
+<option value="UMGreek">Unaccented Modern Greek Text (UMGreek)</option>
+<option value="Ukrainian">Ukrainian Bible (Ukrainian)</option>
+<option value="Uma">Uma New Testament (Uma)</option>
+<option value="Viet">1934 Vietnamese Bible (Viet)</option>
+<option value="Vulgate">Latin Vulgate (Vulgate)</option>
+<option value="Vulgate_HebPs">Latin Vulgate Psalms from Hebrew (Vulgate_HebPs)</option>
+<option value="WEB">World English Bible (WEB)</option>
+<option value="WH">1881 Westcott-Hort Greek Text (WH)</option>
+<option value="WHNU">Westcott-Hort with NA27U4 variants (WHNU)</option>
+<option value="Websters">Webster Bible (Websters)</option>
+<option value="Weymouth">1912 Weymouth NT (Weymouth)</option>
+<option value="Xhosa">Xhosa Bible (Xhosa)</option>
+<option value="YLT">1898 Young's Literal Translation (YLT)</option>
+</select><input type="submit" name="Submit" value="Submit"></form><br/><form method="get" action="cgi-bin/dia-def.pl">Select locale:&nbsp;
+<select name="locale" size="1"><option value="">browser default</option>
+<option value="en">en</option>
+<option value="de">de</option>
+<option value="pt">pt</option>
+<option value="sk">sk</option>
+<option value="cs">cs</option>
+<option value="da">da</option>
+<option value="no">no</option>
+</select>
+<input type="submit" name="Submit" value="Submit">
+</form>
+Many of these modules require a browser with good Unicode support such as Internet
+Explorer 5.0+ and a good Unicode font such as Code 2000 (available at <a href="http://home.att.net/~jameskass/">http://home.att.net/~jameskass/</a>).
+</body>
+</html>
diff --git a/apps/console/diatheke/cgi/index-public.html b/apps/console/diatheke/cgi/index-public.html
new file mode 100644
index 0000000..8406364
--- /dev/null
+++ b/apps/console/diatheke/cgi/index-public.html
@@ -0,0 +1,883 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Diatheke Online Bible</title>
+</head>
+
+<body>
+
+<form method="get" action="cgi-bin/diatheke.pl">
+ <p /> <font face="Arial, Helvetica, sans-serif">Verse or Search key:</font>
+ <input type="text" name="verse" size="20">
+ <input type="submit" name="Submit" value="Submit">
+ <input type="reset" name="Reset" value="Reset">
+ <br />
+ <br />
+ <input type="radio" name="search" checked value="" />
+ <font face="Arial, Helvetica, sans-serif">Verse/Commentary Lookup</font> <br />
+ <input type="radio" name="search" value="phrase" />
+ <font face="Arial, Helvetica, sans-serif">Phrase Search</font><br />
+ <input type="radio" name="search" value="multiword" />
+ <font face="Arial, Helvetica, sans-serif">Multiple Word Search</font><br />
+ <input type="radio" name="search" value="regex" />
+ <font face="Arial, Helvetica, sans-serif">Regular Expression Search</font>
+ <br>
+ <p />&nbsp;
+ <table width="100%" border="0">
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="strongs" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Strong's Numbers</font></td>
+ <td width="50%">
+ <input type="checkbox" name="headings" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Section Headings</font></td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="footnotes" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Footnotes</font></td>
+ <td width="50%">
+ <input type="checkbox" name="scriprefs" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Scripture Cross-References</font></td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="morph" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Morphology</font></td>
+ <td width="50%">
+ <input type="checkbox" name="hebvowels" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Hebrew Vowels</font></td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="lemmas" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Lemmas</font></td>
+ <td width="50%">
+ <input type="checkbox" name="hebcant" value="on">
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Hebrew Cantillation
+ Marks </font></td>
+ </tr>
+ <tr>
+ <td width="50%">
+ <input type="checkbox" name="latinxlit" value="on">
+ <font face="Arial, Helvetica, sans-serif" size="-1">Latin Transliterate</font>
+ </td>
+ <td width="50%">
+ <input type="checkbox" name="grkacc" value="on" checked>
+ <font size="-1" face="Arial, Helvetica, sans-serif">Show Greek Accents</font>
+ </td>
+ </tr>
+ </table>
+ <br>
+ <table BORDER="0" WIDTH="100%">
+ <tr>
+ <td width="48%"><font face=Times New Roman, Times, serif><b>English Biblical
+ Texts:</b></font><br />
+ </td>
+ <td width="51%"><font face=Times New Roman, Times, serif><b>Non-English
+ Biblical Texts:</b></font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="AKJV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>American King James
+ Version (AKJV)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="ALB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Albanian Bible (ALB)</font>
+ </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="ASV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1901 American Standard
+ Version (ASV)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="AraSVD" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Smith & Van Dyke Arabic
+ Bible (AraSVD)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="BBE" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1965 Bible in Basic
+ English (BBE)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="ChiGU" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Chinese Glory Union
+ Bible (ChiGU)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Common" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The Common Edition:
+ New Testament (Common)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="CzeBKR" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Czech Bible Kralicka
+ (CzeBKR)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="DR" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Douay-Rheims Bible
+ (DR)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="CzeCEP" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Czech Ekumenicky Cesky
+ preklad (CzeCEP)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="DRA" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Douay-Rheims 1899 American
+ Edition (DRA)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="CzeKMS" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Czech Preklad KMS Nova
+ smlouva (CzeKMS)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Darby" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1889 Darby Bible (Darby)</font>
+ </td>
+ <td width="51%">
+ <input type="checkbox" name="CzeNKB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Czech Nova kralicka
+ Bible (CzeNKB)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="HNV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Hebrew Names Version
+ of the World English Bible (HNV)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="Dan" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Danske Bibel (Dan)</font>
+ </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="IGNT" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Interlinear Greek New
+ Testament (IGNT)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="Esperanto" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Esperanto Bible (Esperanto)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="ISV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>International Standard
+ Version (ISV)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="FinPR" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Finnish 1938 PhyZ Raamattu
+ (FinPR)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="JPS" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Jewish Publication
+ Society Old Testament (JPS)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="FreCrl" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>French Haitian Creole
+ Version (FreCrl)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="KJV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>King James Version
+ of 1611 w/ Strongs Numbers (KJV)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="FreLSG" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>French 1910 Louis Segond
+ (FreLSG)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="LO" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The Living Oracles
+ NT (LO)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="GerBen" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>German Bengel NT (GerBen)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Montgomery" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Montgomery New Testament
+ (Montgomery)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="GerLut" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>German 1912 Luther
+ (GerLut)</font> </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Murdock" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>James Murdock's Translation
+ of the Syriac Peshitta (Murdock)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="GerLut1545" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>German 1545 Luther
+ (GerLut1545)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="ORTHJBC" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The Orthodox Jewish
+ Brit Chadasha (ORTHJBC)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="GerSch" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>German 1951 Schlachter
+ Bibel (GerSch)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="RNKJV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Restored Name King
+ James Version (RNKJV)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="GothicA" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Gothic Codex Ambr.
+ A & Mss. (GothicA)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="RWebster" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Revised 1833 Webster
+ Version (RWebster)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="GothicB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Gothic Codex Ambr.
+ B & Car. (GothicB)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Rotherham" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The Emphasized Bible
+ by J. B. Rotherham (Rotherham)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="HunKar" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Hungarian Karoli (HunKar)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="WEB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>World English Bible
+ (WEB)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="Icelandic" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Icelandic Bible (Icelandic)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Websters" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Webster Bible (Websters)</font>
+ </td>
+ <td width="51%">
+ <input type="checkbox" name="IndBIS" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Indonesian Bahasa Indonesia
+ Sehari-hari (IndBIS)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Weymouth" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1912 Weymouth NT (Weymouth)</font>
+ </td>
+ <td width="51%">
+ <input type="checkbox" name="IndTB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Indonesian Terjemahan
+ Baru (IndTB)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="YLT" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1898 Young's Literal
+ Translation (YLT)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="IndTL" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Indonesian Terjemahan
+ Baru (IndTL)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">&nbsp; </td>
+ <td width="51%">
+ <input type="checkbox" name="ItaLND" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Italian 1991 La Nuova
+ Diodati (ItaLND)</font></td>
+ </tr>
+ <tr>
+ <td width="48%"><font face=Times New Roman, Times, serif><b>Unorthodox or
+ Heretical Biblical Texts:</b></font> </td>
+ <td width="51%">
+ <input type="checkbox" name="ItaNRV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Italian 1994 La Sacra
+ Bibbia Nuova Riveduta (ItaNRV)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Diaglott" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The Emphatic Diaglott
+ (Diaglott)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="JapKUG" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Japanese JKUG Translation
+ (JapKUG)</font> </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="JST" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Joseph Smith Translation
+ (JST)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="JapSNKI" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Japanese JSNKI Translation
+ (JapSNKI)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">&nbsp; </td>
+ <td width="51%">
+ <input type="checkbox" name="Ketchi" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Ketchi Bible (Ketchi)</font></td>
+ </tr>
+ <tr>
+ <td width="48%"><font face=Times New Roman, Times, serif><b>Original Language
+ Biblical Texts:</b></font> </td>
+ <td width="51%">
+ <input type="checkbox" name="Korean" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Korean Bible (Korean)</font></td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="LXX" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Septuagint (LXX)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="Latvian" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Latvian New Testament
+ (Latvian)</font> </td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="LXXM" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Septuagint, Morphologically
+ Tagged Rahlfs' (LXXM)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="ManxGaelic" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Manx Gaelic Scripture
+ Portions (ManxGaelic)</font></td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="BHS" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Biblia Hebraica Stuttgartensia
+ (BHS)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="Maori" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Maori Bible (Maori)</font></td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="Byz" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1991 Byzantine/Majority
+ Text (Byz)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="Mel" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Melanesian Pidgin Bible
+ (Mel)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Scrivner" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1894 Scrivener Textus
+ Receptus (Scrivner)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="Norsk" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Norsk Bibelen (Norsk)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Stephanus" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1550 Stephanus Textus
+ Receptus (Stephanus)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="PorAA" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Portuguese Joao Ferreira
+ de Almeida Atualizada (PorAA)</font> </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Tisch" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Tischendorf's Eighth
+ Edition GNT (Tisch)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="RST" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Russian Synodal Translation
+ (RST)</font></td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="Vulgate" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Latin Vulgate (Vulgate)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="RomCor" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Romanian Cornilescu
+ Version (RomCor)</font></td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="Vulgate_HebPs" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Latin Vulgate Psalms
+ from Hebrew (Vulgate_HebPs)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="ScotsGaelic" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Scots Gaelic Gospel
+ of Mark (ScotsGaelic)</font></td>
+ </tr>
+ <tr>
+ <td width="51%">
+ <input type="checkbox" name="WH" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1881 Westcott-Hort
+ Greek Text (WH)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="SpaRV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Spanish Reina-Valera
+ (SpaRV)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="WHNU" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Westcott-Hort with
+ NA27U4 variants (WHNU)</font> </td>
+ <td width="51%">
+ <input type="checkbox" name="SpaSEV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Spanish 1569 Sagradas
+ Escrituras Version Antigua (SpaSEV)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">&nbsp;</td>
+ <td width="51%">
+ <input type="checkbox" name="SpaVNT" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Spanish 1858 Valera
+ New Testament (SpaVNT)</font></td>
+ </tr>
+ <tr>
+ <td width="48%"><font face=Times New Roman, Times, serif><b>Commentaries:</b></font></td>
+ <td width="51%">
+ <input type="checkbox" name="Swahili" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Swahili New Testament
+ (Swahili)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Barnes" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Barnes' New Testament
+ Notes (Barnes)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="SweSVE" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Swedish Bible 1917
+ New Testament (SweSVE)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Clarke" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Adam Clarke's Commentary
+ on the Bible (Clarke)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="Tagalog" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Tagalog (John & James)
+ (Tagalog)</font> </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="DTN" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Darby Translation Notes
+ (DTN)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="ThaiKJV" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Thai KJV (ThaiKJV)</font>
+ </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Family" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Family Bible Notes
+ (Family)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="Turkish" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Turkish NT (Turkish)</font>
+ </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Geneva" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Geneva Bible Translation
+ Notes (Geneva)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="UMGreek" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Unaccented Modern Greek
+ Text (UMGreek)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="JFB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Jamieson Fausset Brown
+ Bible Commentary (JFB)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="Ukrainian" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Ukrainian Bible (Ukrainian)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="MAK" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Matthias Ansorgs Kommentar
+ (MAK)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="Uma" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Uma New Testament (Uma)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="MHC" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Matthew Henry's Complete
+ Commentary on the Whole Bible (MHC)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="Viet" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1934 Vietnamese Bible
+ (Viet)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="MHCC" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Matthew Henry's Concise
+ Commentary on the Whole Bible (MHCC)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="Xhosa" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Xhosa Bible (Xhosa)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="PNT" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The People's New Testament
+ (PNT)</font></td>
+ <td width="51%">&nbsp;</td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Personal" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Personal Commentary
+ (Personal)</font></td>
+ <td width="51%"><font face=Times New Roman, Times, serif><b>Daily Devotionals:</b></font>
+ </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="RWP" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Robertson's Word Pictures
+ (RWP)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="Daily" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Jonathan Bagster's
+ Daily Light on the Daily Path (Daily)</font> </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Rieger" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Carl Heinrich Riegers
+ Kommentar (Rieger)</font></td>
+ <td width="51%">
+ <input type="checkbox" name="SME" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>C. H. Spurgeon's Morning
+ and Evening: Daily Readins (SME)</font> </td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="TDavid" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>C. H. Spurgeon's Treasury
+ of David (TDavid)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_de_89" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1989 Losung auf deutsch
+ (losung_de_89)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="TFG" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>The Fourfold Gospel
+ and Commentary on Acts of Apostles (TFG)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_de_90" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1990 Losung auf deutsch
+ (losung_de_90)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="TSK" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Treasury of Scriptural
+ Knowledge (TSK)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_de_91" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1991 Losung auf deutsch
+ (losung_de_91)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Wesley" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>John Wesley's Notes
+ on the Bible (Wesley)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_de_92" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1992 Losung auf deutsch
+ (losung_de_92)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">&nbsp;</td>
+ <td width="48%">
+ <input type="checkbox" name="losung_de_93" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1993 Losung auf deutsch
+ (losung_de_93)</font></td>
+ </tr>
+ <tr>
+ <td width="48%"><font face=Times New Roman, Times, serif><b>Dictionaries
+ & Lexica:</b></font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_de_94" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1994 Losung auf deutsch
+ (losung_de_94)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="AmTract" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>American Tract Society
+ Bible Dictionary (AmTract)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_de_95" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1995 Losung auf deutsch
+ (losung_de_95)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="BDB" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Brown-Driver-Briggs
+ Hebrew Lexicon (BDB)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_de_96" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1996 Losung auf deutsch
+ (losung_de_96)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Eastons" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Easton's Bible Dictionary
+ (Eastons)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_de_97" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1997 Losung auf deutsch
+ (losung_de_97)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Hitchcocks" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Hitchcock's Bible Names
+ (Hitchcocks)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_de_98" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1998 Losung auf deutsch
+ (losung_de_98)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="ISBE" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>International Standard
+ Bible Encyclopedia (ISBE)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_de_99" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1999 Losung auf deutsch
+ (losung_de_99)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Naves" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Nave's Topical Bible
+ (Naves)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_en_96" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1996 Watchwords (Losung)
+ in English (losung_en_96)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Packard" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Packard's Morphological
+ Analysis Codes (Packard)</font></td>
+ <td width="48%" height="23">
+ <input type="checkbox" name="losung_en_97" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1997 Watchwords (Losung)
+ in English (losung_en_97)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Smiths" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Smith's Bible Dictionary
+ (Smiths)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_en_98" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1998 Watchwords (Losung)
+ in English (losung_en_98)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="StrongsGreek" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Strong's Greek Bible
+ Dictionary (StrongsGreek)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_en_99" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1999 Watchwords (Losung)
+ in English (losung_en_99)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="StrongsHebrew" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Strong's Hebrew Bible
+ Dictionary (StrongsHebrew)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_es_99" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1999 Watchwords (Losung)
+ en Castellano (losung_es_99)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Thayer" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Thayer's Greek Lexicon
+ (Thayer)</font></td>
+ <td width="48%">
+ <input type="checkbox" name="losung_nl_99" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>1999 Watchwords (Losung)
+ in Dutch (losung_nl_99)</font></td>
+ </tr>
+ <tr>
+ <td width="48%">
+ <input type="checkbox" name="Torrey" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>R. A. Torrey's New
+ Topical Textbook (Torrey)</font></td>
+ <td width="51%">&nbsp;</td>
+ </tr>
+ <tr>
+ <td width="48%" height="23">
+ <input type="checkbox" name="WebstersDict" value="on">
+ <font size="-1" face=Times New Roman, Times, serif>Webster's Revised Unabridged
+ Dictionary 1913 (WebstersDict)</font> </td>
+ <td width="51%">&nbsp;</td>
+ </tr>
+ </table>
+</form>
+
+<form method="get" action="cgi-bin/dia-def.pl">
+ Select default Bible version for cross-references:&nbsp;<select name="defversion" size="1">
+
+<option value="AKJV">American King James Version (AKJV)</option>
+<option value="ASV">1901 American Standard Version (ASV)</option>
+<option value="AraSVD">Smith & Van Dyke Arabic Bible (AraSVD)</option>
+<option value="BBE">1965 Bible in Basic English (BBE)</option>
+<option value="BHS">Biblia Hebraica Stuttgartensia (BHS)</option>
+<option value="Byz">1991 Byzantine/Majority Text (Byz)</option>
+<option value="ChiGU">Chinese Glory Union Bible (ChiGU)</option>
+<option value="Common">The Common Edition: New Testament (Common)</option>
+<option value="CzeBKR">Czech Bible Kralicka (CzeBKR)</option>
+<option value="CzeCEP">Czech Ekumenicky Cesky preklad (CzeCEP)</option>
+<option value="CzeKMS">Czech Preklad KMS Nova smlouva (CzeKMS)</option>
+<option value="CzeNKB">Czech Nova kralicka Bible (CzeNKB)</option>
+<option value="DR">Douay-Rheims Bible (DR)</option>
+<option value="DRA">Douay-Rheims 1899 American Edition (DRA)</option>
+<option value="Dan">Danske Bibel (Dan)</option>
+<option value="Darby">1889 Darby Bible (Darby)</option>
+<option value="Diaglott">The Emphatic Diaglott (Diaglott)</option>
+<option value="Esperanto">Esperanto Bible (Esperanto)</option>
+<option value="FinPR">Finnish 1938 PhyZ Raamattu (FinPR)</option>
+<option value="FreCrl">French Haitian Creole Version (FreCrl)</option>
+<option value="FreLSG">1910 Louis Segond (FreLSG)</option>
+<option value="FreNEG">French Nouvelle Edition de Geneve 1979 (FreNEG)</option>
+<option value="FreTOB">French Traduction oecumenique de la Bible (FreTOB)</option>
+<option value="GerBen">German Bengel NT (GerBen)</option>
+<option value="GerLut">German 1912 Luther (GerLut)</option>
+<option value="GerLut1545">German 1545 Luther (GerLut1545)</option>
+<option value="GerSch">German 1951 Schlachter Bibel (GerSch)</option>
+<option value="GothicA">Gothic Codex Ambr. A & Mss. (GothicA)</option>
+<option value="GothicB">Gothic Codex Ambr. B & Car. (GothicB)</option>
+<option value="HNV">Hebrew Names Version of the World English Bible (HNV)</option>
+<option value="HunKar">Hungarian Karoli (HunKar)</option>
+<option value="IGNT">Interlinear Greek New Testament (IGNT)</option>
+<option value="ISV">International Standard Version (ISV)</option>
+<option value="Icelandic">Icelandic Bible (Icelandic)</option>
+<option value="IndBIS">Indonesian Bahasa Indonesia Sehari-hari (IndBIS)</option>
+<option value="IndTB">Indonesian Terjemahan Baru (IndTB)</option>
+<option value="IndTL">Indonesian Terjemahan Baru (IndTL)</option>
+<option value="ItaLND">Italian 1991 La Nuova Diodati (ItaLND)</option>
+<option value="ItaNRV">Italian 1994 La Sacra Bibbia Nuova Riveduta (ItaNRV)</option>
+<option value="JPS">Jewish Publication Society Old Testament (JPS)</option>
+<option value="JST">Joseph Smith Translation (JST)</option>
+<option value="JapKUG">Japanese JKUG Translation (JapKUG)</option>
+<option value="JapSNKI">Japanese JSNKI Translation (JapSNKI)</option>
+<option value="KJV">King James Version of 1611 w/ Strongs Numbers (KJV)</option>
+<option value="Ketchi">Ketchi Bible (Ketchi)</option>
+<option value="Korean">Korean Bible (Korean)</option>
+<option value="LO">The Living Oracles NT (LO)</option>
+<option value="LXX">Septuagint (LXX)</option>
+<option value="LXXM">Septuagint, Morphologically Tagged Rahlfs' (LXXM)</option>
+<option value="Latvian">Latvian New Testament (Latvian)</option>
+<option value="ManxGaelic">Manx Gaelic Scripture Portions (ManxGaelic)</option>
+<option value="Maori">Maori Bible (Maori)</option>
+<option value="Mel">Melanesian Pidgin Bible (Mel)</option>
+<option value="Montgomery">Montgomery New Testament (Montgomery)</option>
+<option value="Murdock">James Murdock's Translation of the Syriac Peshitta (Murdock)</option>
+<option value="Norsk">Norsk Bibelen (Norsk)</option>
+<option value="ORTHJBC">The Orthodox Jewish Brit Chadasha (ORTHJBC)</option>
+<option value="PorAA">Portuguese Joao Ferreira de Almeida Atualizada (PorAA)</option>
+<option value="RNKJV">Restored Name King James Version (RNKJV)</option>
+<option value="RST">Russian Synodal Translation (RST)</option>
+<option value="RWebster">Revised 1833 Webster Version (RWebster)</option>
+<option value="RomCor">Romanian Cornilescu Version (RomCor)</option>
+<option value="Rotherham">The Emphasized Bible by J. B. Rotherham (Rotherham)</option>
+<option value="ScotsGaelic">Scots Gaelic Gospel of Mark (ScotsGaelic)</option>
+<option value="Scrivner">1894 Scrivener Textus Receptus (Scrivner)</option>
+<option value="SpaRV">Spanish Reina-Valera (SpaRV)</option>
+<option value="SpaSEV">Spanish 1569 Sagradas Escrituras Version Antigua (SpaSEV)</option>
+<option value="SpaVNT">Spanish 1858 Valera New Testament (SpaVNT)</option>
+<option value="Stephanus">1550 Stephanus Textus Receptus (Stephanus)</option>
+<option value="Swahili">Swahili New Testament (Swahili)</option>
+<option value="SweSVE">Swedish Bible 1917 New Testament (SweSVE)</option>
+<option value="Tagalog">Tagalog (John & James) (Tagalog)</option>
+<option value="ThaiKJV">Thai KJV (ThaiKJV)</option>
+<option value="Tisch">Tischendorf's Eighth Edition GNT (Tisch)</option>
+<option value="Turkish">Turkish NT (Turkish)</option>
+<option value="UMGreek">Unaccented Modern Greek Text (UMGreek)</option>
+<option value="Ukrainian">Ukrainian Bible (Ukrainian)</option>
+<option value="Uma">Uma New Testament (Uma)</option>
+<option value="Viet">1934 Vietnamese Bible (Viet)</option>
+<option value="Vulgate">Latin Vulgate (Vulgate)</option>
+<option value="Vulgate_HebPs">Latin Vulgate Psalms from Hebrew (Vulgate_HebPs)</option>
+<option value="WEB">World English Bible (WEB)</option>
+<option value="WH">1881 Westcott-Hort Greek Text (WH)</option>
+<option value="WHNU">Westcott-Hort with NA27U4 variants (WHNU)</option>
+<option value="Websters">Webster Bible (Websters)</option>
+<option value="Weymouth">1912 Weymouth NT (Weymouth)</option>
+<option value="Xhosa">Xhosa Bible (Xhosa)</option>
+<option value="YLT">1898 Young's Literal Translation (YLT)</option>
+</select><input type="submit" name="Submit" value="Submit"></form><br/><form method="get" action="cgi-bin/dia-def.pl">Select locale:&nbsp;
+<select name="locale" size="1"><option value="">browser default</option>
+<option value="en">en</option>
+<option value="de">de</option>
+<option value="pt">pt</option>
+<option value="sk">sk</option>
+<option value="cs">cs</option>
+<option value="da">da</option>
+<option value="no">no</option>
+</select>
+<input type="submit" name="Submit" value="Submit">
+</form>
+<font face="Arial, Helvetica, sans-serif">Many of these modules require a browser with good Unicode support such as Internet Explorer 5.0+ and a good Unicode font such as Code 2000 (available at <a href="http://home.att.net/~jameskass/">http://home.att.net/~jameskass/</a>.)</font>
+</body>
+</html>
diff --git a/apps/console/diatheke/corediatheke.cpp b/apps/console/diatheke/corediatheke.cpp
new file mode 100644
index 0000000..6d091b8
--- /dev/null
+++ b/apps/console/diatheke/corediatheke.cpp
@@ -0,0 +1,427 @@
+// Diatheke 4.2 by Chris Little <chrislit@crosswire.org>
+// Copyright 1999-2002 by CrossWire Bible Society
+// http://www.crosswire.org/sword/diatheke
+// Licensed under GNU General Public License (GPL)
+// see accompanying LICENSE file for license details
+
+#include "corediatheke.h"
+#include <iostream>
+#include <string>
+#include <list>
+
+void systemquery(const char * key, ostream* output){
+ DiathekeMgr manager;
+ ModMap::iterator it;
+
+ SWModule *target;
+
+ bool types = false, descriptions = false, names = false;
+
+ if (!stricmp(key, "localelist")) {
+ static LocaleMgr lm = LocaleMgr::systemLocaleMgr;
+ list<string> loclist = lm.getAvailableLocales();
+ list<string>::iterator li = loclist.begin();
+ for (;li != loclist.end(); li++) {
+ *output << li->c_str() << endl;
+ }
+ }
+ else if (!stricmp(key, "modulelist")) {
+ types = true;
+ descriptions = true;
+ names = true;
+ }
+ else if (!stricmp(key, "modulelistnames")) {
+ names = true;
+ }
+ else if (!stricmp(key, "modulelistdescriptions")) {
+ descriptions = true;
+ }
+
+
+ if (types || descriptions || names) {
+ if (types) *output << "Biblical Texts:\n";
+ for (it = manager.Modules.begin(); it != manager.Modules.end(); it++) {
+ target = it->second;
+ if (!strcmp(target->Type(), "Biblical Texts")) {
+ if (names) *output << target->Name();
+ if (names && descriptions) *output << " : ";
+ if (descriptions) *output << target->Description();
+ *output << endl;
+ }
+ }
+ if (types) *output << "Commentaries:\n";
+ for (it = manager.Modules.begin(); it != manager.Modules.end(); it++) {
+ target = it->second;
+ if (!strcmp(target->Type(), "Commentaries")) {
+ if (names) *output << target->Name();
+ if (names && descriptions) *output << " : ";
+ if (descriptions) *output << target->Description();
+ *output << endl;
+ }
+ }
+ if (types) *output << "Dictionaries:\n";
+ for (it = manager.Modules.begin(); it != manager.Modules.end(); it++) {
+ target = it->second;
+ if (!strcmp(target->Type(), "Lexicons / Dictionaries")) {
+ if (names) *output << target->Name();
+ if (names && descriptions) *output << " : ";
+ if (descriptions) *output << target->Description();
+ *output << endl;
+ }
+ }
+ }
+}
+
+void doquery(unsigned long maxverses = -1, unsigned char outputformat = FMT_PLAIN, unsigned char outputencoding = ENC_UTF8, unsigned long optionfilters = 0, unsigned char searchtype = ST_NONE, const char *text = 0, const char *locale = 0, const char *ref = 0, ostream* output = &cout, const char *script = 0, signed short variants = 0) {
+ static DiathekeMgr manager;
+
+ ModMap::iterator it;
+ ListKey listkey;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+
+ SWModule * target;
+ char *font = 0;
+ char inputformat = 0;
+ string encoding;
+ char querytype = 0;
+
+ if (locale) {
+ LocaleMgr::systemLocaleMgr.setDefaultLocaleName(locale);
+ }
+ VerseKey vk;
+
+ //deal with queries to "system"
+ if (!stricmp(text, "system")) {
+ querytype = QT_SYSTEM;
+ systemquery(ref, output);
+ }
+ if (!strnicmp(text, "info", 4)) {
+ querytype = QT_INFO;
+ text = ref;
+ }
+ //otherwise, we have a real book
+ it = manager.Modules.find(text);
+ if (it == manager.Modules.end()) { //book not found
+ return;
+ }
+ target = (*it).second;
+
+ manager.Markup(outputformat);
+ manager.Encoding(outputencoding);
+ manager.bidi = ((OP_BIDI & optionfilters) == OP_BIDI);
+ manager.shape = ((OP_ARSHAPE & optionfilters) == OP_ARSHAPE);
+
+ if ((sit = manager.config->Sections.find((*it).second->Name())) != manager.config->Sections.end()) {
+ if ((eit = (*sit).second.find("SourceType")) != (*sit).second.end()) {
+ if (!stricmp((char *)(*eit).second.c_str(), "GBF"))
+ inputformat = FMT_GBF;
+ else if (!stricmp((char *)(*eit).second.c_str(), "ThML"))
+ inputformat = FMT_THML;
+ }
+ encoding = ((eit = (*sit).second.find("Encoding")) != (*sit).second.end()) ? (*eit).second : (string)"";
+ }
+
+
+ if (querytype == QT_INFO) {
+ switch (inputformat) {
+ case FMT_THML :
+ *output << "ThML";
+ break;
+ case FMT_GBF :
+ *output << "GBF";
+ break;
+ default:
+ *output << "Other";
+ }
+ *output << ";";
+ *output << target->Type();
+ *output << ";";
+ return;
+ }
+
+ if (searchtype)
+ querytype = QT_SEARCH;
+ else if (!strcmp(target->Type(), "Biblical Texts"))
+ querytype = QT_BIBLE;
+ else if (!strcmp(target->Type(), "Commentaries"))
+ querytype = QT_COMM;
+ else if (!strcmp(target->Type(), "Lexicons / Dictionaries"))
+ querytype = QT_LD;
+
+ if (optionfilters & OP_FOOTNOTES)
+ manager.setGlobalOption("Footnotes","On");
+ else
+ manager.setGlobalOption("Footnotes","Off");
+ if (optionfilters & OP_HEADINGS)
+ manager.setGlobalOption("Headings","On");
+ else
+ manager.setGlobalOption("Headings","Off");
+ if (optionfilters & OP_STRONGS)
+ manager.setGlobalOption("Strong's Numbers","On");
+ else
+ manager.setGlobalOption("Strong's Numbers","Off");
+ if (optionfilters & OP_MORPH)
+ manager.setGlobalOption("Morphological Tags","On");
+ else
+ manager.setGlobalOption("Morphological Tags","Off");
+ if (optionfilters & OP_CANTILLATION)
+ manager.setGlobalOption("Hebrew Cantillation","On");
+ else
+ manager.setGlobalOption("Hebrew Cantillation","Off");
+ if (optionfilters & OP_HEBREWPOINTS)
+ manager.setGlobalOption("Hebrew Vowel Points","On");
+ else
+ manager.setGlobalOption("Hebrew Vowel Points","Off");
+ if (optionfilters & OP_GREEKACCENTS)
+ manager.setGlobalOption("Greek Accents","On");
+ else
+ manager.setGlobalOption("Greek Accents","Off");
+ if (optionfilters & OP_LEMMAS)
+ manager.setGlobalOption("Lemmas","On");
+ else
+ manager.setGlobalOption("Lemmas","Off");
+ if (optionfilters & OP_SCRIPREF)
+ manager.setGlobalOption("Scripture Cross-References","On");
+ else
+ manager.setGlobalOption("Scripture Cross-References","Off");
+
+ if (optionfilters & OP_VARIANTS && variants) {
+ if (variants == -1)
+ manager.setGlobalOption("Variants", "All Readings");
+ else if (variants == 1)
+ manager.setGlobalOption("Variants", "Secondary Readings");
+ }
+ else
+ manager.setGlobalOption("Transliteration", "Primary Readings");
+
+#ifdef _ICU_
+ if (optionfilters & OP_TRANSLITERATOR && script)
+ manager.setGlobalOption("Transliteration", script);
+ else
+ manager.setGlobalOption("Transliteration", "Off");
+#endif
+
+ if (querytype == QT_SEARCH) {
+
+ //this test is just to determine if we've got SWKeys or VerseKeys
+ if (!strcmp(target->Type(), "Biblical Texts"))
+ querytype = QT_BIBLE;
+ else if (!strcmp(target->Type(), "Commentaries"))
+ querytype = QT_BIBLE;
+ else if (!strcmp(target->Type(), "Lexicons / Dictionaries"))
+ querytype = QT_LD;
+
+ //do search stuff
+ searchtype = 1 - searchtype;
+ if (querytype == QT_BIBLE) {
+ *output << "Verses containing \"";
+ }
+ else *output << "Entries containing \"";
+ *output << ref;
+ *output << "\"-- ";
+
+ listkey = target->Search(ref, searchtype);
+
+ if (strlen((const char*)listkey)) {
+ if (!listkey.Error()) {
+ if (outputformat == FMT_CGI) *output << "<entry>";
+ if (querytype == QT_BIBLE) {
+ vk = listkey;
+ *output << (const char *)vk;
+ }
+ else *output << (const char *)listkey;
+ if (outputformat == FMT_CGI) *output << "</entry>";
+ }
+ listkey++;
+ while (!listkey.Error()) {
+ *output << " ; ";
+ if (outputformat == FMT_CGI) *output << "<entry>";
+ if (querytype == QT_BIBLE) {
+ vk = listkey;
+ *output << (const char *)vk;
+ }
+ else *output << (const char *)listkey;
+ if (outputformat == FMT_CGI) *output << "</entry>";
+ listkey++;
+ }
+ *output << " -- ";
+
+ char *temp = new char[10];
+ sprintf(temp, "%u", listkey.Count());
+ *output << temp;
+ delete [] temp;
+
+ *output << " matches total (";
+ *output << target->Name();
+ *output << ")\n";
+ }
+ else {
+ *output << "none (";
+ *output << target->Name();
+ *output << ")\n";
+ }
+ }
+
+ else if (querytype == QT_LD) {
+ //do dictionary stuff
+
+ target->SetKey(ref);
+
+ const char * text = (const char *) *target;
+
+ if (outputformat == FMT_RTF) {
+ *output << "{\\rtf1\\ansi{\\fonttbl{\\f0\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f1\\fdecor\\fprq2 ";
+ if (font)
+ *output << font;
+ else
+ *output << "Times New Roman";
+ *output << ";}}";
+ }
+ else if (outputformat == FMT_HTML) {
+ *output << "<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">";
+ }
+
+ if (strlen(text)) {
+ *output << (char*)target->KeyText();
+ if (font && (outputformat == FMT_HTML || outputformat == FMT_THML || outputformat == FMT_CGI)) {
+ *output << ": <font face=\"";
+ *output << font;
+ *output << "\">";
+ }
+ else if (outputformat == FMT_RTF) {
+ *output << ": {\\f1 ";
+ }
+ else {
+ *output << ": ";
+ }
+ *output << text;
+ if (font && (outputformat == FMT_HTML || outputformat == FMT_THML || outputformat == FMT_CGI)) {
+ *output << "</font>";
+ }
+ else if (outputformat == FMT_RTF) {
+ *output << "}";
+ }
+
+ *output << "(";
+ *output << target->Name();
+ *output << ")\n";
+ }
+
+ if (outputformat == FMT_RTF) {
+ *output << "}";
+ }
+
+ }
+
+ else if (querytype == QT_BIBLE || querytype == QT_COMM) {
+ //do commentary/Bible stuff
+
+ if ((sit = manager.config->Sections.find((*it).second->Name())) != manager.config->Sections.end()) {
+ if ((eit = (*sit).second.find("Font")) != (*sit).second.end()) {
+ font = (char *)(*eit).second.c_str();
+ if (strlen(font) == 0) font = 0;
+ }
+ }
+
+ listkey = vk.ParseVerseList(ref, "Gen1:1", true);
+ int i;
+
+ if (outputformat == FMT_RTF) {
+ *output << "{\\rtf1\\ansi{\\fonttbl{\\f0\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f1\\fdecor\\fprq2 ";
+ if (font)
+ *output << font;
+ else
+ *output << "Times New Roman";
+ *output << ";}{\\f7\\froman\\fcharset2\\fprq2 Symbol;}}";
+ }
+ else if (outputformat == FMT_HTML) {
+ *output << "<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">";
+ }
+
+ for (i = 0; i < listkey.Count() && maxverses; i++) {
+ VerseKey *element = SWDYNAMIC_CAST(VerseKey, listkey.GetElement(i));
+ if (element) {
+ target->Key(element->LowerBound());
+ vk = element->UpperBound();
+ while (maxverses && target->Key() <= vk) {
+ *output << (char*)target->KeyText();
+ if (font && (outputformat == FMT_HTML || outputformat == FMT_THML || outputformat == FMT_CGI)) {
+ *output << ": <font face=\"";
+ *output << font;
+ *output << "\">";
+ }
+ else if (outputformat == FMT_RTF) {
+ *output << ": {\\f1 ";
+ }
+ else {
+ *output << ": ";
+ }
+ *output << (const char*)*target;
+ if (font && (outputformat == FMT_HTML || outputformat == FMT_THML || outputformat == FMT_CGI)) {
+ *output << "</font>";
+ }
+ else if (outputformat == FMT_RTF) {
+ *output << "}";
+ }
+
+ if (inputformat != FMT_THML && (outputformat == FMT_HTML || outputformat == FMT_THML || outputformat == FMT_CGI))
+ *output << "<br />";
+ else if (outputformat == FMT_RTF)
+ *output << "\\par ";
+ else if (outputformat == FMT_GBF)
+ *output << "<CM>";
+
+ *output << "\n";
+
+ if (target->Key() == vk)
+ break;
+ maxverses--;
+ (*target)++;
+ }
+ }
+ else {
+ target->Key(*listkey.GetElement(i));
+ *output << (char*)target->KeyText();
+ if (font && (outputformat == FMT_HTML || outputformat == FMT_THML || outputformat == FMT_CGI)) {
+ *output << ": <font face=\"";
+ *output << font;
+ *output << "\">";
+ }
+ else if (outputformat == FMT_RTF) {
+ *output << ": {\\f1 ";
+ }
+ else {
+ *output << ": ";
+ }
+ *output << (const char*)*target;
+ if (font && (outputformat == FMT_HTML || outputformat == FMT_THML || outputformat == FMT_CGI)) {
+ *output << "</font>";
+ }
+ else if (outputformat == FMT_RTF) {
+ *output << "}";
+ }
+
+ if (inputformat != FMT_THML && (outputformat == FMT_HTML || outputformat == FMT_THML || outputformat == FMT_CGI))
+ *output << "<br />";
+ else if (outputformat == FMT_RTF)
+ *output << "\\par ";
+ else if (outputformat == FMT_GBF)
+ *output << "<CM>";
+
+ *output << "\n";
+ maxverses--;
+ }
+ }
+
+ *output << "(";
+ *output << target->Name();
+ *output << ")\n";
+
+ if (outputformat == FMT_RTF) {
+ *output << "}";
+ }
+
+ }
+}
+
diff --git a/apps/console/diatheke/corediatheke.h b/apps/console/diatheke/corediatheke.h
new file mode 100644
index 0000000..b265053
--- /dev/null
+++ b/apps/console/diatheke/corediatheke.h
@@ -0,0 +1,39 @@
+// Diatheke 4.2 by Chris Little <chrislit@crosswire.org>
+// Copyright 1999-2002 by CrossWire Bible Society http://www.crosswire.org
+// Licensed under GNU General Public License (GPL)
+// see accompanying LICENSE file for license details
+
+#include <stdio.h>
+
+#include "diathekemgr.h"
+#include <localemgr.h>
+
+#define QT_BIBLE 1
+#define QT_COMM 2
+#define QT_LD 3
+#define QT_SEARCH 4
+#define QT_SYSTEM 5
+#define QT_INFO 6
+
+#define OP_NONE 0
+#define OP_STRONGS 1
+#define OP_FOOTNOTES 2
+#define OP_HEADINGS 4
+#define OP_MORPH 8
+#define OP_CANTILLATION 16
+#define OP_HEBREWPOINTS 32
+#define OP_GREEKACCENTS 64
+#define OP_TRANSLITERATOR 128
+#define OP_LEMMAS 256
+#define OP_SCRIPREF 512
+#define OP_ARSHAPE 1024
+#define OP_BIDI 2048
+#define OP_VARIANTS 4096
+
+#define ST_NONE 0
+#define ST_REGEX 1 //0
+#define ST_PHRASE 2 // -1
+#define ST_MULTIWORD 3 // -2
+
+int hasalpha (char * string);
+void doquery(unsigned long maxverses, unsigned char outputformat, unsigned char outputencoding, unsigned long optionfilters, unsigned char searchtype, const char *text, const char *locale, const char *ref, ostream* output, const char* script, signed short variants);
diff --git a/apps/console/diatheke/diafiltmgr.cpp b/apps/console/diatheke/diafiltmgr.cpp
new file mode 100644
index 0000000..1f91244
--- /dev/null
+++ b/apps/console/diatheke/diafiltmgr.cpp
@@ -0,0 +1,221 @@
+/******************************************************************************
+ * diafiltmgr.cpp
+ *
+ * Copyright 1998 CrossWire Bible Society (http://www.crosswire.org)
+ * CrossWire Bible Society
+ * P. O. Box 2528
+ * Tempe, AZ 85280-2528
+ *
+ * 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 version 2.
+ *
+ * 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.
+ *
+ */
+
+#include <thmlplain.h>
+#include <gbfplain.h>
+#include <thmlgbf.h>
+#include <gbfthml.h>
+#include <thmlhtml.h>
+#include <gbfhtml.h>
+#include <plainhtml.h>
+#include <thmlhtmlhref.h>
+#include <gbfhtmlhref.h>
+#include <thmlrtf.h>
+#include <gbfrtf.h>
+
+#include <swmgr.h>
+
+#include "diafiltmgr.h"
+#include "thmlcgi.h"
+#include "gbfcgi.h"
+
+DiathekeFilterMgr::DiathekeFilterMgr (char mark, char enc)
+ : EncodingFilterMgr(enc) {
+
+ markup = mark;
+
+ CreateFilters(markup);
+}
+
+DiathekeFilterMgr::~DiathekeFilterMgr() {
+ if (fromthml)
+ delete (fromthml);
+ if (fromgbf)
+ delete (fromgbf);
+ if (fromplain)
+ delete (fromplain);
+ if (fromosis)
+ delete (fromosis);
+}
+
+void DiathekeFilterMgr::AddRenderFilters(SWModule *module, ConfigEntMap &section) {
+ switch (module->Markup()) {
+ case FMT_THML:
+ if (fromthml)
+ module->AddRenderFilter(fromthml);
+ break;
+ case FMT_GBF:
+ if (fromgbf)
+ module->AddRenderFilter(fromgbf);
+ break;
+ case FMT_PLAIN:
+ if (fromplain)
+ module->AddRenderFilter(fromplain);
+ break;
+ case FMT_OSIS:
+ if (fromosis)
+ module->AddRenderFilter(fromosis);
+ break;
+ }
+ EncodingFilterMgr::AddRenderFilters(module, section);
+}
+
+
+char DiathekeFilterMgr::Markup(char mark) {
+ if (mark && mark != markup) {
+ markup = mark;
+ ModMap::const_iterator module;
+
+ SWFilter * oldplain = fromplain;
+ SWFilter * oldthml = fromthml;
+ SWFilter * oldgbf = fromgbf;
+ SWFilter * oldosis = fromosis;
+
+ CreateFilters(markup);
+
+ for (module = getParentMgr()->Modules.begin(); module != getParentMgr()->Modules.end(); module++)
+ switch (module->second->Markup()) {
+ case FMT_THML:
+ if (oldthml != fromthml) {
+ if (oldthml) {
+ if (!fromthml) {
+ module->second->RemoveRenderFilter(oldthml);
+ }
+ else {
+ module->second->ReplaceRenderFilter(oldthml, fromthml);
+ }
+ }
+ else if (fromthml) {
+ module->second->AddRenderFilter(fromthml);
+ }
+ }
+ break;
+ case FMT_GBF:
+ if (oldgbf != fromgbf) {
+ if (oldgbf) {
+ if (!fromgbf) {
+ module->second->RemoveRenderFilter(oldgbf);
+ }
+ else {
+ module->second->ReplaceRenderFilter(oldgbf, fromgbf);
+ }
+ }
+ else if (fromgbf) {
+ module->second->AddRenderFilter(fromgbf);
+ }
+ break;
+ }
+ case FMT_PLAIN:
+ if (oldplain != fromplain) {
+ if (oldplain) {
+ if (!fromplain) {
+ module->second->RemoveRenderFilter(oldplain);
+ }
+ else {
+ module->second->ReplaceRenderFilter(oldplain, fromplain);
+ }
+ }
+ else if (fromplain) {
+ module->second->AddRenderFilter(fromplain);
+ }
+ break;
+ }
+ case FMT_OSIS:
+ if (oldosis != fromosis) {
+ if (oldosis) {
+ if (!fromosis) {
+ module->second->RemoveRenderFilter(oldosis);
+ }
+ else {
+ module->second->ReplaceRenderFilter(oldosis, fromosis);
+ }
+ }
+ else if (fromosis) {
+ module->second->AddRenderFilter(fromosis);
+ }
+ break;
+ }
+ }
+
+ if (oldthml)
+ delete oldthml;
+ if (oldgbf)
+ delete oldgbf;
+ if (oldplain)
+ delete oldplain;
+ if (oldosis)
+ delete oldosis;
+ }
+ return markup;
+}
+
+void DiathekeFilterMgr::CreateFilters(char markup) {
+
+ switch (markup) {
+ case FMT_CGI:
+ fromplain = NULL;
+ fromthml = new ThMLCGI();
+ fromgbf = new GBFCGI();
+ fromosis = NULL;
+ break;
+ case FMT_PLAIN:
+ fromplain = NULL;
+ fromthml = new ThMLPlain();
+ fromgbf = new GBFPlain();
+ fromosis = NULL;
+ break;
+ case FMT_THML:
+ fromplain = NULL;
+ fromthml = NULL;
+ fromgbf = new GBFThML();
+ fromosis = NULL;
+ break;
+ case FMT_GBF:
+ fromplain = NULL;
+ fromthml = new ThMLGBF();
+ fromgbf = NULL;
+ fromosis = NULL;
+ break;
+ case FMT_HTML:
+ fromplain = new PLAINHTML();
+ fromthml = new ThMLHTML();
+ fromgbf = new GBFHTML();
+ fromosis = NULL;
+ break;
+ case FMT_HTMLHREF:
+ fromplain = NULL;
+ fromthml = new ThMLHTMLHREF();
+ fromgbf = new GBFHTMLHREF();
+ fromosis = NULL;
+ break;
+ case FMT_RTF:
+ fromplain = NULL;
+ fromthml = new ThMLRTF();
+ fromgbf = new GBFRTF();
+ fromosis = NULL;
+ break;
+ case FMT_OSIS:
+ fromplain = NULL;
+ fromthml = NULL;
+ fromgbf = NULL;
+ fromosis = NULL;
+ break;
+ }
+
+}
diff --git a/apps/console/diatheke/diafiltmgr.h b/apps/console/diatheke/diafiltmgr.h
new file mode 100644
index 0000000..cb04fff
--- /dev/null
+++ b/apps/console/diatheke/diafiltmgr.h
@@ -0,0 +1,44 @@
+/******************************************************************************
+ * diafiltmgr.h
+ *
+ * Copyright 1998 CrossWire Bible Society (http://www.crosswire.org)
+ * CrossWire Bible Society
+ * P. O. Box 2528
+ * Tempe, AZ 85280-2528
+ *
+ * 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 version 2.
+ *
+ * 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.
+ *
+ */
+
+#ifndef DIAFILTMGR_H
+#define DIAFILTMGR_H
+
+#define FMT_CGI 127
+
+#include <encfiltmgr.h>
+
+class SWDLLEXPORT DiathekeFilterMgr : public EncodingFilterMgr {
+protected:
+ SWFilter* fromthml;
+ SWFilter* fromgbf;
+ SWFilter* fromplain;
+ SWFilter* fromosis;
+
+ char markup;
+
+ void CreateFilters(char markup);
+public:
+ DiathekeFilterMgr(char markup = FMT_THML, char encoding = ENC_UTF8);
+ ~DiathekeFilterMgr();
+ char Markup(char m = FMT_UNKNOWN);
+ virtual void AddRenderFilters(SWModule *module, ConfigEntMap &section);
+};
+
+#endif
diff --git a/apps/console/diatheke/diatheke.cpp b/apps/console/diatheke/diatheke.cpp
new file mode 100644
index 0000000..f423e6b
--- /dev/null
+++ b/apps/console/diatheke/diatheke.cpp
@@ -0,0 +1,213 @@
+// Diatheke 4.2 by Chris Little <chrislit@crosswire.org>
+// Copyright 1999-2002 by CrossWire Bible Society
+// http://www.crosswire.org/sword/diatheke
+// Licensed under GNU General Public License (GPL)
+// see accompanying LICENSE file for license details
+
+#include "corediatheke.h"
+#include "diathekemgr.h"
+#include "diafiltmgr.h"
+#include <iostream>
+
+#define RQ_REF 1
+#define RQ_BOOK 2
+
+void printsyntax() {
+ //if we got this far without exiting, something went wrong, so print syntax
+ fprintf (stderr, "Diatheke command-line SWORD frontend Version 4.2\n");
+ fprintf (stderr, "Copyright 1999-2002 by the CrossWire Bible Society\n");
+ fprintf (stderr, "http://www.crosswire.org/sword/diatheke/\n");
+ fprintf (stderr, "usage: \n ");
+ fprintf (stderr, "diatheke <-b book> [-s search_type] [-o option_filters]\n");
+ fprintf (stderr, "[-m maximum_verses] [-f output_format] [-l locale]\n");
+ fprintf (stderr, "[-e output_encoding] [-t script] [-v variant#(-1=all|0|1)]\n");
+ fprintf (stderr, "<-k query_key>\n");
+ fprintf (stderr, "\n");
+ fprintf (stderr, "If <book> is \"system\" you may use these system keys: \"modulelist\",\n");
+ fprintf (stderr, "\"modulelistnames\", and \"localelist\".");
+ fprintf (stderr, "\n");
+ fprintf (stderr, "Valid search_type values are: regex, multiword, and phrase(def).\n");
+ fprintf (stderr, "Valid option_filters values are: n (Strong's numbers),\n");
+ fprintf (stderr, " f (Footnotes), m (Morphology), h (Section Headings),\n");
+ fprintf (stderr, " c (Cantillation), v (Hebrew Vowels), a (Greek Accents),\n");
+ fprintf (stderr, " l (Lemmas), s (Scripture Crossrefs), r (Arabic Shaping,\n");
+ fprintf (stderr, " b (Bi-Directional Reordering)\n");
+
+ fprintf (stderr, "Maximum verses may be any integer value\n");
+ fprintf (stderr, "Valid output_format values are: GBF, ThML, RTF, HTML, OSIS, CGI, and plain (def)\n");
+ fprintf (stderr, "Valid output_encoding values are: Latin1, UTF8 (def), UTF16, HTML, and RTF\n");
+ fprintf (stderr, "Valid locale values depend on installed locales. en is default.\n");
+ fprintf (stderr, "The query_key must be the last argument because all following\n");
+ fprintf (stderr, " arguments are added to the key.\n");
+}
+
+int main(int argc, char **argv)
+{
+ int maxverses = -1;
+ unsigned char outputformat = FMT_PLAIN, searchtype = ST_NONE, outputencoding = ENC_UTF8;
+ unsigned long optionfilters = OP_NONE;
+ char *text = 0, *locale = 0, *ref = 0, *script = 0;
+ signed short variants = 0;
+
+ char runquery = 0; // used to check that we have enough arguments to perform a legal query
+ // (a querytype & text = 1 and a ref = 2)
+
+ for (int i = 1; i < argc; i++) {
+ if (!stricmp("-b", argv[i])) {
+ if (i+1 <= argc) {
+ text = argv[i+1];
+ i++;
+ runquery |= RQ_BOOK;
+ }
+ }
+ else if (!stricmp("-s", argv[i])) {
+ if (i+1 <= argc) {
+ if (!stricmp("phrase", argv[i+1])) {
+ searchtype = ST_PHRASE;
+ i++;
+ }
+ else if (!stricmp("regex", argv[i+1])) {
+ searchtype = ST_REGEX;
+ i++;
+ }
+ else if (!stricmp("multiword", argv[i+1])) {
+ searchtype = ST_MULTIWORD;
+ i++;
+ }
+ else i++;
+ }
+ }
+ else if (!stricmp("-l", argv[i])) {
+ if (i+1 <= argc) {
+ locale = argv[i+1];
+ i++;
+ }
+ }
+ else if (!stricmp("-m", argv[i])) {
+ if (i+1 <= argc) {
+ maxverses = atoi(argv[i+1]);
+ i++;
+ }
+ }
+ else if (!stricmp("-o", argv[i])) {
+ if (i+1 <= argc) {
+ if (strchr(argv[i+1], 'f'))
+ optionfilters |= OP_FOOTNOTES;
+ if (strchr(argv[i+1], 'n'))
+ optionfilters |= OP_STRONGS;
+ if (strchr(argv[i+1], 'h'))
+ optionfilters |= OP_HEADINGS;
+ if (strchr(argv[i+1], 'm'))
+ optionfilters |= OP_MORPH;
+ if (strchr(argv[i+1], 'c'))
+ optionfilters |= OP_CANTILLATION;
+ if (strchr(argv[i+1], 'v'))
+ optionfilters |= OP_HEBREWPOINTS;
+ if (strchr(argv[i+1], 'a'))
+ optionfilters |= OP_GREEKACCENTS;
+ if (strchr(argv[i+1], 'l'))
+ optionfilters |= OP_LEMMAS;
+ if (strchr(argv[i+1], 's'))
+ optionfilters |= OP_SCRIPREF;
+ if (strchr(argv[i+1], 'r'))
+ optionfilters |= OP_ARSHAPE;
+ if (strchr(argv[i+1], 'b'))
+ optionfilters |= OP_BIDI;
+ i++;
+ }
+ }
+ else if (!stricmp("-f", argv[i])) {
+ if (i+1 <= argc) {
+ if (!stricmp("thml", argv[i+1])) {
+ outputformat = FMT_THML;
+ i++;
+ }
+ else if (!stricmp("cgi", argv[i+1])) {
+ outputformat = FMT_CGI;
+ i++;
+ }
+ else if (!stricmp("gbf", argv[i+1])) {
+ outputformat = FMT_GBF;
+ i++;
+ }
+ else if (!stricmp("html", argv[i+1])) {
+ outputformat = FMT_HTML;
+ i++;
+ }
+ else if (!stricmp("rtf", argv[i+1])) {
+ outputformat = FMT_RTF;
+ i++;
+ }
+ else if (!stricmp("osis", argv[i+1])) {
+ outputformat = FMT_OSIS;
+ i++;
+ }
+ else i++;
+ }
+ }
+ else if (!stricmp("-e", argv[i])) {
+ if (i+1 <= argc) {
+ if (!stricmp("utf8", argv[i+1])) {
+ outputencoding = ENC_UTF8;
+ i++;
+ }
+ else if (!stricmp("rtf", argv[i+1])) {
+ outputencoding = ENC_RTF;
+ i++;
+ }
+ else if (!stricmp("html", argv[i+1])) {
+ outputencoding = ENC_HTML;
+ i++;
+ }
+ else if (!stricmp("latin1", argv[i+1])) {
+ outputencoding = ENC_LATIN1;
+ i++;
+ }
+ else if (!stricmp("utf16", argv[i+1])) {
+ outputencoding = ENC_UTF16;
+ i++;
+ }
+ else i++;
+ }
+ }
+ else if (!stricmp("-k", argv[i])) {
+ i++;
+ if (i < argc) {
+ string key = argv[i];
+ i++;
+ for (; i < argc; i++)
+ key = key + " " + argv[i];
+ ref = new char[key.length() + 1];
+ strcpy (ref, key.c_str());
+ if (strlen(ref))
+ runquery |= RQ_REF;
+ }
+ }
+ else if (!stricmp("-v", argv[i])) {
+ if (i+1 <= argc) {
+ variants = atoi(argv[i+1]);
+ optionfilters |= OP_VARIANTS;
+ i++;
+ }
+ }
+#ifdef _ICU_
+ else if (!stricmp("-t", argv[i])) {
+ if (i+1 <= argc) {
+ script = argv[i+1];
+ optionfilters |= OP_TRANSLITERATOR;
+ i++;
+ }
+ }
+#endif
+ }
+
+
+ if (runquery == (RQ_BOOK | RQ_REF))
+ {
+ doquery(maxverses, outputformat, outputencoding, optionfilters, searchtype, text, locale, ref, &cout, script, variants);
+ }
+ else
+ printsyntax();
+
+ return 0;
+}
diff --git a/apps/console/diatheke/diatheke.dsp b/apps/console/diatheke/diatheke.dsp
new file mode 100644
index 0000000..39cf853
--- /dev/null
+++ b/apps/console/diatheke/diatheke.dsp
@@ -0,0 +1,196 @@
+# Microsoft Developer Studio Project File - Name="diatheke" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=diatheke - Win32 Debug with ICU
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "diatheke.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "diatheke.mak" CFG="diatheke - Win32 Debug with ICU"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "diatheke - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "diatheke - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE "diatheke - Win32 Debug with ICU" (based on "Win32 (x86) Console Application")
+!MESSAGE "diatheke - Win32 Release with ICU" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "diatheke - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /w /W0 /GX /O2 /I "../../../include" /I "../../../src/utilfuns/win32" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib swordlib.lib /nologo /subsystem:console /machine:I386 /libpath:"../../windoze/vc/swordlib/Release"
+
+!ELSEIF "$(CFG)" == "diatheke - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /w /W0 /Gm /GX /ZI /Od /I "../../../include" /I "../../../src/utilfuns/win32" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /GZ /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib swordlib.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../../windoze/vc/swordlib/Debug"
+
+!ELSEIF "$(CFG)" == "diatheke - Win32 Debug with ICU"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "diatheke___Win32_Debug_with_ICU"
+# PROP BASE Intermediate_Dir "diatheke___Win32_Debug_with_ICU"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "diatheke___Win32_Debug_with_ICU"
+# PROP Intermediate_Dir "diatheke___Win32_Debug_with_ICU"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /w /W0 /Gm /GX /ZI /Od /I "../../../include" /I "../../../src/utilfuns/win32" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__VISUALC__" /FR /YX /FD /GZ /c
+# ADD CPP /nologo /w /W0 /Gm /GX /ZI /Od /I "../../../include" /I "../../../src/utilfuns/win32" /I "../../../../icu-sword/include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "_ICU_" /FR /YX /FD /GZ /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib swordlib.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../../windoze/vc/swordlib/Debug"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib swordlib.lib icuin.lib icuuc.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../../../icu-sword/lib" /libpath:"../../windoze/vc/swordlib/swordlib___Win32_Debug_with_ICU"
+
+!ELSEIF "$(CFG)" == "diatheke - Win32 Release with ICU"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "diatheke___Win32_Release_with_ICU"
+# PROP BASE Intermediate_Dir "diatheke___Win32_Release_with_ICU"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "diatheke___Win32_Release_with_ICU"
+# PROP Intermediate_Dir "diatheke___Win32_Release_with_ICU"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /w /W0 /GX /O2 /I "../../../include" /I "../../../src/utilfuns/win32" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__VISUALC__" /FR /YX /FD /c
+# ADD CPP /nologo /w /W0 /GX /O2 /I "../../../include" /I "../../../src/utilfuns/win32" /I "../../../../icu-sword/include" /D "NDEBUG" /D "_ICU_" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib swordlib.lib /nologo /subsystem:console /machine:I386 /libpath:"../../windoze/vc/swordlib/Release"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib swordlib.lib icuin.lib icuuc.lib /nologo /subsystem:console /machine:I386 /libpath:"../../../../icu-sword/lib" /libpath:"../../windoze/vc/swordlib/swordlib___Win32_Release_with_ICU"
+
+!ENDIF
+
+# Begin Target
+
+# Name "diatheke - Win32 Release"
+# Name "diatheke - Win32 Debug"
+# Name "diatheke - Win32 Debug with ICU"
+# Name "diatheke - Win32 Release with ICU"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\corediatheke.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\diafiltmgr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\diatheke.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\diathekemgr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\gbfcgi.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\thmlcgi.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\corediatheke.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\diafiltmgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\diathekemgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\gbfcgi.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\thmlcgi.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project
diff --git a/apps/console/diatheke/diatheke.dsw b/apps/console/diatheke/diatheke.dsw
new file mode 100644
index 0000000..3087c26
--- /dev/null
+++ b/apps/console/diatheke/diatheke.dsw
@@ -0,0 +1,44 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "diatheke"=.\diatheke.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name swordlib
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "swordlib"=..\..\windoze\vc\swordlib\swordlib.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/apps/console/diatheke/diathekemgr.cpp b/apps/console/diatheke/diathekemgr.cpp
new file mode 100644
index 0000000..87f9102
--- /dev/null
+++ b/apps/console/diatheke/diathekemgr.cpp
@@ -0,0 +1,107 @@
+//---------------------------------------------------------------------------
+#include <thmlplain.h>
+#include <gbfplain.h>
+#include <thmlgbf.h>
+#include <gbfthml.h>
+#include <thmlhtml.h>
+#include <gbfhtml.h>
+#include <plainhtml.h>
+#include <thmlhtmlhref.h>
+#include <gbfhtmlhref.h>
+#include <thmlrtf.h>
+#include <gbfrtf.h>
+
+#include <swconfig.h>
+#include "diafiltmgr.h"
+
+#ifdef _ICU_
+#include <utf8arshaping.h>
+#include <utf8bidireorder.h>
+#include <utf8transliterator.h>
+#endif
+
+#ifdef WIN32
+#include <windows.h>
+#endif
+
+#include "diathekemgr.h"
+#include "gbfcgi.h"
+#include "thmlcgi.h"
+
+//---------------------------------------------------------------------------
+DiathekeMgr::DiathekeMgr (SWConfig * iconfig, SWConfig * isysconfig, bool autoload, char enc, char mark, bool ibidi, bool ishape)
+ : SWMgr(iconfig, isysconfig, autoload, new DiathekeFilterMgr(mark, enc))
+{
+ bidi = ibidi;
+ shape = ishape;
+
+#ifdef _ICU_
+ arshaping = new UTF8arShaping();
+ bidireorder = new UTF8BiDiReorder();
+ transliterator = new UTF8Transliterator();
+#endif
+ Load();
+
+#ifdef WIN32
+ OSVERSIONINFO osvi;
+ memset (&osvi, 0, sizeof(OSVERSIONINFO));
+ osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+ GetVersionEx(&osvi);
+ platformID = osvi.dwPlatformId;
+#endif
+
+}
+
+
+DiathekeMgr::~DiathekeMgr()
+{
+#ifdef _ICU_
+ if (arshaping)
+ delete arshaping;
+ if (bidireorder)
+ delete bidireorder;
+ if (transliterator)
+ delete transliterator;
+#endif
+}
+
+
+void DiathekeMgr::AddRenderFilters(SWModule *module, ConfigEntMap &section)
+{
+ string lang;
+ bool rtl;
+ ConfigEntMap::iterator entry;
+
+ lang = ((entry = section.find("Lang")) != section.end()) ? (*entry).second : (string)"en";
+ rtl = ((entry = section.find("Direction")) != section.end()) ? ((*entry).second == "RtoL") : false;
+
+#ifdef _ICU_
+ if (shape && !strnicmp(lang.c_str(), "ar", 2)) {
+ module->AddRenderFilter(arshaping);
+ }
+ if (bidi && rtl) {
+ module->AddRenderFilter(bidireorder);
+ }
+#endif
+ SWMgr::AddRenderFilters(module, section);
+}
+
+signed char DiathekeMgr::Load () {
+ signed char retval = SWMgr::Load();
+#ifdef _ICU_
+ optionFilters.insert(FilterMap::value_type("UTF8Transliterator", transliterator));
+ options.push_back(transliterator->getOptionName());
+#endif
+ return retval;
+};
+
+void DiathekeMgr::AddGlobalOptions (SWModule * module, ConfigEntMap & section,
+ ConfigEntMap::iterator start,
+ ConfigEntMap::iterator end) {
+
+ SWMgr::AddGlobalOptions(module, section, start, end);
+#ifdef _ICU_
+ module->AddOptionFilter(transliterator);
+#endif
+};
+
diff --git a/apps/console/diatheke/diathekemgr.h b/apps/console/diatheke/diathekemgr.h
new file mode 100644
index 0000000..6101e53
--- /dev/null
+++ b/apps/console/diatheke/diathekemgr.h
@@ -0,0 +1,35 @@
+#ifndef DIATHEKEMGR_H
+#define DIATHEKEMGR_H
+
+#include <swmgr.h>
+#include "diafiltmgr.h"
+
+enum PlatformIDs { WIN32S = 0, WIN9X, WINNT, WINCE };
+
+class DiathekeMgr : public SWMgr {
+ SWFilter *arshaping;
+ SWFilter *bidireorder;
+ SWFilter *transliterator;
+
+#ifdef WIN32
+ char platformID;
+#endif
+
+protected:
+ virtual void AddRenderFilters(SWModule *module, ConfigEntMap &section);
+ virtual signed char Load ();
+ virtual void AddGlobalOptions (SWModule * module, ConfigEntMap & section, ConfigEntMap::iterator start, ConfigEntMap::iterator end);
+
+public:
+ bool shape;
+ bool bidi;
+
+ unsigned char Markup(unsigned char m = FMT_UNKNOWN) {return ((DiathekeFilterMgr*)filterMgr)->Markup(m);};
+ unsigned char Encoding(unsigned char e = ENC_UNKNOWN) {return ((EncodingFilterMgr*)filterMgr)->Encoding(e);};
+
+ DiathekeMgr(SWConfig * iconf = NULL, SWConfig * isysconfig = NULL, bool autoload = false, char enc = ENC_UTF8, char mark = FMT_PLAIN, bool bidi = false, bool shape = false);
+ virtual ~DiathekeMgr();
+};
+
+#endif
+
diff --git a/apps/console/diatheke/gbfcgi.cpp b/apps/console/diatheke/gbfcgi.cpp
new file mode 100644
index 0000000..1bcd176
--- /dev/null
+++ b/apps/console/diatheke/gbfcgi.cpp
@@ -0,0 +1,138 @@
+/***************************************************************************
+ gbfcgi.cpp - GBF to Diatheke/CGI format
+ -------------------
+ begin : 2001-11-12
+ copyright : 2001 by CrossWire Bible Society
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * 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. *
+ * *
+ ***************************************************************************/
+
+#include <stdlib.h>
+#include <string.h>
+#include "gbfcgi.h"
+
+GBFCGI::GBFCGI() {
+ setTokenStart("<");
+ setTokenEnd(">");
+
+ setTokenCaseSensitive(true);
+
+ addTokenSubstitute("Rf", ")</small></font>");
+ addTokenSubstitute("FI", "<i>"); // italics begin
+ addTokenSubstitute("Fi", "</i>");
+ addTokenSubstitute("FB", "<n>"); // bold begin
+ addTokenSubstitute("Fb", "</n>");
+ addTokenSubstitute("FR", "<font color=\"#FF0000\">"); // words of Jesus begin
+ addTokenSubstitute("Fr", "</font>");
+ addTokenSubstitute("FU", "<u>"); // underline begin
+ addTokenSubstitute("Fu", "</u>");
+ addTokenSubstitute("FO", "<cite>"); // Old Testament quote begin
+ addTokenSubstitute("Fo", "</cite>");
+ addTokenSubstitute("FS", "<sup>"); // Superscript begin// Subscript begin
+ addTokenSubstitute("Fs", "</sup>");
+ addTokenSubstitute("FV", "<sub>"); // Subscript begin
+ addTokenSubstitute("Fv", "</sub>");
+ addTokenSubstitute("TT", "<big>"); // Book title begin
+ addTokenSubstitute("Tt", "</big>");
+ addTokenSubstitute("PP", "<cite>"); // poetry begin
+ addTokenSubstitute("Pp", "</cite>");
+ addTokenSubstitute("Fn", "</font>"); // font end
+ addTokenSubstitute("CL", "<br />"); // new line
+ addTokenSubstitute("CM", "<br />"); // paragraph
+ addTokenSubstitute("CG", "&gt;"); // ???
+ addTokenSubstitute("CT", "&lt;"); // ???
+ addTokenSubstitute("JR", "<div align=\"right\">"); // right align begin
+ addTokenSubstitute("JC", "<div align=\"center\">"); // center align begin
+ addTokenSubstitute("JL", "</div>"); // align end
+
+}
+
+
+bool GBFCGI::handleToken(char **buf, const char *token, DualStringMap &userData) {
+ unsigned long i;
+ if (!substituteToken(buf, token)) {
+ if (!strncmp(token, "WG", 2) || !strncmp(token, "WH", 2)) { // strong's numbers
+ pushString(buf, " <small><em>&lt;<a href=\"!DIATHEKE_URL!");
+ if (token[1] == 'H') {
+ pushString(buf, "BDB");
+ }
+ else if (token[1] == 'G') {
+ pushString(buf, "Thayer");
+ }
+ pushString(buf, "=on&verse=");
+ for (i = 2; i < strlen(token); i++)
+ *(*buf)++ = token[i];
+ *(*buf)++ = '\"';
+ *(*buf)++ = '>';
+ for (i = 2; i < strlen(token); i++)
+ *(*buf)++ = token[i];
+ pushString(buf, "</a>&gt;</em></small>");
+ }
+
+ else if (!strncmp(token, "WTG", 3) || !strncmp(token, "WTH", 3)) { // strong's numbers tense
+ pushString(buf, " <small><em>&lt;<a href=\"!DIATHEKE_URL!");
+ if (token[2] == 'H') {
+ pushString(buf, "BDB");
+ }
+ else if (token[2] == 'G') {
+ pushString(buf, "Thayer");
+ }
+ pushString(buf, "=on&verse=");
+ for (i = 3; i < strlen(token); i++)
+ *(*buf)++ = token[i];
+ *(*buf)++ = '\"';
+ *(*buf)++ = '>';
+ for (i = 3; i < strlen(token); i++)
+ *(*buf)++ = token[i];
+ pushString(buf, "</a>&gt;</em></small>");
+ }
+
+ else if (!strncmp(token, "WT", 2)) { // morph tags
+ pushString(buf, " <small><em>(<a href=\"!DIATHEKE_URL!Packard=on&verse=");
+ for (i = 1; i < strlen(token); i++)
+ *(*buf)++ = token[i];
+ *(*buf)++ = '\"';
+ *(*buf)++ = '>';
+ for (i = 1; i < strlen(token); i++)
+ *(*buf)++ = token[i];
+ pushString(buf, "</a>)</em></small>");
+ }
+
+ else if (!strncmp(token, "RB", 2)) {
+ pushString(buf, "<i>");
+ userData["hasFootnotePreTag"] = "true";
+ }
+
+ else if (!strncmp(token, "RF", 2)) {
+ if(userData["hasFootnotePreTag"] == "true") {
+ userData["hasFootnotePreTag"] = "false";
+ pushString(buf, "</i> ");
+ }
+ pushString(buf, "<font color=\"#800000\"><small> (");
+ }
+
+ else if (!strncmp(token, "FN", 2)) {
+ pushString(buf, "<font face=\"");
+ for (i = 2; i < strlen(token); i++)
+ *(*buf)++ = token[i];
+ *(*buf)++ = '\"';
+ *(*buf)++ = '>';
+ }
+
+ else if (!strncmp(token, "CA", 2)) { // ASCII value
+ *(*buf)++ = (char)atoi(&token[2]);
+ }
+
+ else {
+ return false;
+ }
+ }
+ return true;
+}
diff --git a/apps/console/diatheke/gbfcgi.h b/apps/console/diatheke/gbfcgi.h
new file mode 100644
index 0000000..51b0d6c
--- /dev/null
+++ b/apps/console/diatheke/gbfcgi.h
@@ -0,0 +1,33 @@
+/*-*************************************************************************
+ gbfcgi.h - description
+ -------------------
+ begin : 2001-11-12
+ copyright : 2001 by CrossWire Bible Society
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * 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. *
+ * *
+ ***************************************************************************/
+
+#ifndef GBFCGI_H
+#define GBFCGI_H
+
+#include <swbasicfilter.h>
+
+#include <defs.h>
+
+/** this filter converts GBF text to Diatheke/CGI format
+ */
+class SWDLLEXPORT GBFCGI : public SWBasicFilter {
+protected:
+ virtual bool handleToken(char **buf, const char *token, DualStringMap &userData);
+public:
+ GBFCGI ();
+};
+
+#endif
diff --git a/apps/console/diatheke/pqa/Diatheke.pqa b/apps/console/diatheke/pqa/Diatheke.pqa
new file mode 100644
index 0000000..620a5fb
--- /dev/null
+++ b/apps/console/diatheke/pqa/Diatheke.pqa
Binary files differ
diff --git a/apps/console/diatheke/pqa/src/README b/apps/console/diatheke/pqa/src/README
new file mode 100644
index 0000000..277a643
--- /dev/null
+++ b/apps/console/diatheke/pqa/src/README
@@ -0,0 +1 @@
+Use Palm's PQA Builder with the contents of this directory (except the README file) to build Diatheke.PQA. \ No newline at end of file
diff --git a/apps/console/diatheke/pqa/src/all.html b/apps/console/diatheke/pqa/src/all.html
new file mode 100644
index 0000000..0974033
--- /dev/null
+++ b/apps/console/diatheke/pqa/src/all.html
@@ -0,0 +1,170 @@
+<html>
+<head>
+<title>HANDiatheke</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<form action=http://bible.gotjesus.org/cgi-bin/diatheke.pl method=get>
+ <p align=center>Query:
+ <INPUT name=verse>
+ <INPUT name=Submit type=submit value=Lookup>
+ <input type=hidden name=palm value=on>
+ </p>
+ <font size="-1">
+ <p>
+<input name=strongs type=checkbox value=on>Stong's*| <input name=footnotes type=checkbox value=on>Footnotes| <input name=search type=checkbox value=on>Search</p>
+ <hr>
+ <p> <b>English Bibles</b><br>
+<input name=ALT type=checkbox value=on>Analytical-Literal Trans. (ALT)<br>
+<input name=ASV type=checkbox value=on>American Standard Ver. (ASV)<br>
+<input name=BBE type=checkbox value=on>Bible in Basic English (BBE)<br>
+<input name=Brenton type=checkbox value=on>Brenton's English LXX Trans. [OT]<br>
+<input name=Darby type=checkbox value=on>Darby's Bible<br>
+<input name=DR type=checkbox value=on>Douay-Rheims (DR)<br>
+<input name=DRA type=checkbox value=on>Douay-Rheims 1899 American Ed.<br>
+<input name=HNV type=checkbox value=on>Hebrew Names Ver. (HNV)<br>
+<input name=ISV type=checkbox value=on>International Standard Ver. (ISV) [NT]<br>
+<input name=JPS type=checkbox value=on>JPS 1917 Tanakh [OT]<br>
+<input name=KJ21 type=checkbox value=on>21st Century King James Ver. (KJ21)<br>
+<input name=KJV type=checkbox value=on>King James Ver. (KJV/AV) *<br>
+<input name=LITV type=checkbox value=on>Green's Literal Trans. (LitV)<br>
+<input name=LO type=checkbox value=on>The Living Oracles [NT]<br>
+<input name=MKJV type=checkbox value=on>A Modern King James Ver. (MKJV)<br>
+<input name=NASB type=checkbox value=on>New American Standard (NASB) <br>
+<input name=NASB95 type=checkbox value=on>New American Standard, 95 Update<br>
+<input name=NIV type=checkbox value=on>New International Ver. (NIV)<br>
+<input name=NIVBr type=checkbox value=on>New International Ver., British Ed.<br>
+<input name=NJB type=checkbox value=on>New Jerusalem Bible (NJB)<br>
+<input name=NKJV type=checkbox value=on>New King James Ver. (NKJV)<br>
+<input name=NLT type=checkbox value=on>New Living Trans. (NLT)<br>
+<input name=NRSV type=checkbox value=on>New Revised Standard Ver. (NRSV)<br>
+<input name=ORTHJBC type=checkbox value=on>Orthodox Jewish Brit Chadasha [NT]<br>
+<input name=RSV type=checkbox value=on>Revised Standard Ver. (RSV)<br>
+<input name=RWebster type=checkbox value=on>Revised 1833 Webster's Bible *<br>
+<input name=WEB type=checkbox value=on>World English Bible (WEB)<br>
+<input name=Websters type=checkbox value=on>Webster's Bible<br>
+<input name=Weymouth type=checkbox value=on>Weymouth New Testament [NT]<br>
+<input name=YLT type=checkbox value=on>Young's Literal Trans. (YLT)</p>
+<p><b>Ancient Language Bibles</b><br>
+<input name=BHS type=checkbox value=on>Biblia Hebraica Stuttgartensia (BHS)<br>
+<input name=ByzX type=checkbox value=on>1991 Byzantine/Majority Text<br>
+<input name=LXXX type=checkbox value=on>Septuagint (LXX)<br>
+<input name=NA26X type=checkbox value=on>Nestle-Aland 26th Ed. GNT<br>
+<input name=ScrivnerX type=checkbox value=on>1894 Scrivener Textus Receptus<br>
+<input name=StephanusX type=checkbox value=on>1550 Stephanus Textus Receptus<br>
+<input name=TischX type=checkbox value=on>Tischendorf's Eighth Ed. GNT<br>
+<input name=Vulgate type=checkbox value=on>Latin Vulgate<br>
+<input name=WHX type=checkbox value=on>1881 Westcott-Hort GNT<br>
+<input name=WHNUX type=checkbox value=on>Westcott-Hort with NA27U4 variants<br>
+</p><p>
+<b>French Bibles</b><br>
+<input name=FreCrl type=checkbox value=on>French Haitian Creaole Ver.<br>
+<input name=FreDrb type=checkbox value=on>French Darby Trans.<br>
+<input name=FreLSG type=checkbox value=on>French 1910 Louis Segond (LSG)<br>
+<input name=FreNEG type=checkbox value=on>French Nouvelle Edition de Geneve 1979<br>
+</p>
+<p><b>German Bibles</b><br>
+<input name=GerBen type=checkbox value=on>German Bengel [NT]<br>
+<input name=GerEin type=checkbox value=on>German Einheitsuebersetzung<br>
+<input name=GerElb type=checkbox value=on>German 1905 Darby Unrev. Elberfelder<br>
+<input name=GerLut type=checkbox value=on>German 1912 Luther<br>
+<input name=GerLut1545 type=checkbox value=on>German 1545 Luther<br>
+<input name=GerRElb type=checkbox value=on>German 1993 Elberfelder, rev. Fassung<br>
+<input name=GerRLut type=checkbox value=on>German 1984 Revised Luther<br>
+<input name=GerSch type=checkbox value=on>German 1951 Schlachter Bibel<br>
+</p>
+<p>
+<b>Spanish Bibles</b><br>
+<input name=SpaLBA type=checkbox value=on>Spanish La Biblia de Las Americas (LBA)<br>
+<input name=SpaRV type=checkbox value=on>Spanish Reina-Valera<br>
+<input name=SpaRV60 type=checkbox value=on>Spanish 1960 Reina-Valera Revised<br>
+<input name=SpaRV95 type=checkbox value=on>Spanish 1995 Reina-Valera Update<br>
+<input name=SpaRVA type=checkbox value=on>Spanish Ver. Reina-Valera Actualizada<br>
+<input name=SpaSEV type=checkbox value=on>Spanish 1569 Ver. Antigua<br>
+<input name=SpaVNT type=checkbox value=on>Spanish 1858 Valera[NT]<br>
+</p>
+ <p> <b>Other Bibles</b><br>
+<input name=ALB type=checkbox value=on>Albanian Bible<br>
+<input name=CzeBKR type=checkbox value=on>Czech Bible Kralicka<br>
+<input name=CzeCEP type=checkbox value=on>Czech Ekumenicky Cesky Preklad<br>
+<input name=CzeKMS type=checkbox value=on>Czech Preklad KMS Nova Smlouva<br>
+<input name=CzeNKB type=checkbox value=on>Czech Nova Kralicka Bible<br>
+<input name=Dan type=checkbox value=on>Danish Danske Bibel<br>
+<input name=DutLEI type=checkbox value=on>Dutch Leidse Vertaling<br>
+<input name=DutLU type=checkbox value=on>Dutch Lutherse Vertaling<br>
+<input name=DutNBG type=checkbox value=on>Dutch 1951 Bijbelgenootschap Ver.<br>
+<input name=DutSVV type=checkbox value=on>Dutch Statenvertaling<br>
+<input name=EquShr type=checkbox value=on>Equadoran Shuar [NT]<br>
+<input name=FinPR type=checkbox value=on>Finish 1933 Phy~N Raamattu<br>
+<input name=HunKar type=checkbox value=on>Hungarian Karoli<br>
+<input name=IndBIS type=checkbox value=on>Bahasa Indonesia Sehari-hari (BIS)<br>
+<input name=IndTB type=checkbox value=on>Indonesian Terjemahan Baru (TB)<br>
+<input name=ItaIEP type=checkbox value=on>Italian Nuovissima Ver., San Paolo Ed.<br>
+<input name=ItaLND type=checkbox value=on>Italian 1991 La Nuova Diodati<br>
+<input name=ItaNRV type=checkbox value=on>Italian 1994 La Nuova Riveduta<br>
+<input name=Maori type=checkbox value=on>Maori Bible<br>
+<input name=Mel type=checkbox value=on>Melanesian Pidgin Bible<br>
+<input name=NorBok type=checkbox value=on>Norwegian 1930 Bokmal<br>
+<input name=NorN38 type=checkbox value=on>Norwegian 1938 Bokmal<br>
+<input name=NorNBK type=checkbox value=on>Norwegian Bibel Konkordant<br>
+<input name=NorNyn type=checkbox value=on>Norwegian 1994 Nynorsk<br>
+<input name=Norsk type=checkbox value=on>Norwegian Norsk Bible<br>
+<input name=PhiCEB type=checkbox value=on>Philippine Nga Cebuano<br>
+<input name=PolBTP type=checkbox value=on>Polish 1984 Millenium Bible, 4th Ed.<br>
+<input name=PorACF type=checkbox value=on>Portuguese 1995 Joao Ferreira<br>
+<input name=PorBRP type=checkbox value=on>Portuguese 1994 Almeida Biblia<br>
+<input name=RomCor type=checkbox value=on>Romanian Cornilescu Ver.<br>
+<input name=Swahili type=checkbox value=on>Swahili New Testament [NT]<br>
+<input name=SweSVE type=checkbox value=on>Swedish 1917 New Testament [NT]<br>
+<input name=Turkish type=checkbox value=on>Turkish New Testament [NT]<br>
+<input name=Uma type=checkbox value=on>Uma New Testament [NT]<br>
+<input name=Viet type=checkbox value=on>Vietnamese 1934 Bible<br>
+</p>
+ <p> <b>English Commentaries</b><br>
+<input name=DTN type=checkbox value=on>Darby Translation Notes<br>
+<input name=Family type=checkbox value=on>Family Bible Notes<br>
+<input name=TFG type=checkbox value=on>The Fourfold Gospel<br>
+<input name=Geneva type=checkbox value=on>Geneva Bible Translation Notes<br>
+<input name=Gill type=checkbox value=on>Gill's Expositor<br>
+<input name=MHCC type=checkbox value=on>Matthew Henry's Commentary<br>
+<input name=MHC type=checkbox value=on>Matthew Henry's Concise Commentary<br>
+<input name=PNT type=checkbox value=on>The People's New Testament<br>
+<input name=RWP type=checkbox value=on>Robertson's Word Pictures<br>
+<input name=Scofield type=checkbox value=on>Scofield Reference Notes, 1917 Ed.<br>
+<input name=Wesley type=checkbox value=on>John Wesley's Notes on the Bible<br>
+</p><p>
+<p><b>German Commentaries</b><br>
+<input name=MAK type=checkbox value=on>Matthias Ansorgs Kommentar<br>
+<input name=Rieger type=checkbox value=on>Carl Heinrich Riegers Kommentar<br>
+<input name=GerScof type=checkbox value=on>German Scofield 1917 Ed. (Gen-Eccl)<br>
+</p>
+<p>
+<b>Cross-references</b><br>
+<input name=TSK type=checkbox value=on>Treasury of Scriptural Knowledge<br>
+</p>
+ <p>
+<b>Bible Dictionaries</b><br>
+<input name=Eastons type=checkbox value=on>Easton's Bible Dictionary<br>
+<input name=Hitchcocks type=checkbox value=on>Hitchcock's Bible Names Dictionary<br>
+<input name=ISBE type=checkbox value=on>Int'l Standard Bible Encyclopedia<br>
+<input name=Smiths type=checkbox value=on>Smith's Bible Dictionary<br>
+<input name=Vines type=checkbox value=on>Vine's Bible Dictionary<br>
+</p>
+<p>
+<b>Topical References</b><br>
+<input name=Naves type=checkbox value=on>Naves' Topical Bible<br>
+<input name=Torrey type=checkbox value=on>R. A. Torrey's New Topical Textbook<br>
+</p>
+ <p>
+<b>Greek Lexica</b><br>
+<input name=StrongsGreek type=checkbox value=on>Strong's Greek Lexicon<br>
+<input name=Thayer type=checkbox value=on>Thayer's Greek Lexicon<br>
+</p>
+<p>
+<b>Hebrew Lexica</b><br>
+<input name=StrongsHebrew type=checkbox value=on>Strong's Hebrew Lexicon<br>
+<input name=BDB type=checkbox value=on>Brown-Driver-Briggs Hebrew Lexicon<br>
+</p>
+ </font>
+</form>
+</body>
+</html>
diff --git a/apps/console/diatheke/pqa/src/ancient.html b/apps/console/diatheke/pqa/src/ancient.html
new file mode 100644
index 0000000..4be0036
--- /dev/null
+++ b/apps/console/diatheke/pqa/src/ancient.html
@@ -0,0 +1,32 @@
+<html>
+<head>
+<title>HANDiatheke</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<form action=http://bible.gotjesus.org/cgi-bin/diatheke.pl method=get>
+ <p align=center>Query:
+ <INPUT name=verse>
+ <INPUT name=Submit type=submit value=Lookup>
+ <input type=hidden name=palm value=on>
+ </p>
+ <font size="-1">
+ <p>
+<input name=strongs type=checkbox value=on>Stong's*| <input name=footnotes type=checkbox value=on>Footnotes| <input name=search type=checkbox value=on>Search</p>
+ <hr>
+ <p>
+<b>Bibles</b><br>
+<input name=BHS type=checkbox value=on>Biblia Hebraica Stuttgartensia (BHS)<br>
+<input name=ByzX type=checkbox value=on>1991 Byzantine/Majority Text<br>
+<input name=LXXX type=checkbox value=on>Septuagint (LXX)<br>
+<input name=NA26X type=checkbox value=on>Nestle-Aland 26th Ed. GNT<br>
+<input name=ScrivnerX type=checkbox value=on>1894 Scrivener Textus Receptus<br>
+<input name=StephanusX type=checkbox value=on>1550 Stephanus Textus Receptus<br>
+<input name=TischX type=checkbox value=on>Tischendorf's Eighth Ed. GNT<br>
+<input name=Vulgate type=checkbox value=on>Latin Vulgate<br>
+<input name=WHX type=checkbox value=on>1881 Westcott-Hort GNT<br>
+<input name=WHNUX type=checkbox value=on>Westcott-Hort with NA27U4 variants<br>
+</p>
+ </font>
+</form>
+</body>
+</html>
diff --git a/apps/console/diatheke/pqa/src/dict.html b/apps/console/diatheke/pqa/src/dict.html
new file mode 100644
index 0000000..944bce3
--- /dev/null
+++ b/apps/console/diatheke/pqa/src/dict.html
@@ -0,0 +1,32 @@
+<html>
+<head>
+<title>HANDiatheke</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<form action=http://bible.gotjesus.org/cgi-bin/diatheke.pl method=get>
+ <p align=center>Query:
+ <INPUT name=verse>
+ <INPUT name=Submit type=submit value=Lookup>
+ <input type=hidden name=palm value=on>
+ </p>
+ <font size="-1">
+ <p>
+<input name=strongs type=checkbox value=on>Stong's*| <input name=footnotes type=checkbox value=on>Footnotes| <input name=search type=checkbox value=on>Search</p>
+ <hr>
+ <p>
+<b>Bible Dictionaries</b><br>
+<input name=Eastons type=checkbox value=on>Easton's Bible Dictionary<br>
+<input name=Hitchcocks type=checkbox value=on>Hitchcock's Bible Names Dictionary<br>
+<input name=ISBE type=checkbox value=on>Int'l Standard Bible Encyclopedia<br>
+<input name=Smiths type=checkbox value=on>Smith's Bible Dictionary<br>
+<input name=Vines type=checkbox value=on>Vine's Bible Dictionary<br>
+</p>
+<p>
+<b>Topical References</b><br>
+<input name=Naves type=checkbox value=on>Naves' Topical Bible<br>
+<input name=Torrey type=checkbox value=on>R. A. Torrey's New Topical Textbook<br>
+</p>
+ </font>
+</form>
+</body>
+</html>
diff --git a/apps/console/diatheke/pqa/src/english.html b/apps/console/diatheke/pqa/src/english.html
new file mode 100644
index 0000000..774245c
--- /dev/null
+++ b/apps/console/diatheke/pqa/src/english.html
@@ -0,0 +1,68 @@
+<html>
+<head>
+<title>HANDiatheke</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<form action=http://bible.gotjesus.org/cgi-bin/diatheke.pl method=get>
+ <p align=center>Query:
+ <INPUT name=verse>
+ <INPUT name=Submit type=submit value=Lookup>
+ <input type=hidden name=palm value=on>
+ </p>
+ <font size="-1">
+ <p>
+<input name=strongs type=checkbox value=on>Stong's*| <input name=footnotes type=checkbox value=on>Footnotes| <input name=search type=checkbox value=on>Search</p>
+ <hr>
+ <p>
+<b>Bibles</b><br>
+<input name=ALT type=checkbox value=on>Analytical-Literal Trans. (ALT)<br>
+<input name=ASV type=checkbox value=on>American Standard Ver. (ASV)<br>
+<input name=BBE type=checkbox value=on>Bible in Basic English (BBE)<br>
+<input name=Brenton type=checkbox value=on>Brenton's English LXX Trans. [OT]<br>
+<input name=Darby type=checkbox value=on>Darby's Bible<br>
+<input name=DR type=checkbox value=on>Douay-Rheims (DR)<br>
+<input name=DRA type=checkbox value=on>Douay-Rheims 1899 American Ed.<br>
+<input name=HNV type=checkbox value=on>Hebrew Names Ver. (HNV)<br>
+<input name=ISV type=checkbox value=on>International Standard Ver. (ISV) [NT]<br>
+<input name=JPS type=checkbox value=on>JPS 1917 Tanakh [OT]<br>
+<input name=KJ21 type=checkbox value=on>21st Century King James Ver. (KJ21)<br>
+<input name=KJV type=checkbox value=on>King James Ver. (KJV/AV) *<br>
+<input name=LITV type=checkbox value=on>Green's Literal Trans. (LitV)<br>
+<input name=LO type=checkbox value=on>The Living Oracles [NT]<br>
+<input name=MKJV type=checkbox value=on>A Modern King James Ver. (MKJV)<br>
+<input name=NASB type=checkbox value=on>New American Standard (NASB) <br>
+<input name=NASB95 type=checkbox value=on>New American Standard, 95 Update<br>
+<input name=NIV type=checkbox value=on>New International Ver. (NIV)<br>
+<input name=NIVBr type=checkbox value=on>New International Ver., British Ed.<br>
+<input name=NJB type=checkbox value=on>New Jerusalem Bible (NJB)<br>
+<input name=NKJV type=checkbox value=on>New King James Ver. (NKJV)<br>
+<input name=NLT type=checkbox value=on>New Living Trans. (NLT)<br>
+<input name=NRSV type=checkbox value=on>New Revised Standard Ver. (NRSV)<br>
+<input name=ORTHJBC type=checkbox value=on>Orthodox Jewish Brit Chadasha [NT]<br>
+<input name=RSV type=checkbox value=on>Revised Standard Ver. (RSV)<br>
+<input name=RWebster type=checkbox value=on>Revised 1833 Webster's Bible *<br>
+<input name=WEB type=checkbox value=on>World English Bible (WEB)<br>
+<input name=Websters type=checkbox value=on>Webster's Bible<br>
+<input name=Weymouth type=checkbox value=on>Weymouth New Testament [NT]<br>
+<input name=YLT type=checkbox value=on>Young's Literal Trans. (YLT)</p>
+<p>
+<b>Commentaries</b><br>
+<input name=DTN type=checkbox value=on>Darby Translation Notes<br>
+<input name=Family type=checkbox value=on>Family Bible Notes<br>
+<input name=TFG type=checkbox value=on>The Fourfold Gospel<br>
+<input name=Geneva type=checkbox value=on>Geneva Bible Translation Notes<br>
+<input name=Gill type=checkbox value=on>Gill's Expositor<br>
+<input name=MHCC type=checkbox value=on>Matthew Henry's Commentary<br>
+<input name=MHC type=checkbox value=on>Matthew Henry's Concise Commentary<br>
+<input name=PNT type=checkbox value=on>The People's New Testament<br>
+<input name=RWP type=checkbox value=on>Robertson's Word Pictures<br>
+<input name=Scofield type=checkbox value=on>Scofield Reference Notes, 1917 Ed.<br>
+<input name=Wesley type=checkbox value=on>John Wesley's Notes on the Bible<br>
+</p><p>
+<b>Cross-references</b><br>
+<input name=TSK type=checkbox value=on>Treasury of Scriptural Knowledge<br>
+</p>
+ </font>
+</form>
+</body>
+</html>
diff --git a/apps/console/diatheke/pqa/src/french.html b/apps/console/diatheke/pqa/src/french.html
new file mode 100644
index 0000000..4aeea79
--- /dev/null
+++ b/apps/console/diatheke/pqa/src/french.html
@@ -0,0 +1,26 @@
+<html>
+<head>
+<title>HANDiatheke</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<form action=http://bible.gotjesus.org/cgi-bin/diatheke.pl method=get>
+ <p align=center>Query:
+ <INPUT name=verse>
+ <INPUT name=Submit type=submit value=Lookup>
+ <input type=hidden name=palm value=on>
+ </p>
+ <font size="-1">
+ <p>
+<input name=strongs type=checkbox value=on>Stong's*| <input name=footnotes type=checkbox value=on>Footnotes| <input name=search type=checkbox value=on>Search</p>
+ <hr>
+ <p>
+<b>Bibles</b><br>
+<input name=FreCrl type=checkbox value=on>French Haitian Creaole Ver.<br>
+<input name=FreDrb type=checkbox value=on>French Darby Trans.<br>
+<input name=FreLSG type=checkbox value=on>French 1910 Louis Segond (LSG)<br>
+<input name=FreNEG type=checkbox value=on>French Nouvelle Edition de Geneve 1979<br>
+</p>
+ </font>
+</form>
+</body>
+</html>
diff --git a/apps/console/diatheke/pqa/src/german.html b/apps/console/diatheke/pqa/src/german.html
new file mode 100644
index 0000000..d772a56
--- /dev/null
+++ b/apps/console/diatheke/pqa/src/german.html
@@ -0,0 +1,35 @@
+<html>
+<head>
+<title>HANDiatheke</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<form action=http://bible.gotjesus.org/cgi-bin/diatheke.pl method=get>
+ <p align=center>Query:
+ <INPUT name=verse>
+ <INPUT name=Submit type=submit value=Lookup>
+ <input type=hidden name=palm value=on>
+ </p>
+ <font size="-1">
+ <p>
+<input name=strongs type=checkbox value=on>Stong's*| <input name=footnotes type=checkbox value=on>Footnotes| <input name=search type=checkbox value=on>Search</p>
+ <hr>
+ <p>
+<b>Bibles</b><br>
+<input name=GerBen type=checkbox value=on>German Bengel [NT]<br>
+<input name=GerEin type=checkbox value=on>German Einheitsuebersetzung<br>
+<input name=GerElb type=checkbox value=on>German 1905 Darby Unrev. Elberfelder<br>
+<input name=GerLut type=checkbox value=on>German 1912 Luther<br>
+<input name=GerLut1545 type=checkbox value=on>German 1545 Luther<br>
+<input name=GerRElb type=checkbox value=on>German 1993 Elberfelder, rev. Fassung<br>
+<input name=GerRLut type=checkbox value=on>German 1984 Revised Luther<br>
+<input name=GerSch type=checkbox value=on>German 1951 Schlachter Bibel<br>
+</p>
+<p><b>Commentaries</b><br>
+<input name=MAK type=checkbox value=on>Matthias Ansorgs Kommentar<br>
+<input name=Rieger type=checkbox value=on>Carl Heinrich Riegers Kommentar<br>
+<input name=GerScof type=checkbox value=on>German Scofield 1917 Ed. (Gen-Eccl)<br>
+</p>
+ </font>
+</form>
+</body>
+</html>
diff --git a/apps/console/diatheke/pqa/src/index.html b/apps/console/diatheke/pqa/src/index.html
new file mode 100644
index 0000000..ff7a8c4
--- /dev/null
+++ b/apps/console/diatheke/pqa/src/index.html
@@ -0,0 +1,43 @@
+<html>
+<head>
+<title>HANDiatheke</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body bgcolor="#FFFFFF">
+<center>
+<form action=http://bible.gotjesus.org/cgi-bin/diatheke.pl method=get>
+ Quick lookup in KJV, NIV, NAS, & WEB:<br>
+<INPUT name=verse>
+<INPUT name=Submit type=submit value=Lookup>
+<input type=hidden name=KJV value=on>
+<input type=hidden name=NIV value=on>
+<input type=hidden name=NASB value=on>
+<input type=hidden name=WEB value=on>
+<input type=hidden name=palm value=on>
+</form><hr>
+ <a href="all.html">All Books</a><br>
+ <br><br>
+ <table border=0>
+ <tr>
+ <td width="50%" height="22"> <a href="dict.html">Dictionaries & Topics</a></td>
+ <td width="50%" height="22"> <a href="lex.html">Lexica</a></td>
+ </tr>
+ </table>
+ <br><br>
+ Bibles & Commentaries:<br>
+ <table border=0>
+ <tr>
+ <td width="33%"> <a href="english.html">English</a></td>
+ <td width="34%"> <a href="french.html">French</a></td>
+ <td width="33%"> <a href="german.html">German</a></td>
+ </tr>
+ <tr>
+ <td width="33%"> <a href="ancient.html">Ancient</a></td>
+ <td width="34%"> <a href="spanish.html">Spanish</a></td>
+ <td width="33%"> <a href="other.html">Other</a></td>
+ </tr>
+ </table>
+</center>
+</body>
+</html>
diff --git a/apps/console/diatheke/pqa/src/lex.html b/apps/console/diatheke/pqa/src/lex.html
new file mode 100644
index 0000000..29fe0f7
--- /dev/null
+++ b/apps/console/diatheke/pqa/src/lex.html
@@ -0,0 +1,29 @@
+<html>
+<head>
+<title>HANDiatheke</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<form action=http://bible.gotjesus.org/cgi-bin/diatheke.pl method=get>
+ <p align=center>Query:
+ <INPUT name=verse>
+ <INPUT name=Submit type=submit value=Lookup>
+ <input type=hidden name=palm value=on>
+ </p>
+ <font size="-1">
+ <p>
+<input name=strongs type=checkbox value=on>Stong's*| <input name=footnotes type=checkbox value=on>Footnotes| <input name=search type=checkbox value=on>Search</p>
+ <hr>
+ <p>
+<b>Greek Lexica</b><br>
+<input name=StrongsGreek type=checkbox value=on>Strong's Greek Lexicon<br>
+<input name=Thayer type=checkbox value=on>Thayer's Greek Lexicon<br>
+</p>
+<p>
+<b>Hebrew Lexica</b><br>
+<input name=StrongsHebrew type=checkbox value=on>Strong's Hebrew Lexicon<br>
+<input name=BDB type=checkbox value=on>Brown-Driver-Briggs Hebrew Lexicon<br>
+</p>
+ </font>
+</form>
+</body>
+</html>
diff --git a/apps/console/diatheke/pqa/src/other.html b/apps/console/diatheke/pqa/src/other.html
new file mode 100644
index 0000000..6184f94
--- /dev/null
+++ b/apps/console/diatheke/pqa/src/other.html
@@ -0,0 +1,57 @@
+<html>
+<head>
+<title>HANDiatheke</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<form action=http://bible.gotjesus.org/cgi-bin/diatheke.pl method=get>
+ <p align=center>Query:
+ <INPUT name=verse>
+ <INPUT name=Submit type=submit value=Lookup>
+ <input type=hidden name=palm value=on>
+ </p>
+ <font size="-1">
+ <p>
+<input name=strongs type=checkbox value=on>Stong's*| <input name=footnotes type=checkbox value=on>Footnotes| <input name=search type=checkbox value=on>Search</p>
+ <hr>
+ <p>
+<b>Bibles</b><br>
+<input name=ALB type=checkbox value=on>Albanian Bible<br>
+<input name=CzeBKR type=checkbox value=on>Czech Bible Kralicka<br>
+<input name=CzeCEP type=checkbox value=on>Czech Ekumenicky Cesky Preklad<br>
+<input name=CzeKMS type=checkbox value=on>Czech Preklad KMS Nova Smlouva<br>
+<input name=CzeNKB type=checkbox value=on>Czech Nova Kralicka Bible<br>
+<input name=Dan type=checkbox value=on>Danish Danske Bibel<br>
+<input name=DutLEI type=checkbox value=on>Dutch Leidse Vertaling<br>
+<input name=DutLU type=checkbox value=on>Dutch Lutherse Vertaling<br>
+<input name=DutNBG type=checkbox value=on>Dutch 1951 Bijbelgenootschap Ver.<br>
+<input name=DutSVV type=checkbox value=on>Dutch Statenvertaling<br>
+<input name=EquShr type=checkbox value=on>Equadoran Shuar [NT]<br>
+<input name=FinPR type=checkbox value=on>Finish 1933 Phy~N Raamattu<br>
+<input name=HunKar type=checkbox value=on>Hungarian Karoli<br>
+<input name=IndBIS type=checkbox value=on>Bahasa Indonesia Sehari-hari (BIS)<br>
+<input name=IndTB type=checkbox value=on>Indonesian Terjemahan Baru (TB)<br>
+<input name=ItaIEP type=checkbox value=on>Italian Nuovissima Ver., San Paolo Ed.<br>
+<input name=ItaLND type=checkbox value=on>Italian 1991 La Nuova Diodati<br>
+<input name=ItaNRV type=checkbox value=on>Italian 1994 La Nuova Riveduta<br>
+<input name=Maori type=checkbox value=on>Maori Bible<br>
+<input name=Mel type=checkbox value=on>Melanesian Pidgin Bible<br>
+<input name=NorBok type=checkbox value=on>Norwegian 1930 Bokmal<br>
+<input name=NorN38 type=checkbox value=on>Norwegian 1938 Bokmal<br>
+<input name=NorNBK type=checkbox value=on>Norwegian Bibel Konkordant<br>
+<input name=NorNyn type=checkbox value=on>Norwegian 1994 Nynorsk<br>
+<input name=Norsk type=checkbox value=on>Norwegian Norsk Bible<br>
+<input name=PhiCEB type=checkbox value=on>Philippine Nga Cebuano<br>
+<input name=PolBTP type=checkbox value=on>Polish 1984 Millenium Bible, 4th Ed.<br>
+<input name=PorACF type=checkbox value=on>Portuguese 1995 Joao Ferreira<br>
+<input name=PorBRP type=checkbox value=on>Portuguese 1994 Almeida Biblia<br>
+<input name=RomCor type=checkbox value=on>Romanian Cornilescu Ver.<br>
+<input name=Swahili type=checkbox value=on>Swahili New Testament [NT]<br>
+<input name=SweSVE type=checkbox value=on>Swedish 1917 New Testament [NT]<br>
+<input name=Turkish type=checkbox value=on>Turkish New Testament [NT]<br>
+<input name=Uma type=checkbox value=on>Uma New Testament [NT]<br>
+<input name=Viet type=checkbox value=on>Vietnamese 1934 Bible<br>
+</p>
+ </font>
+</form>
+</body>
+</html>
diff --git a/apps/console/diatheke/pqa/src/spanish.html b/apps/console/diatheke/pqa/src/spanish.html
new file mode 100644
index 0000000..e848003
--- /dev/null
+++ b/apps/console/diatheke/pqa/src/spanish.html
@@ -0,0 +1,29 @@
+<html>
+<head>
+<title>HANDiatheke</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<form action=http://bible.gotjesus.org/cgi-bin/diatheke.pl method=get>
+ <p align=center>Query:
+ <INPUT name=verse>
+ <INPUT name=Submit type=submit value=Lookup>
+ <input type=hidden name=palm value=on>
+ </p>
+ <font size="-1">
+ <p>
+<input name=strongs type=checkbox value=on>Stong's*| <input name=footnotes type=checkbox value=on>Footnotes| <input name=search type=checkbox value=on>Search</p>
+ <hr>
+ <p>
+<b>Bibles</b><br>
+<input name=SpaLBA type=checkbox value=on>Spanish La Biblia de Las Americas (LBA)<br>
+<input name=SpaRV type=checkbox value=on>Spanish Reina-Valera<br>
+<input name=SpaRV60 type=checkbox value=on>Spanish 1960 Reina-Valera Revised<br>
+<input name=SpaRV95 type=checkbox value=on>Spanish 1995 Reina-Valera Update<br>
+<input name=SpaRVA type=checkbox value=on>Spanish Ver. Reina-Valera Actualizada<br>
+<input name=SpaSEV type=checkbox value=on>Spanish 1569 Ver. Antigua<br>
+<input name=SpaVNT type=checkbox value=on>Spanish 1858 Valera[NT]<br>
+</p>
+ </font>
+</form>
+</body>
+</html>
diff --git a/apps/console/diatheke/soap/sapouni.cgi b/apps/console/diatheke/soap/sapouni.cgi
new file mode 100755
index 0000000..24df769
--- /dev/null
+++ b/apps/console/diatheke/soap/sapouni.cgi
@@ -0,0 +1,97 @@
+#!/usr/bin/perl
+
+#version 1.0
+
+package sapouni;
+$sapouni = "nice /usr/bin/diatheke"; # location of diatheke command line program -- if you are using a MS Windows server, you might need to remove the "nice"
+
+$sword_path = "/home/sword"; # SWORD_PATH environment variable you want to use
+$maxverses = 0; # maximum number of verses diatheke will return per query (prevents people from asking for Gen1:1-Rev22:21; 0 for unlim.)
+$defversion = "KJV"; # book to query when none is selected, but a verse/search is entered
+$deflocale = "abbr"; # this is just the default for cases where user has not selected a locale and his browser does not reveal one -- you can also set locale using locael=<locale> in the GET URL
+
+
+###############################################################################
+## You should not need to edit anything below this line.
+## Unless you want to modify functionality of course. :)
+###############################################################################
+
+$ENV{'SWORD_PATH'} = $sword_path;
+
+use SOAP::Transport::HTTP;
+
+SOAP::Transport::HTTP::CGI
+ -> dispatch_to('sapouni')
+ -> handle;
+
+package sapouni;
+
+sub biblequery {
+ my ($class, $books, $key, $options, $encoding, $markup, $searchtype, $locale, $script, $max) = @_;
+
+ if ($key eq "") {
+ $key = "Jn 3:16";
+ }
+
+ @booklist = split ' ', $books;
+
+ $n = scalar(@booklist);
+ if ($n == 0) {
+ @booklist[0] = $defversion;
+ $n++;
+ }
+
+ $query = "";
+
+ if ($options ne "") {
+ $query .= " -o \"$options\"";
+ }
+
+ if ($encoding ne "") {
+ $query .= " -e \"$encoding\"";
+ }
+ else {
+ $query .= " -e UTF8";
+ }
+
+ if ($markup ne "") {
+ $query .= " -f \"$markup\"";
+ }
+ else {
+ $query .= " -f ThML";
+ }
+
+ if ($searchtype ne "") {
+ $query .= " -s \"$searchtype\"";
+ }
+
+ if ($locale ne "") {
+ $query .= " -l \"$locale\"";
+ }
+ else {
+ $query .= " -l $deflocale";
+ }
+
+ if ($script ne "") {
+ $query .= " -t \"$script\"";
+ }
+
+ if ($max ne "" && $max ne 0) {
+ $query .= " -m \"$max\"";
+ }
+
+ $rval = "";
+ for ($i = 0; $i < $n; $i++) {
+ $line = "$sapouni $query -b $booklist[$i] -k \"$key\" 2> /dev/null";
+
+ # uncomment to print the command line send to Diatheke (for debugging)
+ # $rval .= "$line\n";
+
+ $line = `$line`;
+ chomp($line);
+
+ $rval .= "$line\n";
+ }
+
+ return "$rval";
+}
diff --git a/apps/console/diatheke/soap/soapatheke.pl b/apps/console/diatheke/soap/soapatheke.pl
new file mode 100755
index 0000000..e3f88ed
--- /dev/null
+++ b/apps/console/diatheke/soap/soapatheke.pl
@@ -0,0 +1,16 @@
+#!/usr/bin/perl
+
+## This is a test app and has no other purpose.
+
+use SOAP::Lite;
+
+my ($books, $key, $options, $encoding, $markup, $searchtype, $locale, $script, $max) = @ARGV;
+
+# uncomment to see parameters being passed to the SOAP server (for debugging)
+# print "$books\n$key\n$options\n$encoding\n$markup\n$searchtype\n$locale\n$script\n$max\n";
+
+print SOAP::Lite
+ -> uri('http://bible.gotjesus.org/sapouni')
+ -> proxy('http://bible.gotjesus.org/cgi-bin/sapouni.cgi')
+ -> biblequery($books, $key, $options, $encoding, $markup, $searchtype, $locale, $script, $max)
+ -> result;
diff --git a/apps/console/diatheke/tcl/biblebot-diatheke.tcl b/apps/console/diatheke/tcl/biblebot-diatheke.tcl
new file mode 100644
index 0000000..1f3cd2a
--- /dev/null
+++ b/apps/console/diatheke/tcl/biblebot-diatheke.tcl
@@ -0,0 +1,2109 @@
+# Diatheke/Tcl 3.0 by Chris Little <chrislit@gotjesus.org>
+# Based on code schema of <cking@acy.digex.net>
+
+# Copyright 1999, 2000, 2001 by Chris Little
+# Licensed under GNU General Public License (GPL)
+# see accompanying LICENSE file for license details
+
+# This script is intended for use with libraries and modules from
+# the SWORD Project, available at http://www.crosswire.org/
+#
+# To install Diatheke/Tcl, install an eggdrop IRC bot, copy the
+# Diatheke/Tcl .tcl file to your eggdrop scripts directory, and
+# add a line to the end of your bot startup script to load the
+# Diatheke/Tcl script. This script has been tested with eggdrop 1.3.23
+# but should function fine in later versions.
+#
+# This is script assumes you have every single SWORD module installed
+# that was available at the time of release. Since you probably do not,
+# remove all modules listed in the pub_books function that you do not
+# have installed to hide them from end-users.
+#
+# The !history command only works if you have LOGGING turned on in
+# diatheke (the command line C program). This command is commented out
+# of the help function and must be uncommented to make it show up for
+# end-users.
+#
+# When you get the script loaded, type !biblehelp in a channel where
+# the bot is present and it will give you a full list of commands.
+# More commands will appear to you depending upon which mode the bot is
+# in and whether you are an op on the bot or voiced in the channel.
+
+set diaver 3.0
+
+#modify this to reflect actual location of diatheke and dict binaries
+set diatheke "/usr/bin/diatheke"
+set dict "/usr/bin/dict"
+
+proc publookupverse {vlookup} {
+ global botnick chan bibver diatheke
+
+ set arg "-b"
+ set n [string first "@" $vlookup]
+ if {$n > -1 && $n < 2} {
+ append arg n
+ }
+
+ set n [string first "#" $vlookup]
+ if {$n > -1 && $n < 2} {
+ append arg f
+ }
+ set vlookup [string trimleft $vlookup "#"]
+ set vlookup [string trimleft $vlookup "@"]
+ set vlookup [string trimleft $vlookup "#"]
+
+ catch {exec $diatheke $arg $bibver "$vlookup" 5 >& /tmp/fooout.$botnick}
+ catch {set foofile [open /tmp/fooout.$botnick]}
+ while {[gets $foofile fooverse] >= 0} {
+ set len [string length $fooverse]
+ set i 0
+ set j 255
+ while {$j < $len} {
+ if {[regexp ">" $fooverse]} {
+ while {[string index $fooverse $j] != ">" && [string index $fooverse $j] != "\n"} {set j [expr $j - 1]}
+ } else {
+ while {[string index $fooverse $j] != " " && [string index $fooverse $j] != "\n"} {set j [expr $j - 1]}
+ }
+ set foo2 [string range $fooverse $i $j]
+ set foo2 [string trim $foo2]
+ regsub -all -nocase {(<FI>|<CM>|<FB>)} $foo2 {} foo2
+ regsub -all {<RF>} $foo2 {(footnote: } foo2
+ regsub -all {<Rf>} $foo2 {)} foo2
+ putmsg $chan "$foo2"
+ set i [expr $j + 1]
+ set j [expr $j + 256]
+ if {$j > $len} {set j $len}
+ }
+ set foo2 [string range $fooverse $i end]
+ set foo2 [string trim $foo2]
+ regsub -all -nocase {(<FI>|<CM>|<FB>)} $foo2 {} foo2
+ regsub -all {<RF>} $foo2 {(footnote: } foo2
+ regsub -all {<Rf>} $foo2 {)} foo2
+ putmsg $chan "$foo2"
+ }
+
+ catch {close $foofile}
+ exec rm /tmp/fooout.$botnick
+ return 1
+}
+
+
+proc pub_lookup {nick uhost hand channel arg} {
+ global von chan bibver
+ set chan $channel
+ if {$von==0} {
+ putmsg $nick "Verse display is currently off."
+ return 0
+ }
+ if {($von==2) && (![matchattr $hand 3]) && (![matchattr $hand o])} {
+ putmsg $nick "Only ops can display verses at this time."
+ return 0
+ }
+
+ publookupverse $arg
+
+}
+
+bind pub - !kjv setver_kjv
+bind pub - !english setver_kjv
+
+proc setver_kjv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver KJV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+
+bind pub - !niv setver_niv
+
+proc setver_niv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NIV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !dr setver_dr
+bind pub - !douayrheims setver_dr
+bind pub - !dre setver_dr
+
+proc setver_dr {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver DR
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !nas setver_nasb
+bind pub - !nasb setver_nasb
+
+proc setver_nasb {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NASB
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !hnv setver_hnv
+
+proc setver_hnv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver HNV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !web setver_web
+
+proc setver_web {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver WEB
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !bbe setver_bbe
+
+proc setver_bbe {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver BBE
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !webster setver_webster
+
+proc setver_webster {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Websters
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !jbc setver_jbc
+
+proc setver_jbc {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ORTHJBC
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !rva setver_rva
+bind pub - !spanish setver_rva
+
+proc setver_rva {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver SpaRVA
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !lsg setver_lsg
+bind pub - !french setver_lsg
+
+proc setver_lsg {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver FreLSG
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !bis setver_bis
+bind pub - !indonesian setver_bis
+
+proc setver_bis {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver IndBIS
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !tb setver_tb
+
+proc setver_tb {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver IndTB
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sve setver_sve
+bind pub - !swedish setver_sve
+
+proc setver_sve {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver SweSve
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !vnt setver_vnt
+
+proc setver_vnt {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver SpaVNT
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !asv setver_asv
+
+proc setver_asv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ASV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !rsv setver_rsv
+
+proc setver_rsv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver RSV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !alt setver_alt
+
+proc setver_alt {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ALT
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !dby setver_dby
+bind pub - !darby setver_dby
+
+proc setver_dby {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Darby
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !pr setver_pr
+bind pub - !finnish setver_pr
+
+proc setver_pr {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver FinPR
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !lsg setver_lsg
+bind pub - !french setver_lsg
+
+proc setver_lsg {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver FreLSG
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !lut setver_lut
+bind pub - !luther setver_lut
+bind pub - !german setver_lut
+
+proc setver_lut {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver GerLut
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sch setver_sch
+
+proc setver_sch {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver GerSch
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+
+bind pub - !kar setver_kar
+bind pub - !hungarian setver_kar
+
+proc setver_kar {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver HunKar
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !nrv setver_nrv
+bind pub - !italian setver_nrv
+
+proc setver_nrv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ItaNRV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !jps setver_jps
+
+proc setver_jps {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver JPS
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !brp setver_brp
+bind pub - !portuguese setver_brp
+
+proc setver_brp {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver PorBRP
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sev setver_sev
+
+proc setver_sev {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver SpaSEV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !swahili setver_swahili
+
+proc setver_swahili {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Swahili
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !wey setver_wey
+bind pub - !weymouth setver_wey
+
+proc setver_wey {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Weymouth
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !ylt setver_ylt
+
+proc setver_ylt {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver YLT
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !alb setver_alb
+bind pub - !albanian setver_alb
+
+proc setver_alb {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Alb
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !gnpu setver_gnpu
+bind pub - !chinese setver_gnpu
+
+proc setver_gnpu {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ChiGNPU
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !dan setver_dan
+bind pub - !danish setver_dan
+
+proc setver_dan {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Dan
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !lei setver_lei
+bind pub - !dutch setver_lei
+
+proc setver_lei {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver DutLEI
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !lu setver_lu
+
+proc setver_lu {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver DutLU
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !svv setver_svv
+
+proc setver_svv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver DutSVV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !shr setver_shr
+bind pub - !equadoran setver_shr
+
+proc setver_shr {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver EquShr
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !crl setver_crl
+bind pub - !creole setver_crl
+
+proc setver_crl {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver FreCrl
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !fredrb setver_fredrb
+
+proc setver_fredrb {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver FreDrb
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !ben setver_ben
+
+proc setver_ben {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver GerBen
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !elb setver_elb
+
+proc setver_elb {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver GerElb
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !kj21 setver_kj21
+
+proc setver_kj21 {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver KJ21
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !litv setver_litv
+
+proc setver_litv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver LITV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !lo setver_lo
+
+proc setver_lo {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver LO
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !maori setver_maori
+
+proc setver_maori {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Maori
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !mkjv setver_mkjv
+
+proc setver_mkjv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver MKJV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !nkj setver_nkjv
+bind pub - !nkjv setver_nkjv
+
+proc setver_nkjv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NKJV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !ceb setver_ceb
+bind pub - !filipino setver_ceb
+
+proc setver_ceb {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver PhiCeb
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !rwebster setver_rwebster
+
+proc setver_rwebster {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver RWebster
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !rv setver_rv
+
+proc setver_rv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver SpaRV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !turkish setver_turkish
+
+proc setver_turkish {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Turkish
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !uma setver_uma
+
+proc setver_uma {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Uma
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !vulgate setver_vulgate
+bind pub - !vulg setver_vulgate
+bind pub - !latin setver_vulgate
+
+proc setver_vulgate {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Vulgate
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !nasb95 setver_nasb95
+bind pub - !nas95 setver_nasb95
+bind pub - !nau setver_nasb95
+
+proc setver_nasb95 {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NASB95
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !nivbr setver_nivbr
+bind pub - !nib setver_nivbr
+
+proc setver_nivbr {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NIVBr
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !nlt setver_nlt
+
+proc setver_nlt {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NLT
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !nrsv setver_nrsv
+
+proc setver_nrsv {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NRSV
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !neg setver_neg
+
+proc setver_neg {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver FreNEG
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !lnd setver_lnd
+
+proc setver_lnd {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ItaLND
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !mel setver_mel
+bind pub - !melanesian setver_mel
+
+proc setver_mel {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Mel
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !norsk setver_norsk
+
+proc setver_norsk {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Norsk
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !cor setver_cor
+
+proc setver_cor {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver RomCor
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !lba setver_lba
+
+proc setver_lba {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver SpaLBA
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !byz setver_byz
+
+proc setver_byz {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ByzX
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !lxx setver_lxx
+
+proc setver_lxx {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver LXXX
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !na26 setver_na26
+bind pub - !greek setver_na26
+
+proc setver_na26 {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NA26X
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !scrivner setver_scrivner
+
+proc setver_scrivner {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ScrivnerX
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !stephanus setver_stephanus
+
+proc setver_stephanus {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver StephanusX
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !tischendorf setver_tisch
+bind pub - !tisch setver_tisch
+
+proc setver_tisch {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver TischX
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !wh setver_wh
+
+proc setver_wh {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver WHX
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !whnu setver_whnu
+
+proc setver_whnu {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver WHNUX
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !grkbyz setver_grkbyz
+
+proc setver_grkbyz {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Byz
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !grklxx setver_grklxx
+
+proc setver_grklxx {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver LXX
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !grkna26 setver_grkna26
+bind pub - !grkgreek setver_na26
+
+proc setver_grkna26 {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NA26
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !grkscrivner setver_grkscrivner
+
+proc setver_grkscrivner {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Scrivner
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !grkstephanus setver_grkstephanus
+
+proc setver_grkstephanus {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Stephanus
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !grktischendorf setver_grktisch
+bind pub - !grktisch setver_grktisch
+
+proc setver_grktisch {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Tisch
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !grkwh setver_grkwh
+
+proc setver_grkwh {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver WH
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !grkwhnu setver_grkwhnu
+
+proc setver_grkwhnu {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver WHNU
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !bhs setver_bhs
+bind pub - !hebrew setver_bhs
+
+proc setver_bhs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver BHS
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !rst setver_rst
+
+proc setver_rst {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver RST
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !ukrainian setver_ukrainian
+
+proc setver_ukrainian {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Ukrainian
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !arabic setver_arabic
+
+proc setver_arabic {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Arabic
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !n27u4 setver_n27u4
+bind pub - !nu setver_n27u4
+bind pub - !bgreek setver_n27u4
+
+proc setver_n27u4 {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver N27U4
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !umgreek setver_ukgreek
+
+proc setver_umgreek {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver UMGreek
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+bind pub - !viet setver_viet
+bind pub - !vietnamese setver_viet
+
+proc setver_viet {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Viet
+ pub_lookup $nick $uhost $hand $channel $arg
+}
+
+
+# ----------------------------------------------------------------------
+
+proc pubsearchword {vlookup} {
+ global botnick chan bibver diatheke
+ catch {exec $diatheke -s $bibver "$vlookup" >& /tmp/fooout.$botnick}
+ catch {set foofile [open /tmp/fooout.$botnick]}
+
+ while {[gets $foofile fooverse] >= 0} {
+ set len [string length $fooverse]
+ set i 0
+ set j 72
+ while {$j < $len} {
+ while {[string index $fooverse $j] != ";" && [string index $fooverse $j] != ")" && [string index $fooverse $j] != "\n"} {set j [expr $j + 1]}
+ set foo2 [string range $fooverse $i $j]
+ set foo2 [string trim $foo2]
+ putmsg $chan "$foo2"
+ set i [expr $j + 1]
+ set j [expr $j + 73]
+ if {$j > $len} {set j $len}
+ }
+ set foo2 [string range $fooverse $i end]
+ set foo2 [string trim $foo2]
+ putmsg $chan "$foo2"
+ }
+ catch {close $foofile}
+
+ putmsg $chan "$fooverse"
+ exec rm /tmp/fooout.$botnick
+ return 1
+}
+
+
+proc pub_lookups {nick uhost hand channel arg} {
+ global von chan bibver
+ set chan $channel
+ if {$von==0} {
+ putmsg $nick "Verse display is currently off."
+ return 0
+ }
+ if {($von==3) && (![matchattr $hand 3]) && (![matchattr $hand o]) && (![isvoice $nick $chan])} {
+ putmsg $nick "Sorry, only ops and voiced users can do searches right now."
+ return 0
+ }
+ if {($von==2) && (![matchattr $hand 3]) && (![matchattr $hand o])} {
+ putmsg $nick "Sorry, only ops can do searches right now."
+ return 0
+ }
+
+ pubsearchword $arg
+}
+
+bind pub - !skjv setver_kjvs
+bind pub - !senglish setver_kjvs
+
+proc setver_kjvs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver KJV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+
+bind pub - !sniv setver_nivs
+
+proc setver_nivs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NIV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sdr setver_drs
+bind pub - !sdouayrheims setver_drs
+bind pub - !sdre setver_drs
+
+proc setver_drs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver DR
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !snas setver_nasbs
+bind pub - !snasb setver_nasbs
+
+proc setver_nasbs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NASB
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !shnv setver_hnvs
+
+proc setver_hnvs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver HNV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sweb setver_webs
+
+proc setver_webs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver WEB
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sbbe setver_bbes
+
+proc setver_bbes {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver BBE
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !swebster setver_websters
+
+proc setver_websters {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Websters
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sjbc setver_jbcs
+
+proc setver_jbcs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ORTHJBC
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !srva setver_rvas
+bind pub - !sspanish setver_rvas
+
+proc setver_rvas {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver SpaRVA
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sbis setver_biss
+bind pub - !sindonesian setver_biss
+
+proc setver_biss {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver IndBIS
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !stb setver_tbs
+
+proc setver_tbs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver IndTB
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !ssve setver_sves
+bind pub - !sswedish setver_sves
+
+proc setver_sves {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver SweSve
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !svnt setver_vnts
+
+proc setver_vnts {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver SpaVNT
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sasv setver_asvs
+
+proc setver_asvs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ASV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !srsv setver_rsvs
+
+proc setver_rsvs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver RSV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !salt setver_alts
+
+proc setver_alts {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ALT
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sdby setver_dbys
+bind pub - !sdarby setver_dbys
+
+proc setver_dbys {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Darby
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !spr setver_prs
+bind pub - !sfinnish setver_prs
+
+proc setver_prs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver FinPR
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !slsg setver_lsgs
+bind pub - !sfrench setver_lsgs
+
+proc setver_lsgs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver FreLSG
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !slut setver_luts
+bind pub - !sluther setver_luts
+bind pub - !sgerman setver_luts
+
+proc setver_luts {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver GerLut
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !ssch setver_schs
+
+proc setver_schs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver GerSch
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+
+bind pub - !skar setver_kars
+bind pub - !shungarian setver_kars
+
+proc setver_kars {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver HunKar
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !snrv setver_nrvs
+bind pub - !sitalian setver_nrvs
+
+proc setver_nrvs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ItaNRV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sjps setver_jpss
+
+proc setver_jpss {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver JPS
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sbrp setver_brps
+bind pub - !sportuguese setver_brps
+
+proc setver_brps {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver PorBRP
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !ssev setver_sevs
+
+proc setver_sevs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver SpaSEV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sswahili setver_swahilis
+
+proc setver_swahilis {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Swahili
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !swey setver_weys
+bind pub - !sweymouth setver_weys
+
+proc setver_weys {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Weymouth
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sylt setver_ylts
+
+proc setver_ylts {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver YLT
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !salb setver_albs
+bind pub - !salbanian setver_albs
+
+proc setver_albs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ALB
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sgnpu setver_gnpus
+bind pub - !schinese setver_gnpus
+
+proc setver_gnpus {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ChiGNPU
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sdan setver_dans
+bind pub - !sdanish setver_dans
+
+proc setver_dans {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Dan
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !slei setver_leis
+bind pub - !sdutch setver_leis
+
+proc setver_leis {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver DutLEI
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !slu setver_lus
+
+proc setver_lus {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver DutLU
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !ssvv setver_svvs
+
+proc setver_svvs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver DutSVV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sshr setver_shrs
+bind pub - !sequadoran setver_shrs
+
+proc setver_shrs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver EquShr
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !scrl setver_crls
+bind pub - !screole setver_crls
+
+proc setver_crls {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver FreCrl
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sfredrb setver_fredrbs
+
+proc setver_fredrbs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver FreDrb
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sben setver_bens
+
+proc setver_bens {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver BerBen
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !selb setver_elbs
+
+proc setver_elbs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver GerElb
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !skj21 setver_kj21s
+
+proc setver_kj21s {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver KJ21
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !slitv setver_litvs
+
+proc setver_litvs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver LITV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !slo setver_los
+
+proc setver_los {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver LO
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !smaori setver_maoris
+
+proc setver_maoris {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Mao
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !smkjv setver_mkjvs
+
+proc setver_mkjvs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver MKJV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !snkjv setver_nkjvs
+
+proc setver_nkjvs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NKJV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sceb setver_cebs
+bind pub - !sfilipino setver_cebs
+
+proc setver_cebs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver PhiCeb
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !srwebster setver_rwebsters
+
+proc setver_rwebsters {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver RWebster
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !srv setver_rvs
+
+proc setver_rvs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver SpaRV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sturkish setver_turkishs
+
+proc setver_turkishs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Turkish
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !suma setver_umas
+
+proc setver_umas {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Uma
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !svulgate setver_vulgates
+bind pub - !svulg setver_vulgates
+bind pub - !slatin setver_vulgates
+
+proc setver_vulgates {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Vulgate
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !snasb95 setver_nasb95s
+bind pub - !snas95 setver_nasb95s
+bind pub - !snau setver_nasb95s
+
+proc setver_nasb95s {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NASB95
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !snivbr setver_nivbrs
+bind pub - !snib setver_nivbrs
+
+proc setver_nivbrs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NIVBr
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !snlt setver_nlts
+
+proc setver_nlts {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NLT
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !snrsv setver_nrsvs
+
+proc setver_nrsvs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NRSV
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sneg setver_negs
+
+proc setver_negs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver FreNEG
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !slnd setver_lnds
+
+proc setver_lnds {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ItaLND
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !smel setver_mels
+bind pub - !smelanesian setver_mels
+
+proc setver_mels {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Mel
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !snorsk setver_norsks
+
+proc setver_norsks {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Norsk
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !scor setver_cors
+
+proc setver_cors {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver RomCor
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !slba setver_lbas
+
+proc setver_lbas {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver SpaLBA
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sbyz setver_byzs
+
+proc setver_byzs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ByzX
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !slxx setver_lxxs
+
+proc setver_lxxs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver LXXX
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sna26 setver_na26s
+bind pub - !sgreek setver_na26s
+
+proc setver_na26s {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NA26X
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sscrivner setver_scrivners
+
+proc setver_scrivners {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ScrivnerX
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sstephanus setver_stephanuss
+
+proc setver_stephanuss {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver StephanusX
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !stischendorf setver_tischs
+bind pub - !stisch setver_tischs
+
+proc setver_tischs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver TischX
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !swh setver_whs
+
+proc setver_whs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver WHX
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !swhnu setver_whnus
+
+proc setver_whnus {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver WHNUX
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sgrkbyz setver_grkbyzs
+
+proc setver_grkbyzs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Byz
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sgrklxx setver_grklxxs
+
+proc setver_grklxxs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver LXX
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sgrkna26 setver_grkna26s
+bind pub - !sgrkgreek setver_na26s
+
+proc setver_grkna26s {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver NA26
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sgrkscrivner setver_grkscrivners
+
+proc setver_grkscrivners {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Scrivner
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sgrkstephanus setver_grkstephanuss
+
+proc setver_grkstephanuss {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Stephanus
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sgrktischendorf setver_grktischs
+bind pub - !sgrktisch setver_grktischs
+
+proc setver_grktischs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Tisch
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sgrkwh setver_grkwhs
+
+proc setver_grkwhs {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver WH
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sgrkwhnu setver_grkwhnus
+
+proc setver_grkwhnus {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver WHNU
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sbhs setver_bhss
+bind pub - !shebrew setver_bhss
+
+proc setver_bhss {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver BHS
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !srst setver_rsts
+
+proc setver_rsts {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver RST
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sukrainian setver_ukrainians
+
+proc setver_ukrainians {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Ukrainian
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sarabic setver_arabics
+
+proc setver_arabics {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Arabic
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sn27u4 setver_n27u4s
+bind pub - !snu setver_n27u4s
+bind pub - !sbgreek setver_n27u4s
+
+proc setver_n27u4s {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver N27U4
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sumgreek setver_ukgreeks
+
+proc setver_umgreeks {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver UMGreek
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+bind pub - !sviet setver_viets
+bind pub - !svietnamese setver_viets
+
+proc setver_viets {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Viet
+ pub_lookups $nick $uhost $hand $channel $arg
+}
+
+#----------------------------------------------------------------------
+
+
+proc publookupdict {vlookup} {
+ global botnick chan bibver diatheke
+ catch {exec $diatheke -d $bibver "$vlookup" >& /tmp/fooout.$botnick}
+ catch {set foofile [open /tmp/fooout.$botnick]}
+
+ while {[gets $foofile fooverse] >= 0} {
+ putmsg $chan "$fooverse"
+ }
+ catch {close $foofile}
+ # exec rm /tmp/fooout.$botnick
+ return 1
+}
+
+
+proc pub_lookupd {nick uhost hand channel arg} {
+ global von chan bibver
+ set chan $channel
+ if {$von==0} {
+ putmsg $nick "Verse display is currently off."
+ return 0
+ }
+ if {($von==3) && (![matchattr $hand 3]) && (![matchattr $hand o]) && (![isvoice $nick $chan])} {
+ putmsg $nick "Sorry, only ops and voiced users can use dictionaries and indices right now."
+ return 0
+ }
+ if {($von==2) && (![matchattr $hand 3]) && (![matchattr $hand o])} {
+ putmsg $nick "Sorry, only ops can use dictionaries and indices right now."
+ return 0
+ }
+
+ publookupdict $arg
+}
+
+bind pub - !losung setver_losung
+
+proc setver_losung {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver losung_en_99
+ set arg [exec date "+%m.%d"]
+ pub_lookupd $nick $uhost $hand $channel $arg
+}
+
+bind pub - !vines setver_vines
+
+proc setver_vines {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Vines
+ pub_lookupd $nick $uhost $hand $channel $arg
+}
+
+bind pub - !naves setver_naves
+
+proc setver_naves {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Naves
+ pub_lookupd $nick $uhost $hand $channel $arg
+}
+
+bind pub - !eastons setver_eastons
+
+proc setver_eastons {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Eastons
+ pub_lookupd $nick $uhost $hand $channel $arg
+}
+
+bind pub - !strheb setver_strheb
+
+proc setver_strheb {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver StrongsHebrew
+ pub_lookupd $nick $uhost $hand $channel $arg
+}
+
+bind pub - !strgrk setver_strgrk
+
+proc setver_strgrk {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver StrongsGreek
+ pub_lookupd $nick $uhost $hand $channel $arg
+}
+
+bind pub - !bdb setver_bdb
+
+proc setver_bdb {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver BDB
+ pub_lookupd $nick $uhost $hand $channel $arg
+}
+
+bind pub - !thayer setver_thayer
+
+proc setver_thayer {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Thayer
+ pub_lookupd $nick $uhost $hand $channel $arg
+}
+
+bind pub - !hitch setver_hitch
+
+proc setver_hitch {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Hitch
+ pub_lookupd $nick $uhost $hand $channel $arg
+}
+
+bind pub - !isbe setver_isbe
+
+proc setver_isbe {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver ISBE
+ pub_lookupd $nick $uhost $hand $channel $arg
+}
+
+bind pub - !smiths setver_smiths
+
+proc setver_smiths {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Smiths
+ pub_lookupd $nick $uhost $hand $channel $arg
+}
+
+bind pub - !torrey setver_torrey
+
+proc setver_torrey {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Torrey
+ pub_lookupd $nick $uhost $hand $channel $arg
+}
+
+#----------------------------------------------------------------------
+
+proc publookupcomm {vlookup} {
+ global botnick chan bibver diatheke
+ catch {exec $diatheke -c $bibver "$vlookup" >& /tmp/fooout.$botnick}
+ catch {set foofile [open /tmp/fooout.$botnick]}
+ while {[gets $foofile fooverse] >= 0} {
+ set len [string length $fooverse]
+ set i 0
+ set j 72
+ while {$j < $len} {
+ while {[string index $fooverse $j] != " " && [string index $fooverse $j] != "\n"} {set j [expr $j + 1]}
+ set foo2 [string range $fooverse $i $j]
+ set foo2 [string trim $foo2]
+ regsub -all -nocase {(<FI>|<CM>|<FB>)} $foo2 {} foo2
+ regsub -all {<RF>} $foo2 {(footnote: } foo2
+ regsub -all {<Rf>} $foo2 {)} foo2
+ putmsg $chan "$foo2"
+ set i [expr $j + 1]
+ set j [expr $j + 73]
+ if {$j > $len} {set j $len}
+ }
+ set foo2 [string range $fooverse $i end]
+ set foo2 [string trim $foo2]
+ regsub -all -nocase {(<FI>|<CM>|<FB>)} $foo2 {} foo2
+ regsub -all {<RF>} $foo2 {(footnote: } foo2
+ regsub -all {<Rf>} $foo2 {)} foo2
+ putmsg $chan "$foo2"
+ }
+ catch {close $foofile}
+ exec rm /tmp/fooout.$botnick
+ return 1
+}
+
+
+proc pub_lookupc {nick uhost hand channel arg} {
+ global von chan bibver
+ set chan $channel
+ if {$von==0} {
+ putmsg $nick "Verse display is currently off."
+ return 0
+ }
+ if {($von==3) && (![matchattr $hand 3]) && (![matchattr $hand o]) && (![isvoice $nick $chan])} {
+ putmsg $nick "Sorry, only ops and voiced users can use commentaries right now."
+ return 0
+ }
+ if {($von==2) && (![matchattr $hand 3]) && (![matchattr $hand o])} {
+ putmsg $nick "Sorry, only ops can use commentaries right now."
+ return 0
+ }
+
+ publookupcomm $arg
+}
+
+bind pub - !rwp setver_rwp
+
+proc setver_rwp {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver RWP
+ pub_lookupc $nick $uhost $hand $channel $arg
+}
+
+bind pub - !mhc setver_mhc
+
+proc setver_mhc {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver MHC
+ pub_lookupc $nick $uhost $hand $channel $arg
+}
+
+bind pub - !dtn setver_dtn
+
+proc setver_dtn {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver DTN
+ pub_lookupc $nick $uhost $hand $channel $arg
+}
+
+bind pub - !family setver_family
+
+proc setver_family {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Family
+ pub_lookupc $nick $uhost $hand $channel $arg
+}
+
+bind pub - !geneva setver_geneva
+
+proc setver_geneva {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Geneva
+ pub_lookupc $nick $uhost $hand $channel $arg
+}
+
+bind pub - !gill setver_gill
+
+proc setver_gill {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Gill
+ pub_lookupc $nick $uhost $hand $channel $arg
+}
+
+bind pub - !pnt setver_pnt
+
+proc setver_pnt {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver PNT
+ pub_lookupc $nick $uhost $hand $channel $arg
+}
+
+bind pub - !tfg setver_tfg
+
+proc setver_tfg {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver TFG
+ pub_lookupc $nick $uhost $hand $channel $arg
+}
+
+bind pub - !tsk setver_tsk
+
+proc setver_tsk {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver TSK
+ pub_lookupc $nick $uhost $hand $channel $arg
+}
+
+bind pub - !wesley setver_wesley
+
+proc setver_wesley {nick uhost hand channel arg} {
+ global botnick chan bibver
+ set bibver Wesley
+ pub_lookupc $nick $uhost $hand $channel $arg
+}
+
+#----------------------------------------------------------------------
+
+bind pub - !dict dictlookup
+
+proc dictlookup {nick uhost hand channel arg} {
+ global botnick von dict
+
+ if {$von==0} {
+ putmsg $nick "Verse display is currently off."
+ return 0
+ }
+ if {($von==3) && (![matchattr $hand 3]) && (![matchattr $hand o]) && (![isvoice $nick $channel])} {
+ putmsg $nick "Sorry, only ops and voiced users can use dictionaries and indices right now."
+ return 0
+ }
+ if {($von==2) && (![matchattr $hand 3]) && (![matchattr $hand o])} {
+ putmsg $nick "Only ops can use dictionaries and indices right now."
+ return 0
+ }
+
+ catch {exec $dict "$arg" >& /tmp/fooout.$botnick}
+ catch {set foofile [open /tmp/fooout.$botnick]}
+ catch {set fooverse [gets $foofile]}
+ while {[gets $foofile fooverse] >= 0} {
+ set fooverse [string trim $fooverse]
+ putmsg $channel "$fooverse"
+ }
+ catch {close $foofile}
+ exec rm /tmp/fooout.$botnick
+ return 1
+}
+
+#----------------------------------------------------------------------
+
+bind pub - !biblehelp pub_help
+bind msg - biblehelp pub_help
+
+proc pub_help {nick uhost hand channel arg} {
+ global diaver
+ global von
+ putserv "NOTICE $nick :Diatheke/Tcl BibleBot version $diaver"
+
+ if {(($von==0) || ($von==2)) && (![matchattr $hand 3]) && (![matchattr $hand o])} {
+ putserv "NOTICE $nick :BibleBot displays are currently turned off."
+ return 1
+ }
+
+ putserv "NOTICE $nick :Supported commands:"
+ putserv "NOTICE $nick :Help, using \"!biblehelp\""
+ putserv "NOTICE $nick :Book list, using \"!books\" (it's long)"
+# Uncomment the next line if you have turned LOGGING on in diatheke to enable
+# the history function.
+# putserv "NOTICE $nick :See last 5 calls to BibleBot, using \"!history\""
+ putserv "NOTICE $nick :Check display status, using \"!status\""
+ putserv "NOTICE $nick :Bible lookups, using \"!<bible version> <book> <chapter>:<verse>\""
+ putserv "NOTICE $nick :verse ranges can be specified by adding \"-<last verse>\" to this"
+ putserv "NOTICE $nick :To turn Strong's numbers and/or footnotes on, use @ and/or # respectively before the book name. For example \"!kjv @#Gen 1:4\" will retrieve Genesis 1:3 with the Strong's numbers and footnotes associated with it."
+
+ if {($von==3) && (![matchattr $hand 3]) && (![matchattr $hand o]) && (![isvoice $nick $channel])} {
+ return 1
+ }
+
+ putserv "NOTICE $nick :Commentary lookups, using \"!<commentary> <book> <chapter>:<verse>\""
+ putserv "NOTICE $nick :Dictionary/index lookups, using \"!<dictionary> <word or number>\""
+ putserv "NOTICE $nick :Bible searches, using \"!s<bible version> <word>\""
+ putserv "NOTICE $nick :Diatheke/Tcl defaults to PHRASE search mode. To use MULTI-WORD search mode, preface your search with an @. To use REGEX mode, preface your search with a #. For example: \"!skjv @Jesus love\" will print a list of all verses in the KJV containing the words Jesus and love."
+
+ if {(![matchattr $hand 3]) && (![matchattr $hand o])} {
+ return 1
+ }
+
+ putserv "NOTICE $nick :To turn verse display off, use \"!verseoff\""
+ putserv "NOTICE $nick :To turn all displays on for all users, use \"!verseon\""
+ putserv "NOTICE $nick :To turn all displays on for ops only, use \"!verseon o\""
+ putserv "NOTICE $nick :To turn verse diaplays on for regular users and all other displays on for ops and voiced users only, use \"!verseon v\" (default)"
+}
+
+bind pub - !books pub_books
+bind msg - books pub_books
+
+proc pub_books {nick uhost hand channel arg} {
+ global von
+
+ if {(($von==0) || ($von==2)) && (![matchattr $hand 3]) && (![matchattr $hand o])} {
+ putserv "NOTICE $nick :BibleBot displays are currently turned off."
+ return 1
+ }
+
+ putserv "NOTICE $nick :English language Bibles (26):"
+ putserv "NOTICE $nick :Ameican Standard Version (!asv), Analytical Literal Translation (!alt), Bible in Basic English (!bbe), Darby (!dby), Douay-Rheims Bible (!dr), Green's Literal Translation (!litv), Green's Modern King James Version (!mkjv), Hebrew Names Version (!hnv), Jewish Publication Society 1917 (!jps), King James Version (!kjv), The Living Oracles NT (!lo),"
+ putserv "NOTICE $nick :New American Standard Bible (!nasb), New American Standard Bible, 95 Update (!nasb95), New International Version (!niv), New Internation Version, British Edition (!nivbr), New King James Version (!nkjv), New Living Translation (!nlt), New Revised Standard Version (!nrsv), Orthodox Jewish Brit ChadashaNT only (!jbc),"
+ putserv "NOTICE $nick :Revised Standard Version (!rsv), Revised 1833 Webster's (!rwebster), World English Bible (!web), Webster's (!webster), Weymouth NT (!wey), Young's Literal Translation (!ylt), 21st Century King James Version (!kj21)"
+ putserv "NOTICE $nick :Non-English language Bibles (39):"
+ putserv "NOTICE $nick :Albanian Bible (!alb), Chinese GNPU (!gnpu), Danish Bible (!dan), Dutch Leidse Vertaling (!lei), Dutch Lutherse Vertaling (!lu), Dutch Statemvertaling (!svv), Equadoran Shuar NT (!shr), Filipino Nga Cebuano (!ceb), Finnish Pyhz Raamattu (!pr), French Louis Segond Version (!lsg), French Haitian Creole Version (!crl), French Darby's Version (!fredrb),"
+ putserv "NOTICE $nick :French Nouvelle Edition de Geneve (!neg), German Luther Version (!lut), German Schlachter (!sch), German Bengel NT (!ben), German Elberfelder Version (!elb), Hungarian Karoli (!kar), Indonesian Bahasa Indonesia Sehari-hari (!bis), Indonesian Terjemahan Baru (!tb), Italian La Nouva Diodati (!lnd), Italian La Sacra Bibbia Nuova Riveduta (!nrv),"
+ putserv "NOTICE $nick :Maori Bible (!maori), Melanesian Pidgin Bible (!mel), Norsk Bible (!norsk), Portuguese A Biblia Sagrada Traduzida em Portugues (!brp), Spanish La Biblia de Las Americas (!lba), Spanish Reina-Valera Actualizada (!rva), Spanish Reina-Valera (!rv), Spanish Sagradas Escrituras (!sev), Spanish Valera NT only (!vnt), Swahili NT (!swahili),"
+ putserv "NOTICE $nick :Swedish 1917 Bible NT only (!sve), Turkish NT (!turkish), Uma NT (!uma)"
+ putserv "NOTICE $nick :Original Language Bibles (18): (NB, /'s divide transliterated/non-roman versions)"
+ putserv "NOTICE $nick :1991 Byzantine/Majority Text (!byz/!grkbyz), Nestle-Aland 26th/27th Ed. (!na26/!grkna26), 1894 Scrivner Textus Receptus (!scrivner/!grkscrivner), 1550 Stephanus Textus Receptus (!stephanus/!grkstephanus), Tischendorf' 8th Ed. GNT (!tisch/!grktisch), 1881 Westcott-Hort GNT (!wh/!grkwh), 1881 Westcott-Hort with NA26 alternate readings (!whnu/!grkwhnu)"
+ putserv "NOTICE $nick: Nestle-Aland 27th Ed./UBS 4th Ed. (!n27u4), Septuagint/LXX (!lxx/!grklxx), Biblia Hebraica Stuttgartensia in Hebrew font (!bhs), Jerome's Latin Vulgate (!vulg)"
+ putserv "NOTICE $nick :Non-Roman character Bibles (5):"
+ putserv "NOTICE $nick :Arabic Bible (!arabic), Russian Synodal Translation (!rst), Ukrainian Bible (!ukrainian), Unaccented Modern Greek Bible (!umgreek), Vietnamese Bible (!viet)"
+
+ if {($von==3) && (![matchattr $hand 3]) && (![matchattr $hand o]) && (![isvoice $nick $channel])} {
+ return 1
+ }
+
+ putserv "NOTICE $nick :Dictionaries & Indices (12):"
+ putserv "NOTICE $nick :Webster's Dictionary (!dict), Vine's Bible Dictionary(!vines), Easton's Bible Dictionary (!eastons), Nave's Topical Bible (!naves), Smith's Bible Dictionary (!smiths), Hitchcock's Bible Names Dictionary (!hitch), International Standard Bible Dictionary (!isbe), Torrey's New Topical Textbook (!torrey), Strong's Hebrew Bible Dictionary (!strheb), Strong's Greek Bible Dictionary (!strgrk), Brown-Driver-Briggs Hebrew Lexicon (!bdb), Thayer's Greek Lexicon (!thayer)"
+ putserv "NOTICE $nick :Commentaries (10):"
+ putserv "NOTICE $nick :Darby's Translation Notes (!dtn), Family Bible Notes (!family), Geneva Bible Translation Notes (!geneva), John Gill's Expositor (!gill), Matthew Henry's Concise (!mhc), The People's New Testament (!pnt), Robertson's Word Pictures (!rwp), The Fourfold Gospel (!tfg), Treasury of Scriptural Knowledge (!tsk), Wesley's Bible Notes (!wesley)"
+}
+
+#----------------------------------------------------------------------
+
+bind pub - !status pub_status
+bind msg - status pub_status
+
+proc pub_status {nick uhost hand channel arg} {
+ global von
+
+ if {$von==0} {
+ putserv "NOTICE $nick :All BibleBot displays are currently off."
+ } elseif {$von==1} {
+ putserv "NOTICE $nick :All BibleBot displays are currently on."
+ } elseif {$von==2} {
+ putserv "NOTICE $nick :All BibleBot displays are currently on for ops only."
+ } else {
+ putserv "NOTICE $nick :Verse displays are currently on for all users, but other BibleBot displays are currently restricted to ops and voiced users."
+ }
+ return 1
+}
+
+
+bind pub - !history pub_hist
+bind msg - history pub_hist
+
+proc pub_hist {nick uhost hand channel arg} {
+ global botnick
+ catch {exec tail -n 5 /var/log/diatheke.log >& /tmp/fooout.$botnick}
+ catch {set foofile [open /tmp/fooout.$botnick]}
+ catch {set fooverse [gets $foofile]}
+ putserv "NOTICE $nick :Last 5 calls to Diatheke/Tcl BibleBot"
+ putserv "NOTICE $nick :$fooverse"
+ while {[gets $foofile fooverse] >= 0} {
+ putserv "NOTICE $nick :$fooverse"
+ }
+ catch {close $foofile}
+ exec rm /tmp/fooout.$botnick
+ return 1
+}
+
+#---------------------------------------------------------------------
+
+proc pub_verseon {nick uhost hand channel arg} {
+ global von
+ if {![matchattr $hand 3] && ![matchattr $hand o]} {
+ return 0
+ } elseif {$arg=="v"} {
+ set von 3
+# putserv "NOTICE $nick :Long Text Display is now on for voiced only!"
+ } elseif {$arg=="o"} {
+ set von 2
+# putserv "NOTICE $nick :Verse Display is now on for ops only!"
+ } else {
+ set von 1
+# putserv "NOTICE $nick :All Display is now on!"
+ }
+ pub_status $nick $uhost $hand $channel $arg
+ return 1
+}
+bind pub - !verseon pub_verseon
+bind msg - verseon pub_verseon
+
+proc pub_verseoff {nick uhost hand channel arg} {
+ global von
+
+ if {![matchattr $hand 3] && ![matchattr $hand o]} {
+ return 0
+ }
+ set von 0
+# putserv "NOTICE $nick :Verse Display is now off!"
+ pub_status $nick $uhost $hand $channel $arg
+ return 1
+}
+bind pub - !verseoff pub_verseoff
+bind msg - verseoff pub_verseoff
+
+proc dcc_verseoff {hand idx arg} {
+ global von
+ global whovoff
+ if {![matchattr $hand 3] && ![matchattr $hand o]} {
+ return 0
+ }
+ set von 0
+ set whovoff $hand
+ return 1
+}
+bind dcc - verseoff dcc_verseoff
+
+proc dcc_verseon {hand idx arg} {
+ global von
+ if {![matchattr $hand 3] && ![matchattr $hand o]} {
+ return 0
+ }
+ elseif {$arg=="v"} {
+ set von 3
+ }
+ elseif {$arg=="o"} {
+ set von 2
+ } else {
+ set von 1
+ }
+ return 1
+}
+bind dcc - verseon dcc_verseon
+
+#sets default von mode
+set von 3
+
diff --git a/apps/console/diatheke/thmlcgi.cpp b/apps/console/diatheke/thmlcgi.cpp
new file mode 100644
index 0000000..2bb7720
--- /dev/null
+++ b/apps/console/diatheke/thmlcgi.cpp
@@ -0,0 +1,192 @@
+/***************************************************************************
+ thmlcgi.cpp - ThML to Diatheke/CGI format
+ -------------------
+ begin : 2001-11-12
+ copyright : 2001 by CrossWire Bible Society
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * 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. *
+ * *
+ ***************************************************************************/
+
+#include <stdlib.h>
+#include <string.h>
+#include "thmlcgi.h"
+
+ThMLCGI::ThMLCGI() {
+ setTokenStart("<");
+ setTokenEnd(">");
+
+ setTokenCaseSensitive(true);
+
+ addTokenSubstitute("note", " <font color=\"#008000\"><small>(");
+ addTokenSubstitute("/note", ")</small></font> ");
+}
+
+
+bool ThMLCGI::handleToken(char **buf, const char *token, DualStringMap &userData) {
+ unsigned long i;
+ if (!substituteToken(buf, token)) {
+ // manually process if it wasn't a simple substitution
+ if (!strncmp(token, "sync ", 5)) {
+ pushString(buf, "<a href=\"!DIATHEKE_URL!");
+ char* pbuf;
+ char typ[32]; typ[0] = 0;
+ char val[32]; val[0] = 0;
+ char cls[32]; cls[0] = 0;
+ for (unsigned int j = 5; j < strlen(token); j++) {
+ if (!strncmp(token+j, "type=\"", 6)) {
+ pbuf = typ;
+ j += 6;
+ for (;token[j] != '\"'; j++)
+ *(pbuf)++ = token[j];
+ *(pbuf) = 0;
+ }
+ else if (!strncmp(token+j, "value=\"", 7)) {
+ pbuf = val;
+ j += 7;
+ for (;token[j] != '\"'; j++)
+ *(pbuf)++ = token[j];
+ *(pbuf) = 0;
+ }
+ else if (!strncmp(token+j, "class=\"", 7)) {
+ pbuf = cls;
+ j += 7;
+ for (;token[j] != '\"'; j++)
+ *(pbuf)++ = token[j];
+ *(pbuf) = 0;
+ }
+ }
+ if (*cls && *val) {
+ pushString(buf, "%s=on&verse=%s", cls, val);
+ }
+ else if (*typ && *val) {
+ if (!strnicmp(typ, "Strongs", 7)) {
+ if (*val == 'G') {
+ pushString(buf, "Thayer=on&verse=%s", val + 1);
+ }
+ else if (*val == 'H') {
+ pushString(buf, "BDB=on&verse=%s", val + 1);
+ }
+ }
+
+ else if (!strnicmp(typ, "Morph", 5)) {
+ if (*val == 'G') {
+ pushString(buf, "Thayer=on&verse=%s", val + 1);
+ }
+ else if (*val == 'H') {
+ pushString(buf, "BDB=on&verse=%s", val + 1);
+ }
+ else {
+ pushString(buf, "Packard=on&verse=%s", val);
+ }
+ }
+ else {
+ pushString(buf, "%s=on&verse=%s", typ, val);
+ }
+ }
+ *(*buf)++ = '\"';
+ *(*buf)++ = '>';
+
+ if (*val) {
+ pushString(buf, val);
+ }
+ pushString(buf, "</a>");
+ }
+
+ else if (!strncmp(token, "scripRef p", 10) || !strncmp(token, "scripRef v", 10)) {
+ userData["inscriptRef"] = "true";
+ pushString(buf, "<a href=\"!DIATHEKE_URL!");
+ for (i = 9; i < strlen(token); i++) {
+ if (!strncmp(token+i, "version=\"", 9)) {
+ i += 9;
+ for (;token[i] != '\"'; i++)
+ *(*buf)++ = token[i];
+ pushString(buf, "=on&");
+ }
+ if (!strncmp(token+i, "passage=\"", 9)) {
+ i += 9;
+ pushString(buf, "verse=");
+ for (;token[i] != '\"'; i++) {
+ if (token[i] == ' ') *(*buf)++ = '+';
+ else *(*buf)++ = token[i];
+ }
+ *(*buf)++ = '&';
+ }
+ }
+ *(*buf)++ = '\"';
+ *(*buf)++ = '>';
+ }
+
+ // we're starting a scripRef like "<scripRef>John 3:16</scripRef>"
+ else if (!strcmp(token, "scripRef")) {
+ userData["inscriptRef"] = "false";
+ // let's stop text from going to output
+ userData["suspendTextPassThru"] = "true";
+ }
+
+ // we've ended a scripRef
+ else if (!strcmp(token, "/scripRef")) {
+ if (userData["inscriptRef"] == "true") { // like "<scripRef passage="John 3:16">John 3:16</scripRef>"
+ userData["inscriptRef"] = "false";
+ pushString(buf, "</a>");
+ }
+
+ else { // like "<scripRef>John 3:16</scripRef>"
+ pushString(buf, "<a href=\"!DIATHEKE_URL!verse=");
+
+ char* vref = (char*)userData["lastTextNode"].c_str();
+ while (*vref) {
+ if (*vref == ' ') *(*buf)++ = '+';
+ else *(*buf)++ = *vref;
+ vref++;
+ }
+ *(*buf)++ = '\"';
+ *(*buf)++ = '>';
+ pushString(buf, userData["lastTextNode"].c_str());
+ // let's let text resume to output again
+ userData["suspendTextPassThru"] = "false";
+ pushString(buf, "</a>");
+ }
+ }
+
+ else if (!strncmp(token, "div class=\"sechead\"", 19)) {
+ userData["SecHead"] = "true";
+ pushString(buf, "<br /><b><i>");
+ }
+ else if (!strncmp(token, "div class=\"title\"", 19)) {
+ userData["SecHead"] = "true";
+ pushString(buf, "<br /><b><i>");
+ }
+ else if (!strncmp(token, "/div", 4)) {
+ if (userData["SecHead"] == "true") {
+ pushString(buf, "</i></b><br />");
+ userData["SecHead"] = "false";
+ }
+ }
+
+ else if(!strncmp(token, "note", 4)) {
+ pushString(buf, " <small><font color=\"#008000\">{");
+ }
+
+ else {
+ *(*buf)++ = '<';
+ for (i = 0; i < strlen(token); i++)
+ *(*buf)++ = token[i];
+ *(*buf)++ = '>';
+ //return false; // we still didn't handle token
+ }
+ }
+ return true;
+}
+
+
+
+
+
+
diff --git a/apps/console/diatheke/thmlcgi.h b/apps/console/diatheke/thmlcgi.h
new file mode 100644
index 0000000..c164f0d
--- /dev/null
+++ b/apps/console/diatheke/thmlcgi.h
@@ -0,0 +1,33 @@
+/***************************************************************************
+ thmlcgi.h - description
+ -------------------
+ begin : 2001-11-12
+ copyright : 2001 by CrossWire Bible Society
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * 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. *
+ * *
+ ***************************************************************************/
+
+#ifndef THMLCGI_H
+#define THMLCGI_H
+
+#include <swbasicfilter.h>
+
+#include <defs.h>
+
+/** this filter converts ThML text to Diatheke/CGI format
+ */
+class SWDLLEXPORT ThMLCGI : public SWBasicFilter {
+protected:
+ virtual bool handleToken(char **buf, const char *token, DualStringMap &userData);
+public:
+ ThMLCGI();
+};
+
+#endif
diff --git a/apps/wince/sword/include/dirent.h b/apps/wince/sword/include/dirent.h
new file mode 100644
index 0000000..dde8597
--- /dev/null
+++ b/apps/wince/sword/include/dirent.h
@@ -0,0 +1,18 @@
+#include <windows.h>
+#include <string.h>
+
+struct dirent {
+ char d_name[MAX_PATH];
+};
+
+typedef struct {
+ WIN32_FIND_DATA wfd;
+ HANDLE hFind;
+ struct dirent de;
+} DIR;
+
+
+extern DIR* opendir( const char *pSpec);
+extern void closedir(DIR * pDir);
+extern struct dirent * readdir(DIR *pDir);
+extern void rewinddir( DIR* dir ); \ No newline at end of file
diff --git a/apps/wince/sword/include/fcntl.h b/apps/wince/sword/include/fcntl.h
new file mode 100644
index 0000000..163797a
--- /dev/null
+++ b/apps/wince/sword/include/fcntl.h
@@ -0,0 +1,23 @@
+#ifndef FCNTL_H
+#define FCNTL_H
+
+
+#define O_RDONLY 0x0000 /* open for reading only */
+#define O_WRONLY 0x0001 /* open for writing only */
+#define O_RDWR 0x0002 /* open for reading and writing */
+#define O_APPEND 0x0008 /* writes done at eof */
+
+#define O_CREAT 0x0100 /* create and open file */
+#define O_TRUNC 0x0200 /* open and truncate */
+//not implemented for CE #define O_EXCL 0x0400 /* open only if file doesn't already exist */
+
+/* O_TEXT files have <cr><lf> sequences translated to <lf> on read()'s,
+** and <lf> sequences translated to <cr><lf> on write()'s
+*/
+
+#define O_TEXT 0x4000 /* file mode is text (translated) */
+#define O_BINARY 0x8000 /* file mode is binary (untranslated) */
+
+
+
+#endif
diff --git a/apps/wince/sword/include/io.h b/apps/wince/sword/include/io.h
new file mode 100644
index 0000000..1e823fb
--- /dev/null
+++ b/apps/wince/sword/include/io.h
@@ -0,0 +1 @@
+#include <unistd.h>
diff --git a/apps/wince/sword/include/swordce.h b/apps/wince/sword/include/swordce.h
new file mode 100644
index 0000000..ac595e1
--- /dev/null
+++ b/apps/wince/sword/include/swordce.h
@@ -0,0 +1,11 @@
+#ifndef SWORDCE_H
+#define SWORDCE_H
+
+#include <string.h>
+#include <ctype.h>
+
+wchar_t *strtowstr(const char *str);
+char *wstrtostr(const wchar_t *str);
+int stricmp(const char *s1, const char *s2);
+
+#endif
diff --git a/apps/wince/sword/include/sys/stat.h b/apps/wince/sword/include/sys/stat.h
new file mode 100644
index 0000000..af6529c
--- /dev/null
+++ b/apps/wince/sword/include/sys/stat.h
@@ -0,0 +1,2 @@
+#define S_IREAD 0000400
+#define S_IWRITE 0000200
diff --git a/apps/wince/sword/include/sys/types.h b/apps/wince/sword/include/sys/types.h
new file mode 100644
index 0000000..2443d27
--- /dev/null
+++ b/apps/wince/sword/include/sys/types.h
@@ -0,0 +1 @@
+//I'm empty, but I make compilers happy.
diff --git a/apps/wince/sword/include/unistd.h b/apps/wince/sword/include/unistd.h
new file mode 100644
index 0000000..c836995
--- /dev/null
+++ b/apps/wince/sword/include/unistd.h
@@ -0,0 +1,15 @@
+#ifndef UNISTD_H
+#define UNISTD_H
+
+typedef long off_t;
+
+int close (int fd);
+int open(const char *path, int mode);
+int open(const char *path, int access, unsigned mode);
+int read(int fd, void* buf, size_t count);
+int write(int fd, const void * buf, size_t count);
+off_t lseek(int fildes, off_t offset, int whence);
+int access(const char* path, int mode);
+#define unlink ::remove
+
+#endif
diff --git a/apps/wince/sword/src/dirent.cpp b/apps/wince/sword/src/dirent.cpp
new file mode 100644
index 0000000..6b99cb9
--- /dev/null
+++ b/apps/wince/sword/src/dirent.cpp
@@ -0,0 +1,98 @@
+#include <dirent.h>
+
+#include <io.h>
+
+
+
+#ifdef _WIN32_WCE
+
+#include <swordce.h>
+
+#include <stdio.h>
+
+#endif
+
+
+
+DIR* opendir( const char *pSpec )
+
+{
+
+ DIR *pDir = (DIR*) malloc(sizeof(DIR));
+
+#ifdef _WIN32_WCE
+
+ pDir->hFind = FindFirstFile(strtowstr(strcmp(pSpec, ".") ? pSpec : "*"), &pDir->wfd);
+
+#else
+
+ pDir->hFind = FindFirstFile((strcmp(pSpec, ".") ? pSpec : "*"), &pDir->wfd);
+
+#endif
+
+ return pDir;
+
+}
+
+
+
+void closedir(DIR * pDir)
+
+{
+
+ FindClose( pDir->hFind );
+
+ free(pDir);
+
+}
+
+
+
+struct dirent* readdir(DIR *pDir)
+
+{
+
+ if (pDir->hFind)
+
+ {
+
+#ifdef _WIN32_WCE
+
+ strcpy(pDir->de.d_name, wstrtostr(pDir->wfd.cFileName));
+
+#else
+
+ strcpy(pDir->de.d_name, pDir->wfd.cFileName);
+
+#endif
+
+
+
+ if ( !FindNextFile(pDir->hFind, &pDir->wfd) )
+
+ pDir->hFind = NULL;
+
+
+
+ return &pDir->de;
+
+ }
+
+ return NULL;
+
+}
+
+
+
+void rewinddir( DIR* dir )
+
+{
+
+ lseek( (int) dir->hFind,0,SEEK_SET);
+
+}
+
+
+
+#define fclose(f) { if (f!=NULL) fclose(f); }
+
diff --git a/apps/wince/sword/src/swordce.cpp b/apps/wince/sword/src/swordce.cpp
new file mode 100644
index 0000000..5673fc4
--- /dev/null
+++ b/apps/wince/sword/src/swordce.cpp
@@ -0,0 +1,42 @@
+#include <swordce.h>
+
+wchar_t *strtowstr(const char *str) {
+ char * str2 = (char*)str;
+ static wchar_t *c, *buffer = 0;
+ if (buffer)
+ delete [] buffer;
+ buffer = c = new wchar_t[ strlen(str2) + 1 ];
+ while (*str2)
+ *c++ = (wchar_t)*str2++;
+ *c = 0;
+ return buffer;
+}
+
+char *wstrtostr(const wchar_t *str) {
+ wchar_t * str2 = (wchar_t*)str;
+ static char *c, *buffer = 0;
+ if (buffer)
+ delete [] buffer;
+ buffer = c = new char[ strlen((const char*)str2) + 1 ];
+ while (*str2)
+ *c++ = (char)*str2++;
+ *c = 0;
+ return buffer;
+}
+
+int stricmp(const char *s1, const char *s2) {
+ char * t1 = new char;
+ char * t2 = new char;
+
+ char * r1 = t1;
+ char * r2 = t2;
+
+ strcpy(t1, s1);
+ strcpy(t2, s2);
+
+ for (;*r1 != 0; r1++) *r1 = tolower(*r1);
+ for (;*r2 != 0; r2++) *r2 = tolower(*r2);
+
+ return strcmp(t1, t2);
+}
+
diff --git a/apps/wince/sword/src/unistd.cpp b/apps/wince/sword/src/unistd.cpp
new file mode 100644
index 0000000..6685dab
--- /dev/null
+++ b/apps/wince/sword/src/unistd.cpp
@@ -0,0 +1,59 @@
+#include <unistd.h>
+#include <fcntl.h>
+#include <stdio.h>
+
+int close (int fd) {
+ return fclose((FILE*)fd);
+}
+
+int open(const char *path, int mode) {
+ char cmode[3];
+ cmode[0] = cmode[1] = cmode[2] = 0;
+ if (mode & O_RDWR) {
+ cmode[1] = '+';
+ cmode[0] = 'r';
+ }
+ if (mode & O_RDONLY)
+ cmode[0] = 'r';
+ if (mode & O_WRONLY)
+ cmode[0] = 'w';
+
+ if ((mode & O_CREAT ) && (cmode[0] == 'w')) cmode[1] = '+';
+ if (mode & O_APPEND) {
+ if (cmode[0] == 'r') cmode[1] = '+';
+ cmode[0] = 'a';
+ }
+ if (mode & O_BINARY) {
+ cmode[1] ? (cmode[2] = 'b') : (cmode[1] = 'b');
+ }
+ return (int)fopen(path, cmode);
+}
+
+int open(const char *path, int access, unsigned mode) {
+ return open(path, access | mode);
+}
+
+int read(int fd, void* buf, size_t count) {
+ return fread(buf, 1, count, (FILE*)fd);
+}
+
+int write(int fd, const void * buf, size_t count) {
+ return fwrite(buf, 1, count, (FILE*)fd);
+}
+
+//int write(int fd, const char * buf, size_t count)
+
+typedef long off_t;
+
+off_t lseek(int fildes, off_t offset, int whence) {
+ if (!(fseek((FILE*)fildes, offset, whence))) {
+ fgetpos((FILE*)fildes, (fpos_t*)offset);
+ return offset;
+ }
+ else
+ return (off_t)-1;
+}
+
+int access(const char* path, int mode) {
+ return 0;
+} \ No newline at end of file
diff --git a/apps/wince/sword/swordlib.vcp b/apps/wince/sword/swordlib.vcp
new file mode 100644
index 0000000..5c4629d
--- /dev/null
+++ b/apps/wince/sword/swordlib.vcp
@@ -0,0 +1,18093 @@
+# Microsoft eMbedded Visual Tools Project File - Name="swordlib" - Package Owner=<4>
+# Microsoft eMbedded Visual Tools Generated Build File, Format Version 6.02
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (WCE SH4) Static Library" 0x8604
+# TARGTYPE "Win32 (WCE MIPS) Static Library" 0x8204
+# TARGTYPE "Win32 (WCE x86em) Static Library" 0x7f04
+# TARGTYPE "Win32 (WCE ARM) Static Library" 0x8504
+# TARGTYPE "Win32 (WCE SH3) Static Library" 0x8104
+
+CFG=swordlib - Win32 (WCE MIPS) Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "swordlib.vcn".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "swordlib.vcn" CFG="swordlib - Win32 (WCE MIPS) Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "swordlib - Win32 (WCE MIPS) Release" (based on "Win32 (WCE MIPS) Static Library")
+!MESSAGE "swordlib - Win32 (WCE MIPS) Debug" (based on "Win32 (WCE MIPS) Static Library")
+!MESSAGE "swordlib - Win32 (WCE SH4) Release" (based on "Win32 (WCE SH4) Static Library")
+!MESSAGE "swordlib - Win32 (WCE SH4) Debug" (based on "Win32 (WCE SH4) Static Library")
+!MESSAGE "swordlib - Win32 (WCE SH3) Release" (based on "Win32 (WCE SH3) Static Library")
+!MESSAGE "swordlib - Win32 (WCE SH3) Debug" (based on "Win32 (WCE SH3) Static Library")
+!MESSAGE "swordlib - Win32 (WCE ARM) Release" (based on "Win32 (WCE ARM) Static Library")
+!MESSAGE "swordlib - Win32 (WCE ARM) Debug" (based on "Win32 (WCE ARM) Static Library")
+!MESSAGE "swordlib - Win32 (WCE x86em) Release" (based on "Win32 (WCE x86em) Static Library")
+!MESSAGE "swordlib - Win32 (WCE x86em) Debug" (based on "Win32 (WCE x86em) Static Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+# PROP ATL_Project 2
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "MIPSRel"
+# PROP BASE Intermediate_Dir "MIPSRel"
+# PROP BASE CPU_ID "{D6519010-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "MIPSRel"
+# PROP Intermediate_Dir "MIPSRel"
+# PROP CPU_ID "{D6519010-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=clmips.exe
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /Oxs /M$(CECrtMT) /c
+# ADD CPP /nologo /w /W0 /I "../../../../sxl/include" /I "../../../include" /I "include" /I "../../../../icu-sword/source/i18n" /I "../../../../icu-sword/source/common" /D "MIPS" /D "_MIPS_" /D "NDEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /D "__VISUALC__" /D "REGEX_MALLOC" /D "_ICU_" /YX /Oxs /M$(CECrtMT) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "MIPSDbg"
+# PROP BASE Intermediate_Dir "MIPSDbg"
+# PROP BASE CPU_ID "{D6519010-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "MIPSDbg"
+# PROP Intermediate_Dir "MIPSDbg"
+# PROP CPU_ID "{D6519010-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=clmips.exe
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /M$(CECrtMTDebug) /c
+# ADD CPP /nologo /w /W0 /Zi /Od /I "../../../../sxl/include" /I "../../../include" /I "include" /I "../../../../icu-sword/source/i18n" /I "../../../../icu-sword/source/common" /D "DEBUG" /D "MIPS" /D "_MIPS_" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /D "__VISUALC__" /D "REGEX_MALLOC" /D "_ICU_" /YX /M$(CECrtMTDebug) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "SH4Rel"
+# PROP BASE Intermediate_Dir "SH4Rel"
+# PROP BASE CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "SH4Rel"
+# PROP Intermediate_Dir "SH4Rel"
+# PROP CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=shcl.exe
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH4" /D "_SH4_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /Qsh4 /Oxs /M$(CECrtMT) /c
+# ADD CPP /nologo /w /W0 /I "../../../../sxl/include" /I "../../../include" /I "include" /I "../../../../icu-sword/source/i18n" /I "../../../../icu-sword/source/common" /D "SHx" /D "SH4" /D "_SH4_" /D "NDEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /D "__VISUALC__" /D "REGEX_MALLOC" /D "_ICU_" /YX /Qsh4 /Oxs /M$(CECrtMT) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "SH4Dbg"
+# PROP BASE Intermediate_Dir "SH4Dbg"
+# PROP BASE CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "SH4Dbg"
+# PROP Intermediate_Dir "SH4Dbg"
+# PROP CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=shcl.exe
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH4" /D "_SH4_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /Qsh4 /M$(CECrtMTDebug) /c
+# ADD CPP /nologo /w /W0 /Zi /Od /I "../../../../sxl/include" /I "../../../include" /I "include" /I "../../../../icu-sword/source/i18n" /I "../../../../icu-sword/source/common" /D "DEBUG" /D "SHx" /D "SH4" /D "_SH4_" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /D "__VISUALC__" /D "REGEX_MALLOC" /D "_ICU_" /YX /Qsh4 /M$(CECrtMTDebug) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "SH3Rel"
+# PROP BASE Intermediate_Dir "SH3Rel"
+# PROP BASE CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "SH3Rel"
+# PROP Intermediate_Dir "SH3Rel"
+# PROP CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=shcl.exe
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH3" /D "_SH3_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /Oxs /M$(CECrtMT) /c
+# ADD CPP /nologo /w /W0 /I "../../../../sxl/include" /I "../../../include" /I "include" /I "../../../../icu-sword/source/i18n" /I "../../../../icu-sword/source/common" /D "SHx" /D "SH3" /D "_SH3_" /D "NDEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /D "__VISUALC__" /D "REGEX_MALLOC" /D "_ICU_" /YX /Oxs /M$(CECrtMT) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "SH3Dbg"
+# PROP BASE Intermediate_Dir "SH3Dbg"
+# PROP BASE CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "SH3Dbg"
+# PROP Intermediate_Dir "SH3Dbg"
+# PROP CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=shcl.exe
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH3" /D "_SH3_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /M$(CECrtMTDebug) /c
+# ADD CPP /nologo /w /W0 /Zi /Od /I "../../../../sxl/include" /I "../../../include" /I "include" /I "../../../../icu-sword/source/i18n" /I "../../../../icu-sword/source/common" /D "DEBUG" /D "SHx" /D "SH3" /D "_SH3_" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /D "__VISUALC__" /D "REGEX_MALLOC" /D "_ICU_" /YX /M$(CECrtMTDebug) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "ARMRel"
+# PROP BASE Intermediate_Dir "ARMRel"
+# PROP BASE CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "ARMRel"
+# PROP Intermediate_Dir "ARMRel"
+# PROP CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=clarm.exe
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "NDEBUG" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /Oxs /M$(CECrtMT) /c
+# ADD CPP /nologo /w /W0 /I "../../../../sxl/include" /I "../../../include" /I "include" /I "../../../../icu-sword/source/i18n" /I "../../../../icu-sword/source/common" /D "NDEBUG" /D "ARM" /D "_ARM_" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /D "__VISUALC__" /D "REGEX_MALLOC" /D "_ICU_" /YX /Oxs /M$(CECrtMT) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "ARMDbg"
+# PROP BASE Intermediate_Dir "ARMDbg"
+# PROP BASE CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "ARMDbg"
+# PROP Intermediate_Dir "ARMDbg"
+# PROP CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=clarm.exe
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /M$(CECrtMTDebug) /c
+# ADD CPP /nologo /w /W0 /Zi /Od /I "../../../../sxl/include" /I "../../../include" /I "include" /I "../../../../icu-sword/source/i18n" /I "../../../../icu-sword/source/common" /D "DEBUG" /D "ARM" /D "_ARM_" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /D "__VISUALC__" /D "REGEX_MALLOC" /D "_ICU_" /FR /YX /M$(CECrtMTDebug) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "X86EMRel"
+# PROP BASE Intermediate_Dir "X86EMRel"
+# PROP BASE CPU_ID "{D6518FF4-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "X86EMRel"
+# PROP Intermediate_Dir "X86EMRel"
+# PROP CPU_ID "{D6518FF4-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=cl.exe
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "WIN32" /D "STRICT" /D "_WIN32_WCE_EMULATION" /D "INTERNATIONAL" /D "USA" /D "INTLMSG_CODEPAGE" /D "$(CePlatform)" /D "i486" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /D "NDEBUG" /D "_LIB" /YX /Oxs /Gz /c
+# ADD CPP /nologo /w /W0 /I "../../../../sxl/include" /I "../../../include" /I "include" /I "../../../../icu-sword/source/i18n" /I "../../../../icu-sword/source/common" /D "WIN32" /D "STRICT" /D "_WIN32_WCE_EMULATION" /D "INTERNATIONAL" /D "USA" /D "INTLMSG_CODEPAGE" /D "i486" /D "_X86_" /D "x86" /D "NDEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /D "__VISUALC__" /D "REGEX_MALLOC" /D "_ICU_" /YX /Oxs /Gz /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "X86EMDbg"
+# PROP BASE Intermediate_Dir "X86EMDbg"
+# PROP BASE CPU_ID "{D6518FF4-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "X86EMDbg"
+# PROP Intermediate_Dir "X86EMDbg"
+# PROP CPU_ID "{D6518FF4-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=cl.exe
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "WIN32" /D "STRICT" /D "_WIN32_WCE_EMULATION" /D "INTERNATIONAL" /D "USA" /D "INTLMSG_CODEPAGE" /D "$(CePlatform)" /D "i486" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /D "_LIB" /YX /Gz /c
+# ADD CPP /nologo /w /W0 /Zi /Od /I "../../../../sxl/include" /I "../../../include" /I "include" /I "../../../../icu-sword/source/i18n" /I "../../../../icu-sword/source/common" /D "DEBUG" /D "WIN32" /D "STRICT" /D "_WIN32_WCE_EMULATION" /D "INTERNATIONAL" /D "USA" /D "INTLMSG_CODEPAGE" /D "i486" /D "_X86_" /D "x86" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /D "__VISUALC__" /D "REGEX_MALLOC" /D "_ICU_" /YX /Gz /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ENDIF
+
+# Begin Target
+
+# Name "swordlib - Win32 (WCE MIPS) Release"
+# Name "swordlib - Win32 (WCE MIPS) Debug"
+# Name "swordlib - Win32 (WCE SH4) Release"
+# Name "swordlib - Win32 (WCE SH4) Debug"
+# Name "swordlib - Win32 (WCE SH3) Release"
+# Name "swordlib - Win32 (WCE SH3) Debug"
+# Name "swordlib - Win32 (WCE ARM) Release"
+# Name "swordlib - Win32 (WCE ARM) Debug"
+# Name "swordlib - Win32 (WCE x86em) Release"
+# Name "swordlib - Win32 (WCE x86em) Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=..\..\..\src\utilfuns\zlib\adler32.c
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_ADLER=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_ADLER=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_ADLER=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_ADLER=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_ADLER=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_ADLER=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_ADLER=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_ADLER=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_ADLER=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_ADLER=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\cipherfil.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_CIPHE=\
+ "..\..\..\include\cipherfil.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\swcipher.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_CIPHE=\
+ "..\..\..\include\cipherfil.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\swcipher.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_CIPHE=\
+ "..\..\..\include\cipherfil.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\swcipher.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_CIPHE=\
+ "..\..\..\include\cipherfil.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\swcipher.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_CIPHE=\
+ "..\..\..\include\cipherfil.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\swcipher.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_CIPHE=\
+ "..\..\..\include\cipherfil.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\swcipher.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_CIPHE=\
+ "..\..\..\include\cipherfil.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\swcipher.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_CIPHE=\
+ "..\..\..\include\cipherfil.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\swcipher.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_CIPHE=\
+ "..\..\..\include\cipherfil.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\swcipher.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_CIPHE=\
+ "..\..\..\include\cipherfil.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\swcipher.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\utilfuns\zlib\compress.c
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_COMPR=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_COMPR=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_COMPR=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_COMPR=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_COMPR=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_COMPR=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_COMPR=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_COMPR=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_COMPR=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_COMPR=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\utilfuns\zlib\crc32.c
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_CRC32=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_CRC32=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_CRC32=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_CRC32=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_CRC32=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_CRC32=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_CRC32=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_CRC32=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_CRC32=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_CRC32=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\utilfuns\zlib\deflate.c
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_DEFLA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\deflate.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_DEFLA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\deflate.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_DEFLA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\deflate.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_DEFLA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\deflate.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_DEFLA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\deflate.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_DEFLA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\deflate.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_DEFLA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\deflate.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_DEFLA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\deflate.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_DEFLA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\deflate.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_DEFLA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\deflate.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\dirent.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_DIREN=\
+ ".\include\dirent.h"\
+ ".\include\swordce.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_DIREN=\
+ ".\include\dirent.h"\
+ ".\include\swordce.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_DIREN=\
+ ".\include\dirent.h"\
+ ".\include\swordce.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_DIREN=\
+ ".\include\dirent.h"\
+ ".\include\swordce.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_DIREN=\
+ ".\include\dirent.h"\
+ ".\include\swordce.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_DIREN=\
+ ".\include\dirent.h"\
+ ".\include\swordce.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_DIREN=\
+ ".\include\dirent.h"\
+ ".\include\swordce.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_DIREN=\
+ ".\include\dirent.h"\
+ ".\include\swordce.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_DIREN=\
+ ".\include\dirent.h"\
+ ".\include\swordce.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_DIREN=\
+ ".\include\dirent.h"\
+ ".\include\swordce.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\mgr\encfiltmgr.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_ENCFI=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\encfiltmgr.h"\
+ "..\..\..\include\latin1utf8.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\scsuutf8.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unicodertf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8html.h"\
+ "..\..\..\include\utf8latin1.h"\
+ "..\..\..\include\utf8utf16.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_ENCFI=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\encfiltmgr.h"\
+ "..\..\..\include\latin1utf8.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\scsuutf8.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unicodertf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8html.h"\
+ "..\..\..\include\utf8latin1.h"\
+ "..\..\..\include\utf8utf16.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_ENCFI=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\encfiltmgr.h"\
+ "..\..\..\include\latin1utf8.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\scsuutf8.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unicodertf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8html.h"\
+ "..\..\..\include\utf8latin1.h"\
+ "..\..\..\include\utf8utf16.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_ENCFI=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\encfiltmgr.h"\
+ "..\..\..\include\latin1utf8.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\scsuutf8.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unicodertf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8html.h"\
+ "..\..\..\include\utf8latin1.h"\
+ "..\..\..\include\utf8utf16.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_ENCFI=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\encfiltmgr.h"\
+ "..\..\..\include\latin1utf8.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\scsuutf8.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unicodertf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8html.h"\
+ "..\..\..\include\utf8latin1.h"\
+ "..\..\..\include\utf8utf16.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_ENCFI=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\encfiltmgr.h"\
+ "..\..\..\include\latin1utf8.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\scsuutf8.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unicodertf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8html.h"\
+ "..\..\..\include\utf8latin1.h"\
+ "..\..\..\include\utf8utf16.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_ENCFI=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\encfiltmgr.h"\
+ "..\..\..\include\latin1utf8.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\scsuutf8.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unicodertf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8html.h"\
+ "..\..\..\include\utf8latin1.h"\
+ "..\..\..\include\utf8utf16.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_ENCFI=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\encfiltmgr.h"\
+ "..\..\..\include\latin1utf8.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\scsuutf8.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unicodertf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8html.h"\
+ "..\..\..\include\utf8latin1.h"\
+ "..\..\..\include\utf8utf16.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_ENCFI=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\encfiltmgr.h"\
+ "..\..\..\include\latin1utf8.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\scsuutf8.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unicodertf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8html.h"\
+ "..\..\..\include\utf8latin1.h"\
+ "..\..\..\include\utf8utf16.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_ENCFI=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\encfiltmgr.h"\
+ "..\..\..\include\latin1utf8.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\scsuutf8.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unicodertf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8html.h"\
+ "..\..\..\include\utf8latin1.h"\
+ "..\..\..\include\utf8utf16.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\common\entriesblk.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_ENTRI=\
+ "..\..\..\include\entriesblk.h"\
+ "..\..\..\include\sysdata.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_ENTRI=\
+ "..\..\..\include\entriesblk.h"\
+ "..\..\..\include\sysdata.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_ENTRI=\
+ "..\..\..\include\entriesblk.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_ENTRI=\
+ "..\..\..\include\entriesblk.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_ENTRI=\
+ "..\..\..\include\entriesblk.h"\
+ "..\..\..\include\sysdata.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_ENTRI=\
+ "..\..\..\include\entriesblk.h"\
+ "..\..\..\include\sysdata.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_ENTRI=\
+ "..\..\..\include\entriesblk.h"\
+ "..\..\..\include\sysdata.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_ENTRI=\
+ "..\..\..\include\entriesblk.h"\
+ "..\..\..\include\sysdata.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_ENTRI=\
+ "..\..\..\include\entriesblk.h"\
+ "..\..\..\include\sysdata.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_ENTRI=\
+ "..\..\..\include\entriesblk.h"\
+ "..\..\..\include\sysdata.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\mgr\filemgr.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_FILEM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_FILEM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_FILEM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_FILEM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_FILEM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_FILEM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_FILEM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_FILEM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_FILEM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_FILEM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\gbffootnotes.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_GBFFO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbffootnotes.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_GBFFO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbffootnotes.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_GBFFO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbffootnotes.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_GBFFO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbffootnotes.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_GBFFO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbffootnotes.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_GBFFO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbffootnotes.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_GBFFO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbffootnotes.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_GBFFO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbffootnotes.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_GBFFO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbffootnotes.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_GBFFO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbffootnotes.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\gbfheadings.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_GBFHE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfheadings.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_GBFHE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfheadings.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_GBFHE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfheadings.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_GBFHE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfheadings.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_GBFHE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfheadings.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_GBFHE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfheadings.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_GBFHE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfheadings.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_GBFHE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfheadings.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_GBFHE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfheadings.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_GBFHE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfheadings.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\gbfhtml.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_GBFHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_GBFHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_GBFHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_GBFHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_GBFHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_GBFHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_GBFHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_GBFHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_GBFHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_GBFHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\gbfhtmlhref.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_GBFHTM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfhtmlhref.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_GBFHTM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfhtmlhref.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_GBFHTM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfhtmlhref.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_GBFHTM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfhtmlhref.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_GBFHTM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfhtmlhref.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_GBFHTM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfhtmlhref.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_GBFHTM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfhtmlhref.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_GBFHTM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfhtmlhref.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_GBFHTM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfhtmlhref.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_GBFHTM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfhtmlhref.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\gbfmorph.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_GBFMO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfmorph.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_GBFMO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfmorph.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_GBFMO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfmorph.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_GBFMO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfmorph.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_GBFMO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfmorph.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_GBFMO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfmorph.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_GBFMO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfmorph.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_GBFMO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfmorph.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_GBFMO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfmorph.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_GBFMO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfmorph.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\gbfplain.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_GBFPL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_GBFPL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_GBFPL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_GBFPL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_GBFPL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_GBFPL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_GBFPL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_GBFPL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_GBFPL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_GBFPL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\gbfrtf.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_GBFRT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfrtf.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_GBFRT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfrtf.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_GBFRT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfrtf.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_GBFRT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfrtf.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_GBFRT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfrtf.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_GBFRT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfrtf.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_GBFRT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfrtf.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_GBFRT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfrtf.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_GBFRT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfrtf.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_GBFRT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfrtf.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\gbfstrongs.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_GBFST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfstrongs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_GBFST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfstrongs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_GBFST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfstrongs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_GBFST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfstrongs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_GBFST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfstrongs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_GBFST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfstrongs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_GBFST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfstrongs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_GBFST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfstrongs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_GBFST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfstrongs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_GBFST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfstrongs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\gbfthml.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_GBFTH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfthml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_GBFTH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfthml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_GBFTH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfthml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_GBFTH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfthml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_GBFTH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfthml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_GBFTH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfthml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_GBFTH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfthml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_GBFTH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfthml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_GBFTH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfthml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_GBFTH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\gbfthml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\utilfuns\Greek2Greek.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_GREEK=\
+ "..\..\..\include\Greek2Greek.h"\
+ "..\..\..\include\GreekChars.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_GREEK=\
+ "..\..\..\include\Greek2Greek.h"\
+ "..\..\..\include\GreekChars.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_GREEK=\
+ "..\..\..\include\Greek2Greek.h"\
+ "..\..\..\include\GreekChars.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_GREEK=\
+ "..\..\..\include\Greek2Greek.h"\
+ "..\..\..\include\GreekChars.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_GREEK=\
+ "..\..\..\include\Greek2Greek.h"\
+ "..\..\..\include\GreekChars.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_GREEK=\
+ "..\..\..\include\Greek2Greek.h"\
+ "..\..\..\include\GreekChars.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_GREEK=\
+ "..\..\..\include\Greek2Greek.h"\
+ "..\..\..\include\GreekChars.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_GREEK=\
+ "..\..\..\include\Greek2Greek.h"\
+ "..\..\..\include\GreekChars.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_GREEK=\
+ "..\..\..\include\Greek2Greek.h"\
+ "..\..\..\include\GreekChars.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_GREEK=\
+ "..\..\..\include\Greek2Greek.h"\
+ "..\..\..\include\GreekChars.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\utilfuns\zlib\gzio.c
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_GZIO_=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_GZIO_=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_GZIO_=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_GZIO_=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_GZIO_=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_GZIO_=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_GZIO_=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_GZIO_=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_GZIO_=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_GZIO_=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\comments\hrefcom\hrefcom.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_HREFC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\hrefcom.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_HREFC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\hrefcom.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_HREFC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\hrefcom.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_HREFC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\hrefcom.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_HREFC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\hrefcom.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_HREFC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\hrefcom.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_HREFC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\hrefcom.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_HREFC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\hrefcom.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_HREFC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\hrefcom.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_HREFC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\hrefcom.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\utilfuns\zlib\infblock.c
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_INFBL=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_INFBL=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_INFBL=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_INFBL=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_INFBL=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_INFBL=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_INFBL=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_INFBL=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_INFBL=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_INFBL=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\utilfuns\zlib\infcodes.c
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_INFCO=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inffast.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_INFCO=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inffast.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_INFCO=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inffast.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_INFCO=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inffast.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_INFCO=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inffast.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_INFCO=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inffast.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_INFCO=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inffast.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_INFCO=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inffast.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_INFCO=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inffast.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_INFCO=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inffast.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\utilfuns\zlib\inffast.c
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_INFFA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inffast.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_INFFA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inffast.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_INFFA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inffast.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_INFFA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inffast.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_INFFA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inffast.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_INFFA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inffast.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_INFFA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inffast.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_INFFA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inffast.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_INFFA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inffast.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_INFFA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inffast.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\utilfuns\zlib\inflate.c
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_INFLA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_INFLA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_INFLA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_INFLA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_INFLA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_INFLA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_INFLA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_INFLA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_INFLA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_INFLA=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\utilfuns\zlib\inftrees.c
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_INFTR=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\inffixed.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_INFTR=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\inffixed.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_INFTR=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\inffixed.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_INFTR=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\inffixed.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_INFTR=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\inffixed.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_INFTR=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\inffixed.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_INFTR=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\inffixed.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_INFTR=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\inffixed.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_INFTR=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\inffixed.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_INFTR=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\inffixed.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\utilfuns\zlib\infutil.c
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_INFUT=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_INFUT=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_INFUT=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_INFUT=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_INFUT=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_INFUT=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_INFUT=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_INFUT=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_INFUT=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_INFUT=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\infblock.h"\
+ "..\..\..\src\utilfuns\zlib\infcodes.h"\
+ "..\..\..\src\utilfuns\zlib\inftrees.h"\
+ "..\..\..\src\utilfuns\zlib\infutil.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\latin1utf16.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_LATIN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\latin1utf16.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_LATIN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\latin1utf16.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_LATIN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\latin1utf16.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_LATIN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\latin1utf16.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_LATIN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\latin1utf16.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_LATIN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\latin1utf16.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_LATIN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\latin1utf16.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_LATIN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\latin1utf16.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_LATIN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\latin1utf16.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_LATIN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\latin1utf16.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\latin1utf8.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_LATIN1=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\latin1utf8.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_LATIN1=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\latin1utf8.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_LATIN1=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\latin1utf8.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_LATIN1=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\latin1utf8.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_LATIN1=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\latin1utf8.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_LATIN1=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\latin1utf8.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_LATIN1=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\latin1utf8.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_LATIN1=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\latin1utf8.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_LATIN1=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\latin1utf8.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_LATIN1=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\latin1utf8.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\keys\listkey.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_LISTK=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_LISTK=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_LISTK=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_LISTK=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_LISTK=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_LISTK=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_LISTK=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_LISTK=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_LISTK=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_LISTK=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\mgr\localemgr.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_LOCAL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\localemgr.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_LOCAL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\localemgr.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_LOCAL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\localemgr.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_LOCAL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\localemgr.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_LOCAL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\localemgr.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_LOCAL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\localemgr.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_LOCAL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\localemgr.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_LOCAL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\localemgr.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_LOCAL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\localemgr.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_LOCAL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\localemgr.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\common\lzsscomprs.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_LZSSC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\lzsscomprs.h"\
+ "..\..\..\include\swcomprs.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_LZSSC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\lzsscomprs.h"\
+ "..\..\..\include\swcomprs.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_LZSSC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\lzsscomprs.h"\
+ "..\..\..\include\swcomprs.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_LZSSC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\lzsscomprs.h"\
+ "..\..\..\include\swcomprs.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_LZSSC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\lzsscomprs.h"\
+ "..\..\..\include\swcomprs.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_LZSSC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\lzsscomprs.h"\
+ "..\..\..\include\swcomprs.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_LZSSC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\lzsscomprs.h"\
+ "..\..\..\include\swcomprs.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_LZSSC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\lzsscomprs.h"\
+ "..\..\..\include\swcomprs.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_LZSSC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\lzsscomprs.h"\
+ "..\..\..\include\swcomprs.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_LZSSC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\lzsscomprs.h"\
+ "..\..\..\include\swcomprs.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\mgr\markupfiltmgr.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_MARKU=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\encfiltmgr.h"\
+ "..\..\..\include\gbfhtml.h"\
+ "..\..\..\include\gbfhtmlhref.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\gbfrtf.h"\
+ "..\..\..\include\gbfthml.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\markupfiltmgr.h"\
+ "..\..\..\include\plainhtml.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlgbf.h"\
+ "..\..\..\include\thmlhtml.h"\
+ "..\..\..\include\thmlhtmlhref.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\thmlrtf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_MARKU=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\encfiltmgr.h"\
+ "..\..\..\include\gbfhtml.h"\
+ "..\..\..\include\gbfhtmlhref.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\gbfrtf.h"\
+ "..\..\..\include\gbfthml.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\markupfiltmgr.h"\
+ "..\..\..\include\plainhtml.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlgbf.h"\
+ "..\..\..\include\thmlhtml.h"\
+ "..\..\..\include\thmlhtmlhref.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\thmlrtf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_MARKU=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\encfiltmgr.h"\
+ "..\..\..\include\gbfhtml.h"\
+ "..\..\..\include\gbfhtmlhref.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\gbfrtf.h"\
+ "..\..\..\include\gbfthml.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\markupfiltmgr.h"\
+ "..\..\..\include\plainhtml.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlgbf.h"\
+ "..\..\..\include\thmlhtml.h"\
+ "..\..\..\include\thmlhtmlhref.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\thmlrtf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_MARKU=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\encfiltmgr.h"\
+ "..\..\..\include\gbfhtml.h"\
+ "..\..\..\include\gbfhtmlhref.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\gbfrtf.h"\
+ "..\..\..\include\gbfthml.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\markupfiltmgr.h"\
+ "..\..\..\include\plainhtml.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlgbf.h"\
+ "..\..\..\include\thmlhtml.h"\
+ "..\..\..\include\thmlhtmlhref.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\thmlrtf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_MARKU=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\encfiltmgr.h"\
+ "..\..\..\include\gbfhtml.h"\
+ "..\..\..\include\gbfhtmlhref.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\gbfrtf.h"\
+ "..\..\..\include\gbfthml.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\markupfiltmgr.h"\
+ "..\..\..\include\plainhtml.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlgbf.h"\
+ "..\..\..\include\thmlhtml.h"\
+ "..\..\..\include\thmlhtmlhref.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\thmlrtf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_MARKU=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\encfiltmgr.h"\
+ "..\..\..\include\gbfhtml.h"\
+ "..\..\..\include\gbfhtmlhref.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\gbfrtf.h"\
+ "..\..\..\include\gbfthml.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\markupfiltmgr.h"\
+ "..\..\..\include\plainhtml.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlgbf.h"\
+ "..\..\..\include\thmlhtml.h"\
+ "..\..\..\include\thmlhtmlhref.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\thmlrtf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_MARKU=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\encfiltmgr.h"\
+ "..\..\..\include\gbfhtml.h"\
+ "..\..\..\include\gbfhtmlhref.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\gbfrtf.h"\
+ "..\..\..\include\gbfthml.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\markupfiltmgr.h"\
+ "..\..\..\include\plainhtml.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlgbf.h"\
+ "..\..\..\include\thmlhtml.h"\
+ "..\..\..\include\thmlhtmlhref.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\thmlrtf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_MARKU=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\encfiltmgr.h"\
+ "..\..\..\include\gbfhtml.h"\
+ "..\..\..\include\gbfhtmlhref.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\gbfrtf.h"\
+ "..\..\..\include\gbfthml.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\markupfiltmgr.h"\
+ "..\..\..\include\plainhtml.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlgbf.h"\
+ "..\..\..\include\thmlhtml.h"\
+ "..\..\..\include\thmlhtmlhref.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\thmlrtf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_MARKU=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\encfiltmgr.h"\
+ "..\..\..\include\gbfhtml.h"\
+ "..\..\..\include\gbfhtmlhref.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\gbfrtf.h"\
+ "..\..\..\include\gbfthml.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\markupfiltmgr.h"\
+ "..\..\..\include\plainhtml.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlgbf.h"\
+ "..\..\..\include\thmlhtml.h"\
+ "..\..\..\include\thmlhtmlhref.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\thmlrtf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_MARKU=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\encfiltmgr.h"\
+ "..\..\..\include\gbfhtml.h"\
+ "..\..\..\include\gbfhtmlhref.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\gbfrtf.h"\
+ "..\..\..\include\gbfthml.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\markupfiltmgr.h"\
+ "..\..\..\include\plainhtml.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlgbf.h"\
+ "..\..\..\include\thmlhtml.h"\
+ "..\..\..\include\thmlhtmlhref.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\thmlrtf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\plainfootnotes.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_PLAIN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\plainfootnotes.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_PLAIN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\plainfootnotes.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_PLAIN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\plainfootnotes.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_PLAIN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\plainfootnotes.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_PLAIN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\plainfootnotes.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_PLAIN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\plainfootnotes.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_PLAIN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\plainfootnotes.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_PLAIN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\plainfootnotes.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_PLAIN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\plainfootnotes.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_PLAIN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\plainfootnotes.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\plainhtml.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_PLAINH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\plainhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_PLAINH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\plainhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_PLAINH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\plainhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_PLAINH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\plainhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_PLAINH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\plainhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_PLAINH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\plainhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_PLAINH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\plainhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_PLAINH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\plainhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_PLAINH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\plainhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_PLAINH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\plainhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\comments\rawcom\rawcom.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_RAWCO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawcom.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_RAWCO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawcom.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_RAWCO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawcom.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_RAWCO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawcom.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_RAWCO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawcom.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_RAWCO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawcom.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_RAWCO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawcom.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_RAWCO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawcom.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_RAWCO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawcom.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_RAWCO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawcom.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\comments\rawfiles\rawfiles.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_RAWFI=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawfiles.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_RAWFI=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawfiles.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_RAWFI=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawfiles.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_RAWFI=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawfiles.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_RAWFI=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawfiles.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_RAWFI=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawfiles.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_RAWFI=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawfiles.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_RAWFI=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawfiles.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_RAWFI=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawfiles.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_RAWFI=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawfiles.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\genbook\rawgenbook\rawgenbook.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_RAWGE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawgenbook.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swgenbook.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_RAWGE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawgenbook.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swgenbook.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_RAWGE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawgenbook.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swgenbook.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_RAWGE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawgenbook.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swgenbook.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_RAWGE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawgenbook.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swgenbook.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_RAWGE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawgenbook.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swgenbook.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_RAWGE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawgenbook.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swgenbook.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_RAWGE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawgenbook.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swgenbook.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_RAWGE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawgenbook.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swgenbook.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_RAWGE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawgenbook.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swgenbook.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\lexdict\rawld\rawld.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_RAWLD=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawld.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_RAWLD=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawld.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_RAWLD=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawld.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_RAWLD=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawld.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_RAWLD=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawld.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_RAWLD=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawld.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_RAWLD=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawld.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_RAWLD=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawld.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_RAWLD=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawld.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_RAWLD=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawld.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\lexdict\rawld4\rawld4.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_RAWLD4=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawld4.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_RAWLD4=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawld4.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_RAWLD4=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawld4.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_RAWLD4=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawld4.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_RAWLD4=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawld4.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_RAWLD4=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawld4.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_RAWLD4=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawld4.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_RAWLD4=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawld4.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_RAWLD4=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawld4.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_RAWLD4=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawld4.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\common\rawstr.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_RAWST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_RAWST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_RAWST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_RAWST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_RAWST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_RAWST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_RAWST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_RAWST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_RAWST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_RAWST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\common\rawstr4.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_RAWSTR=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_RAWSTR=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_RAWSTR=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_RAWSTR=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_RAWSTR=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_RAWSTR=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_RAWSTR=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_RAWSTR=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_RAWSTR=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_RAWSTR=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\texts\rawtext\rawtext.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_RAWTE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\rawtext.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\regex.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_RAWTE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\rawtext.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\regex.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_RAWTE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\rawtext.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\regex.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_RAWTE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\rawtext.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\regex.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_RAWTE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\rawtext.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\regex.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_RAWTE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\rawtext.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\regex.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_RAWTE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\rawtext.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\regex.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_RAWTE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\rawtext.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\regex.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_RAWTE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\rawtext.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\regex.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_RAWTE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\rawtext.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\regex.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\common\rawverse.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_RAWVE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_RAWVE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_RAWVE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_RAWVE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_RAWVE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_RAWVE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_RAWVE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_RAWVE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_RAWVE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_RAWVE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\utilfuns\regex.c
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_REGEX=\
+ "..\..\..\include\regex.h"\
+
+NODEP_CPP_REGEX=\
+ "..\..\..\src\utilfuns\lisp.h"\
+ "..\..\..\src\utilfuns\syntax.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_REGEX=\
+ "..\..\..\include\regex.h"\
+
+NODEP_CPP_REGEX=\
+ "..\..\..\src\utilfuns\lisp.h"\
+ "..\..\..\src\utilfuns\syntax.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_REGEX=\
+ "..\..\..\include\regex.h"\
+
+NODEP_CPP_REGEX=\
+ "..\..\..\src\utilfuns\lisp.h"\
+ "..\..\..\src\utilfuns\syntax.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_REGEX=\
+ "..\..\..\include\regex.h"\
+
+NODEP_CPP_REGEX=\
+ "..\..\..\src\utilfuns\lisp.h"\
+ "..\..\..\src\utilfuns\syntax.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_REGEX=\
+ "..\..\..\include\regex.h"\
+
+NODEP_CPP_REGEX=\
+ "..\..\..\src\utilfuns\lisp.h"\
+ "..\..\..\src\utilfuns\syntax.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_REGEX=\
+ "..\..\..\include\regex.h"\
+
+NODEP_CPP_REGEX=\
+ "..\..\..\src\utilfuns\lisp.h"\
+ "..\..\..\src\utilfuns\syntax.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_REGEX=\
+ "..\..\..\include\regex.h"\
+
+NODEP_CPP_REGEX=\
+ "..\..\..\src\utilfuns\lisp.h"\
+ "..\..\..\src\utilfuns\syntax.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_REGEX=\
+ "..\..\..\include\regex.h"\
+
+NODEP_CPP_REGEX=\
+ "..\..\..\src\utilfuns\lisp.h"\
+ "..\..\..\src\utilfuns\syntax.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_REGEX=\
+ "..\..\..\include\regex.h"\
+
+NODEP_CPP_REGEX=\
+ "..\..\..\src\utilfuns\lisp.h"\
+ "..\..\..\src\utilfuns\syntax.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_REGEX=\
+ "..\..\..\include\regex.h"\
+
+NODEP_CPP_REGEX=\
+ "..\..\..\src\utilfuns\lisp.h"\
+ "..\..\..\src\utilfuns\syntax.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\utilfuns\roman.c
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_ROMAN=\
+ "..\..\..\include\roman.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_ROMAN=\
+ "..\..\..\include\roman.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_ROMAN=\
+ "..\..\..\include\roman.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_ROMAN=\
+ "..\..\..\include\roman.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_ROMAN=\
+ "..\..\..\include\roman.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_ROMAN=\
+ "..\..\..\include\roman.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_ROMAN=\
+ "..\..\..\include\roman.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_ROMAN=\
+ "..\..\..\include\roman.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_ROMAN=\
+ "..\..\..\include\roman.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_ROMAN=\
+ "..\..\..\include\roman.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\rtfhtml.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_RTFHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rtfhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_RTFHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rtfhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_RTFHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rtfhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_RTFHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rtfhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_RTFHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rtfhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_RTFHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rtfhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_RTFHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rtfhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_RTFHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rtfhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_RTFHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rtfhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_RTFHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rtfhtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\rwphtml.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_RWPHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rwphtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_RWPHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rwphtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_RWPHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rwphtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_RWPHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rwphtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_RWPHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rwphtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_RWPHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rwphtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_RWPHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rwphtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_RWPHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rwphtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_RWPHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rwphtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_RWPHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rwphtml.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\rwprtf.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_RWPRT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rwprtf.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_RWPRT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rwprtf.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_RWPRT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rwprtf.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_RWPRT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rwprtf.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_RWPRT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rwprtf.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_RWPRT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rwprtf.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_RWPRT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rwprtf.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_RWPRT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rwprtf.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_RWPRT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rwprtf.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_RWPRT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\rwprtf.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\common\sapphire.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_SAPPH=\
+ "..\..\..\include\sapphire.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_SAPPH=\
+ "..\..\..\include\sapphire.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_SAPPH=\
+ "..\..\..\include\sapphire.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_SAPPH=\
+ "..\..\..\include\sapphire.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_SAPPH=\
+ "..\..\..\include\sapphire.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_SAPPH=\
+ "..\..\..\include\sapphire.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_SAPPH=\
+ "..\..\..\include\sapphire.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_SAPPH=\
+ "..\..\..\include\sapphire.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_SAPPH=\
+ "..\..\..\include\sapphire.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_SAPPH=\
+ "..\..\..\include\sapphire.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\scsuutf8.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_SCSUU=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\scsuutf8.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_SCSUU=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\scsuutf8.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_SCSUU=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\scsuutf8.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_SCSUU=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\scsuutf8.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_SCSUU=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\scsuutf8.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_SCSUU=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\scsuutf8.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_SCSUU=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\scsuutf8.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_SCSUU=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\scsuutf8.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_SCSUU=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\scsuutf8.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_SCSUU=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\scsuutf8.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\keys\strkey.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_STRKE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_STRKE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_STRKE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_STRKE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_STRKE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_STRKE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_STRKE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_STRKE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_STRKE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_STRKE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\swbasicfilter.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_SWBAS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_SWBAS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_SWBAS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_SWBAS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_SWBAS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_SWBAS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_SWBAS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_SWBAS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_SWBAS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_SWBAS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\common\swcipher.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_SWCIP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\swcipher.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_SWCIP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\swcipher.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_SWCIP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\swcipher.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_SWCIP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\swcipher.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_SWCIP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\swcipher.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_SWCIP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\swcipher.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_SWCIP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\swcipher.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_SWCIP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\swcipher.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_SWCIP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\swcipher.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_SWCIP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\swcipher.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\comments\swcom.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_SWCOM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_SWCOM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_SWCOM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_SWCOM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_SWCOM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_SWCOM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_SWCOM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_SWCOM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_SWCOM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_SWCOM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\common\swcomprs.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_SWCOMP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swcomprs.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_SWCOMP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swcomprs.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_SWCOMP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swcomprs.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_SWCOMP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swcomprs.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_SWCOMP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swcomprs.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_SWCOMP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swcomprs.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_SWCOMP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swcomprs.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_SWCOMP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swcomprs.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_SWCOMP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swcomprs.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_SWCOMP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swcomprs.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\mgr\swconfig.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_SWCON=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_SWCON=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_SWCON=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_SWCON=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_SWCON=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_SWCON=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_SWCON=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_SWCON=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_SWCON=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_SWCON=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\frontend\swdisp.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_SWDIS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_SWDIS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_SWDIS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_SWDIS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_SWDIS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_SWDIS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_SWDIS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_SWDIS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_SWDIS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_SWDIS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\mgr\swfiltermgr.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_SWFIL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_SWFIL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_SWFIL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_SWFIL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_SWFIL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_SWFIL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_SWFIL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_SWFIL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_SWFIL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_SWFIL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\genbook\swgenbook.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_SWGEN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swgenbook.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_SWGEN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swgenbook.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_SWGEN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swgenbook.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_SWGEN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swgenbook.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_SWGEN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swgenbook.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_SWGEN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swgenbook.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_SWGEN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swgenbook.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_SWGEN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swgenbook.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_SWGEN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swgenbook.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_SWGEN=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swgenbook.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\keys\swkey.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_SWKEY=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_SWKEY=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_SWKEY=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_SWKEY=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_SWKEY=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_SWKEY=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_SWKEY=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_SWKEY=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_SWKEY=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_SWKEY=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\lexdict\swld.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_SWLD_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_SWLD_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_SWLD_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_SWLD_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_SWLD_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_SWLD_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_SWLD_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_SWLD_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_SWLD_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_SWLD_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\mgr\swlocale.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_SWLOC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_SWLOC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_SWLOC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_SWLOC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_SWLOC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_SWLOC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_SWLOC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_SWLOC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_SWLOC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_SWLOC=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\frontend\swlog.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_SWLOG=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swlog.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_SWLOG=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swlog.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_SWLOG=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swlog.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_SWLOG=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swlog.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_SWLOG=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swlog.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_SWLOG=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swlog.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_SWLOG=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swlog.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_SWLOG=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swlog.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_SWLOG=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swlog.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_SWLOG=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swlog.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\mgr\swmgr.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_SWMGR=\
+ "..\..\..\include\cipherfil.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\gbffootnotes.h"\
+ "..\..\..\include\gbfheadings.h"\
+ "..\..\..\include\gbfmorph.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\gbfstrongs.h"\
+ "..\..\..\include\hrefcom.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\lzsscomprs.h"\
+ "..\..\..\include\rawcom.h"\
+ "..\..\..\include\rawfiles.h"\
+ "..\..\..\include\rawld.h"\
+ "..\..\..\include\rawld4.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\rawtext.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swcipher.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\thmlfootnotes.h"\
+ "..\..\..\include\thmlheadings.h"\
+ "..\..\..\include\thmllemma.h"\
+ "..\..\..\include\thmlmorph.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\thmlscripref.h"\
+ "..\..\..\include\thmlstrongs.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8cantillation.h"\
+ "..\..\..\include\utf8greekaccents.h"\
+ "..\..\..\include\utf8hebrewpoints.h"\
+ "..\..\..\include\utf8transliterator.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zcom.h"\
+ "..\..\..\include\zipcomprs.h"\
+ "..\..\..\include\zld.h"\
+ "..\..\..\include\zstr.h"\
+ "..\..\..\include\ztext.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_SWMGR=\
+ "..\..\..\include\cipherfil.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\gbffootnotes.h"\
+ "..\..\..\include\gbfheadings.h"\
+ "..\..\..\include\gbfmorph.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\gbfstrongs.h"\
+ "..\..\..\include\hrefcom.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\lzsscomprs.h"\
+ "..\..\..\include\rawcom.h"\
+ "..\..\..\include\rawfiles.h"\
+ "..\..\..\include\rawld.h"\
+ "..\..\..\include\rawld4.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\rawtext.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swcipher.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\thmlfootnotes.h"\
+ "..\..\..\include\thmlheadings.h"\
+ "..\..\..\include\thmllemma.h"\
+ "..\..\..\include\thmlmorph.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\thmlscripref.h"\
+ "..\..\..\include\thmlstrongs.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8cantillation.h"\
+ "..\..\..\include\utf8greekaccents.h"\
+ "..\..\..\include\utf8hebrewpoints.h"\
+ "..\..\..\include\utf8transliterator.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zcom.h"\
+ "..\..\..\include\zipcomprs.h"\
+ "..\..\..\include\zld.h"\
+ "..\..\..\include\zstr.h"\
+ "..\..\..\include\ztext.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_SWMGR=\
+ "..\..\..\include\cipherfil.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\gbffootnotes.h"\
+ "..\..\..\include\gbfheadings.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\gbfstrongs.h"\
+ "..\..\..\include\hrefcom.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\lzsscomprs.h"\
+ "..\..\..\include\rawcom.h"\
+ "..\..\..\include\rawfiles.h"\
+ "..\..\..\include\rawgbf.h"\
+ "..\..\..\include\rawld.h"\
+ "..\..\..\include\rawld4.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\rawtext.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swcipher.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zcom.h"\
+ "..\..\..\include\zipcomprs.h"\
+ "..\..\..\include\ztext.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_SWMGR=\
+ "..\..\..\include\cipherfil.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\gbffootnotes.h"\
+ "..\..\..\include\gbfheadings.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\gbfstrongs.h"\
+ "..\..\..\include\hrefcom.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\lzsscomprs.h"\
+ "..\..\..\include\rawcom.h"\
+ "..\..\..\include\rawfiles.h"\
+ "..\..\..\include\rawgbf.h"\
+ "..\..\..\include\rawld.h"\
+ "..\..\..\include\rawld4.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\rawtext.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swcipher.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zcom.h"\
+ "..\..\..\include\zipcomprs.h"\
+ "..\..\..\include\ztext.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_SWMGR=\
+ "..\..\..\include\cipherfil.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\gbffootnotes.h"\
+ "..\..\..\include\gbfheadings.h"\
+ "..\..\..\include\gbfmorph.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\gbfstrongs.h"\
+ "..\..\..\include\hrefcom.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\lzsscomprs.h"\
+ "..\..\..\include\rawcom.h"\
+ "..\..\..\include\rawfiles.h"\
+ "..\..\..\include\rawld.h"\
+ "..\..\..\include\rawld4.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\rawtext.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swcipher.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\thmlfootnotes.h"\
+ "..\..\..\include\thmlheadings.h"\
+ "..\..\..\include\thmllemma.h"\
+ "..\..\..\include\thmlmorph.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\thmlscripref.h"\
+ "..\..\..\include\thmlstrongs.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8cantillation.h"\
+ "..\..\..\include\utf8greekaccents.h"\
+ "..\..\..\include\utf8hebrewpoints.h"\
+ "..\..\..\include\utf8transliterator.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zcom.h"\
+ "..\..\..\include\zipcomprs.h"\
+ "..\..\..\include\zld.h"\
+ "..\..\..\include\zstr.h"\
+ "..\..\..\include\ztext.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_SWMGR=\
+ "..\..\..\include\cipherfil.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\gbffootnotes.h"\
+ "..\..\..\include\gbfheadings.h"\
+ "..\..\..\include\gbfmorph.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\gbfstrongs.h"\
+ "..\..\..\include\hrefcom.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\lzsscomprs.h"\
+ "..\..\..\include\rawcom.h"\
+ "..\..\..\include\rawfiles.h"\
+ "..\..\..\include\rawld.h"\
+ "..\..\..\include\rawld4.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\rawtext.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swcipher.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\thmlfootnotes.h"\
+ "..\..\..\include\thmlheadings.h"\
+ "..\..\..\include\thmllemma.h"\
+ "..\..\..\include\thmlmorph.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\thmlscripref.h"\
+ "..\..\..\include\thmlstrongs.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8cantillation.h"\
+ "..\..\..\include\utf8greekaccents.h"\
+ "..\..\..\include\utf8hebrewpoints.h"\
+ "..\..\..\include\utf8transliterator.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zcom.h"\
+ "..\..\..\include\zipcomprs.h"\
+ "..\..\..\include\zld.h"\
+ "..\..\..\include\zstr.h"\
+ "..\..\..\include\ztext.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_SWMGR=\
+ "..\..\..\include\cipherfil.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\gbffootnotes.h"\
+ "..\..\..\include\gbfheadings.h"\
+ "..\..\..\include\gbfmorph.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\gbfstrongs.h"\
+ "..\..\..\include\hrefcom.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\lzsscomprs.h"\
+ "..\..\..\include\rawcom.h"\
+ "..\..\..\include\rawfiles.h"\
+ "..\..\..\include\rawld.h"\
+ "..\..\..\include\rawld4.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\rawtext.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swcipher.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\thmlfootnotes.h"\
+ "..\..\..\include\thmlheadings.h"\
+ "..\..\..\include\thmllemma.h"\
+ "..\..\..\include\thmlmorph.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\thmlscripref.h"\
+ "..\..\..\include\thmlstrongs.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8cantillation.h"\
+ "..\..\..\include\utf8greekaccents.h"\
+ "..\..\..\include\utf8hebrewpoints.h"\
+ "..\..\..\include\utf8transliterator.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zcom.h"\
+ "..\..\..\include\zipcomprs.h"\
+ "..\..\..\include\zld.h"\
+ "..\..\..\include\zstr.h"\
+ "..\..\..\include\ztext.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_SWMGR=\
+ "..\..\..\include\cipherfil.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\gbffootnotes.h"\
+ "..\..\..\include\gbfheadings.h"\
+ "..\..\..\include\gbfmorph.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\gbfstrongs.h"\
+ "..\..\..\include\hrefcom.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\lzsscomprs.h"\
+ "..\..\..\include\rawcom.h"\
+ "..\..\..\include\rawfiles.h"\
+ "..\..\..\include\rawgenbook.h"\
+ "..\..\..\include\rawld.h"\
+ "..\..\..\include\rawld4.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\rawtext.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swcipher.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swgenbook.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\thmlfootnotes.h"\
+ "..\..\..\include\thmlheadings.h"\
+ "..\..\..\include\thmllemma.h"\
+ "..\..\..\include\thmlmorph.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\thmlscripref.h"\
+ "..\..\..\include\thmlstrongs.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8cantillation.h"\
+ "..\..\..\include\utf8greekaccents.h"\
+ "..\..\..\include\utf8hebrewpoints.h"\
+ "..\..\..\include\utf8transliterator.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zcom.h"\
+ "..\..\..\include\zipcomprs.h"\
+ "..\..\..\include\zld.h"\
+ "..\..\..\include\zstr.h"\
+ "..\..\..\include\ztext.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_SWMGR=\
+ "..\..\..\include\cipherfil.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\gbffootnotes.h"\
+ "..\..\..\include\gbfheadings.h"\
+ "..\..\..\include\gbfmorph.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\gbfstrongs.h"\
+ "..\..\..\include\hrefcom.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\lzsscomprs.h"\
+ "..\..\..\include\rawcom.h"\
+ "..\..\..\include\rawfiles.h"\
+ "..\..\..\include\rawld.h"\
+ "..\..\..\include\rawld4.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\rawtext.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swcipher.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\thmlfootnotes.h"\
+ "..\..\..\include\thmlheadings.h"\
+ "..\..\..\include\thmllemma.h"\
+ "..\..\..\include\thmlmorph.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\thmlscripref.h"\
+ "..\..\..\include\thmlstrongs.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8cantillation.h"\
+ "..\..\..\include\utf8greekaccents.h"\
+ "..\..\..\include\utf8hebrewpoints.h"\
+ "..\..\..\include\utf8transliterator.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zcom.h"\
+ "..\..\..\include\zipcomprs.h"\
+ "..\..\..\include\zld.h"\
+ "..\..\..\include\zstr.h"\
+ "..\..\..\include\ztext.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_SWMGR=\
+ "..\..\..\include\cipherfil.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\gbffootnotes.h"\
+ "..\..\..\include\gbfheadings.h"\
+ "..\..\..\include\gbfmorph.h"\
+ "..\..\..\include\gbfplain.h"\
+ "..\..\..\include\gbfstrongs.h"\
+ "..\..\..\include\hrefcom.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\lzsscomprs.h"\
+ "..\..\..\include\rawcom.h"\
+ "..\..\..\include\rawfiles.h"\
+ "..\..\..\include\rawgenbook.h"\
+ "..\..\..\include\rawld.h"\
+ "..\..\..\include\rawld4.h"\
+ "..\..\..\include\rawstr.h"\
+ "..\..\..\include\rawstr4.h"\
+ "..\..\..\include\rawtext.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\sapphire.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swcipher.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swfiltermgr.h"\
+ "..\..\..\include\swgenbook.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmgr.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\thmlfootnotes.h"\
+ "..\..\..\include\thmlheadings.h"\
+ "..\..\..\include\thmllemma.h"\
+ "..\..\..\include\thmlmorph.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\thmlscripref.h"\
+ "..\..\..\include\thmlstrongs.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8cantillation.h"\
+ "..\..\..\include\utf8greekaccents.h"\
+ "..\..\..\include\utf8hebrewpoints.h"\
+ "..\..\..\include\utf8transliterator.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zcom.h"\
+ "..\..\..\include\zipcomprs.h"\
+ "..\..\..\include\zld.h"\
+ "..\..\..\include\zstr.h"\
+ "..\..\..\include\ztext.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\dirent.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\swmodule.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_SWMOD=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\regex.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_SWMOD=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\regex.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_SWMOD=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\regex.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_SWMOD=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\regex.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_SWMOD=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\regex.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_SWMOD=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\regex.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_SWMOD=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\regex.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_SWMOD=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\regex.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_SWMOD=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\regex.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_SWMOD=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\regex.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\swordce.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_SWORD=\
+ ".\include\swordce.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_SWORD=\
+ ".\include\swordce.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_SWORD=\
+ ".\include\swordce.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_SWORD=\
+ ".\include\swordce.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_SWORD=\
+ ".\include\swordce.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_SWORD=\
+ ".\include\swordce.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_SWORD=\
+ ".\include\swordce.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_SWORD=\
+ ".\include\swordce.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_SWORD=\
+ ".\include\swordce.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_SWORD=\
+ ".\include\swordce.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\texts\swtext.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_SWTEX=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_SWTEX=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_SWTEX=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_SWTEX=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_SWTEX=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_SWTEX=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_SWTEX=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_SWTEX=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_SWTEX=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_SWTEX=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\utilfuns\swunicod.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_SWUNI=\
+ "..\..\..\include\swunicod.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_SWUNI=\
+ "..\..\..\include\swunicod.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_SWUNI=\
+ "..\..\..\include\swunicod.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_SWUNI=\
+ "..\..\..\include\swunicod.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_SWUNI=\
+ "..\..\..\include\swunicod.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_SWUNI=\
+ "..\..\..\include\swunicod.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_SWUNI=\
+ "..\..\..\include\swunicod.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_SWUNI=\
+ "..\..\..\include\swunicod.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_SWUNI=\
+ "..\..\..\include\swunicod.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_SWUNI=\
+ "..\..\..\include\swunicod.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\utilfuns\swversion.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_SWVER=\
+ "..\..\..\include\swversion.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_SWVER=\
+ "..\..\..\include\swversion.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_SWVER=\
+ "..\..\..\include\swversion.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_SWVER=\
+ "..\..\..\include\swversion.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_SWVER=\
+ "..\..\..\include\swversion.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_SWVER=\
+ "..\..\..\include\swversion.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_SWVER=\
+ "..\..\..\include\swversion.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_SWVER=\
+ "..\..\..\include\swversion.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_SWVER=\
+ "..\..\..\include\swversion.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_SWVER=\
+ "..\..\..\include\swversion.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\thmlfootnotes.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_THMLF=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlfootnotes.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_THMLF=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlfootnotes.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_THMLF=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlfootnotes.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_THMLF=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlfootnotes.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_THMLF=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlfootnotes.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_THMLF=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlfootnotes.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_THMLF=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlfootnotes.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_THMLF=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlfootnotes.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_THMLF=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlfootnotes.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_THMLF=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlfootnotes.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\thmlgbf.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_THMLG=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlgbf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_THMLG=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlgbf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_THMLG=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlgbf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_THMLG=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlgbf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_THMLG=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlgbf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_THMLG=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlgbf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_THMLG=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlgbf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_THMLG=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlgbf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_THMLG=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlgbf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_THMLG=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlgbf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\thmlheadings.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_THMLH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlheadings.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_THMLH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlheadings.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_THMLH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlheadings.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_THMLH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlheadings.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_THMLH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlheadings.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_THMLH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlheadings.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_THMLH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlheadings.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_THMLH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlheadings.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_THMLH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlheadings.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_THMLH=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlheadings.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\thmlhtml.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_THMLHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlhtml.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_THMLHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlhtml.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_THMLHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlhtml.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_THMLHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlhtml.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_THMLHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlhtml.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_THMLHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlhtml.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_THMLHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlhtml.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_THMLHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlhtml.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_THMLHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlhtml.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_THMLHT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlhtml.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\thmlhtmlhref.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_THMLHTM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlhtmlhref.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_THMLHTM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlhtmlhref.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_THMLHTM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlhtmlhref.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_THMLHTM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlhtmlhref.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_THMLHTM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlhtmlhref.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_THMLHTM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlhtmlhref.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_THMLHTM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlhtmlhref.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_THMLHTM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlhtmlhref.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_THMLHTM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlhtmlhref.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_THMLHTM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlhtmlhref.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\thmllemma.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_THMLL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmllemma.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_THMLL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmllemma.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_THMLL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmllemma.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_THMLL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmllemma.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_THMLL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmllemma.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_THMLL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmllemma.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_THMLL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmllemma.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_THMLL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmllemma.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_THMLL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmllemma.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_THMLL=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmllemma.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\thmlmorph.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_THMLM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlmorph.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_THMLM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlmorph.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_THMLM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlmorph.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_THMLM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlmorph.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_THMLM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlmorph.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_THMLM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlmorph.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_THMLM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlmorph.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_THMLM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlmorph.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_THMLM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlmorph.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_THMLM=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlmorph.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\thmlolb.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_THMLO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlolb.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_THMLO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlolb.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_THMLO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlolb.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_THMLO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlolb.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_THMLO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlolb.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_THMLO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlolb.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_THMLO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlolb.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_THMLO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlolb.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_THMLO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlolb.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_THMLO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlolb.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\thmlplain.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_THMLP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_THMLP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_THMLP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_THMLP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_THMLP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_THMLP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_THMLP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_THMLP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_THMLP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_THMLP=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlplain.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\thmlrtf.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_THMLR=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlrtf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_THMLR=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlrtf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_THMLR=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlrtf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_THMLR=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlrtf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_THMLR=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlrtf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_THMLR=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlrtf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_THMLR=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlrtf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_THMLR=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlrtf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_THMLR=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlrtf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_THMLR=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swbasicfilter.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlrtf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\thmlscripref.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_THMLS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlscripref.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_THMLS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlscripref.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_THMLS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlscripref.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_THMLS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlscripref.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_THMLS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlscripref.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_THMLS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlscripref.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_THMLS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlscripref.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_THMLS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlscripref.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_THMLS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlscripref.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_THMLS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlscripref.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\thmlstrongs.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_THMLST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlstrongs.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_THMLST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlstrongs.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_THMLST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlstrongs.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_THMLST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlstrongs.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_THMLST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlstrongs.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_THMLST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlstrongs.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_THMLST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlstrongs.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_THMLST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlstrongs.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_THMLST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlstrongs.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_THMLST=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlstrongs.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\thmlvariants.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_THMLV=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlvariants.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_THMLV=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlvariants.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_THMLV=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlvariants.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_THMLV=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlvariants.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_THMLV=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlvariants.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_THMLV=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlvariants.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_THMLV=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlvariants.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_THMLV=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlvariants.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_THMLV=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlvariants.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_THMLV=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\thmlvariants.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\keys\treekey.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_TREEK=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_TREEK=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_TREEK=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_TREEK=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_TREEK=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_TREEK=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_TREEK=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_TREEK=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_TREEK=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_TREEK=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\keys\treekeyidx.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_TREEKE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_TREEKE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_TREEKE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_TREEKE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_TREEKE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_TREEKE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_TREEKE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_TREEKE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_TREEKE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_TREEKE=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\treekey.h"\
+ "..\..\..\include\treekeyidx.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\utilfuns\zlib\trees.c
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_TREES=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\deflate.h"\
+ "..\..\..\src\utilfuns\zlib\trees.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_TREES=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\deflate.h"\
+ "..\..\..\src\utilfuns\zlib\trees.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_TREES=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\deflate.h"\
+ "..\..\..\src\utilfuns\zlib\trees.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_TREES=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\deflate.h"\
+ "..\..\..\src\utilfuns\zlib\trees.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_TREES=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\deflate.h"\
+ "..\..\..\src\utilfuns\zlib\trees.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_TREES=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\deflate.h"\
+ "..\..\..\src\utilfuns\zlib\trees.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_TREES=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\deflate.h"\
+ "..\..\..\src\utilfuns\zlib\trees.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_TREES=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\deflate.h"\
+ "..\..\..\src\utilfuns\zlib\trees.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_TREES=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\deflate.h"\
+ "..\..\..\src\utilfuns\zlib\trees.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_TREES=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\deflate.h"\
+ "..\..\..\src\utilfuns\zlib\trees.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\utilfuns\zlib\uncompr.c
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_UNCOM=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_UNCOM=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_UNCOM=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_UNCOM=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_UNCOM=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_UNCOM=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_UNCOM=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_UNCOM=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_UNCOM=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_UNCOM=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\unicodertf.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_UNICO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unicodertf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_UNICO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unicodertf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_UNICO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unicodertf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_UNICO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unicodertf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_UNICO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unicodertf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_UNICO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unicodertf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_UNICO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unicodertf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_UNICO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unicodertf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_UNICO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unicodertf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_UNICO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unicodertf.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\unistd.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_UNIST=\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_UNIST=\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_UNIST=\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_UNIST=\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_UNIST=\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_UNIST=\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_UNIST=\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_UNIST=\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_UNIST=\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_UNIST=\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\utf16utf8.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_UTF16=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf16utf8.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_UTF16=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf16utf8.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_UTF16=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf16utf8.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_UTF16=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf16utf8.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_UTF16=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf16utf8.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_UTF16=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf16utf8.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_UTF16=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf16utf8.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_UTF16=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf16utf8.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_UTF16=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf16utf8.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_UTF16=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf16utf8.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\utf8arshaping.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_UTF8A=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8arshaping.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_UTF8A=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8arshaping.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_UTF8A=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8arshaping.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_UTF8A=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8arshaping.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_UTF8A=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8arshaping.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_UTF8A=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8arshaping.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_UTF8A=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8arshaping.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_UTF8A=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8arshaping.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_UTF8A=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8arshaping.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_UTF8A=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8arshaping.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\utf8bidireorder.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_UTF8B=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8bidireorder.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_UTF8B=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8bidireorder.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_UTF8B=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8bidireorder.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_UTF8B=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8bidireorder.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_UTF8B=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8bidireorder.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_UTF8B=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8bidireorder.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_UTF8B=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8bidireorder.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_UTF8B=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8bidireorder.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_UTF8B=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8bidireorder.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_UTF8B=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8bidireorder.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\utf8cantillation.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_UTF8C=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8cantillation.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_UTF8C=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8cantillation.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_UTF8C=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8cantillation.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_UTF8C=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8cantillation.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_UTF8C=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8cantillation.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_UTF8C=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8cantillation.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_UTF8C=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8cantillation.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_UTF8C=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8cantillation.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_UTF8C=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8cantillation.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_UTF8C=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8cantillation.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\utf8greekaccents.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_UTF8G=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8greekaccents.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_UTF8G=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8greekaccents.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_UTF8G=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8greekaccents.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_UTF8G=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8greekaccents.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_UTF8G=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8greekaccents.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_UTF8G=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8greekaccents.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_UTF8G=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8greekaccents.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_UTF8G=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8greekaccents.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_UTF8G=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8greekaccents.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_UTF8G=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8greekaccents.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\utf8hebrewpoints.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_UTF8H=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8hebrewpoints.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_UTF8H=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8hebrewpoints.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_UTF8H=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8hebrewpoints.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_UTF8H=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8hebrewpoints.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_UTF8H=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8hebrewpoints.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_UTF8H=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8hebrewpoints.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_UTF8H=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8hebrewpoints.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_UTF8H=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8hebrewpoints.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_UTF8H=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8hebrewpoints.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_UTF8H=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8hebrewpoints.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\utf8html.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_UTF8HT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8html.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_UTF8HT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8html.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_UTF8HT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8html.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_UTF8HT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8html.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_UTF8HT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8html.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_UTF8HT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8html.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_UTF8HT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8html.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_UTF8HT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8html.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_UTF8HT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8html.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_UTF8HT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8html.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\utf8latin1.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_UTF8L=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8latin1.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_UTF8L=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8latin1.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_UTF8L=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8latin1.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_UTF8L=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8latin1.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_UTF8L=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8latin1.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_UTF8L=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8latin1.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_UTF8L=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8latin1.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_UTF8L=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8latin1.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_UTF8L=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8latin1.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_UTF8L=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8latin1.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\utf8nfc.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_UTF8N=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8nfc.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_UTF8N=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8nfc.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_UTF8N=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8nfc.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_UTF8N=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8nfc.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_UTF8N=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8nfc.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_UTF8N=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8nfc.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_UTF8N=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8nfc.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_UTF8N=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8nfc.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_UTF8N=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8nfc.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_UTF8N=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8nfc.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\utf8nfkd.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_UTF8NF=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8nfkd.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_UTF8NF=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8nfkd.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_UTF8NF=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8nfkd.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_UTF8NF=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8nfkd.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_UTF8NF=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8nfkd.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_UTF8NF=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8nfkd.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_UTF8NF=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8nfkd.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_UTF8NF=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8nfkd.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_UTF8NF=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8nfkd.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_UTF8NF=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8nfkd.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\utf8transliterator.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_UTF8T=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8transliterator.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_UTF8T=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8transliterator.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_UTF8T=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8transliterator.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_UTF8T=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8transliterator.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_UTF8T=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8transliterator.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_UTF8T=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8transliterator.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_UTF8T=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8transliterator.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_UTF8T=\
+ "..\..\..\..\icu-sword\source\common\unicode\pmacos.h"\
+ "..\..\..\..\icu-sword\source\common\unicode\pos2.h"\
+ "..\..\..\..\icu-sword\source\common\unicode\pos400.h"\
+ "..\..\..\..\icu-sword\source\common\unicode\putil.h"\
+ "..\..\..\..\icu-sword\source\common\unicode\pwin32.h"\
+ "..\..\..\..\icu-sword\source\common\unicode\pwince.h"\
+ "..\..\..\..\icu-sword\source\common\unicode\rep.h"\
+ "..\..\..\..\icu-sword\source\common\unicode\uchar.h"\
+ "..\..\..\..\icu-sword\source\common\unicode\ucnv.h"\
+ "..\..\..\..\icu-sword\source\common\unicode\ucnv_err.h"\
+ "..\..\..\..\icu-sword\source\common\unicode\umachine.h"\
+ "..\..\..\..\icu-sword\source\common\unicode\unistr.h"\
+ "..\..\..\..\icu-sword\source\common\unicode\urename.h"\
+ "..\..\..\..\icu-sword\source\common\unicode\urep.h"\
+ "..\..\..\..\icu-sword\source\common\unicode\ustring.h"\
+ "..\..\..\..\icu-sword\source\common\unicode\utf.h"\
+ "..\..\..\..\icu-sword\source\common\unicode\utf16.h"\
+ "..\..\..\..\icu-sword\source\common\unicode\utf32.h"\
+ "..\..\..\..\icu-sword\source\common\unicode\utf8.h"\
+ "..\..\..\..\icu-sword\source\common\unicode\utypes.h"\
+ "..\..\..\..\icu-sword\source\common\unicode\uversion.h"\
+ "..\..\..\..\icu-sword\source\i18n\unicode\parseerr.h"\
+ "..\..\..\..\icu-sword\source\i18n\unicode\translit.h"\
+ "..\..\..\..\icu-sword\source\i18n\unicode\utrans.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8transliterator.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+NODEP_CPP_UTF8T=\
+ "..\..\..\..\icu-sword\source\common\unicode\unicode\platform.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_UTF8T=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8transliterator.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_UTF8T=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8transliterator.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\filters\utf8utf16.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_UTF8U=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8utf16.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_UTF8U=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8utf16.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_UTF8U=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8utf16.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_UTF8U=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8utf16.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_UTF8U=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8utf16.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_UTF8U=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8utf16.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_UTF8U=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8utf16.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_UTF8U=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8utf16.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_UTF8U=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8utf16.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_UTF8U=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utf8utf16.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\utilfuns\utilconf.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_UTILC=\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_UTILC=\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_UTILC=\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_UTILC=\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_UTILC=\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_UTILC=\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_UTILC=\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_UTILC=\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_UTILC=\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_UTILC=\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\utilfuns\utilstr.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_UTILS=\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_UTILS=\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_UTILS=\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_UTILS=\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_UTILS=\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_UTILS=\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_UTILS=\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_UTILS=\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_UTILS=\
+ "..\..\..\include\utilstr.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_UTILS=\
+ "..\..\..\include\utilstr.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\keys\versekey.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_VERSE=\
+ "..\..\..\include\canon.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\localemgr.h"\
+ "..\..\..\include\roman.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_VERSE=\
+ "..\..\..\include\canon.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\localemgr.h"\
+ "..\..\..\include\roman.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_VERSE=\
+ "..\..\..\include\canon.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\localemgr.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_VERSE=\
+ "..\..\..\include\canon.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\localemgr.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_VERSE=\
+ "..\..\..\include\canon.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\localemgr.h"\
+ "..\..\..\include\roman.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_VERSE=\
+ "..\..\..\include\canon.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\localemgr.h"\
+ "..\..\..\include\roman.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_VERSE=\
+ "..\..\..\include\canon.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\localemgr.h"\
+ "..\..\..\include\roman.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_VERSE=\
+ "..\..\..\include\canon.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\localemgr.h"\
+ "..\..\..\include\roman.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_VERSE=\
+ "..\..\..\include\canon.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\localemgr.h"\
+ "..\..\..\include\roman.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_VERSE=\
+ "..\..\..\include\canon.h"\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\localemgr.h"\
+ "..\..\..\include\roman.h"\
+ "..\..\..\include\swconfig.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swlocale.h"\
+ "..\..\..\include\swlog.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\comments\zcom\zcom.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_ZCOM_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zcom.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_ZCOM_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zcom.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_ZCOM_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zcom.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_ZCOM_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zcom.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_ZCOM_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zcom.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_ZCOM_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zcom.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_ZCOM_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zcom.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_ZCOM_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zcom.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_ZCOM_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zcom.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_ZCOM_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcom.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zcom.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\common\zipcomprs.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_ZIPCO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zipcomprs.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_ZIPCO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zipcomprs.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_ZIPCO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zipcomprs.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_ZIPCO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zipcomprs.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_ZIPCO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zipcomprs.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_ZIPCO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zipcomprs.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_ZIPCO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zipcomprs.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_ZIPCO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zipcomprs.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_ZIPCO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zipcomprs.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_ZIPCO=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zipcomprs.h"\
+ "..\..\..\include\zlib.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\lexdict\zld\zld.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_ZLD_C=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\zld.h"\
+ "..\..\..\include\zstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_ZLD_C=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\zld.h"\
+ "..\..\..\include\zstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_ZLD_C=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\zld.h"\
+ "..\..\..\include\zstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_ZLD_C=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\zld.h"\
+ "..\..\..\include\zstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_ZLD_C=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\zld.h"\
+ "..\..\..\include\zstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_ZLD_C=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\zld.h"\
+ "..\..\..\include\zstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_ZLD_C=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\zld.h"\
+ "..\..\..\include\zstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_ZLD_C=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\zld.h"\
+ "..\..\..\include\zstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_ZLD_C=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\zld.h"\
+ "..\..\..\include\zstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_ZLD_C=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\strkey.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swld.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\zld.h"\
+ "..\..\..\include\zstr.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\common\zstr.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_ZSTR_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\entriesblk.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\zstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_ZSTR_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\entriesblk.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\zstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_ZSTR_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\entriesblk.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\zstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_ZSTR_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\entriesblk.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\zstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_ZSTR_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\entriesblk.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\zstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_ZSTR_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\entriesblk.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\zstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_ZSTR_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\entriesblk.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\zstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_ZSTR_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\entriesblk.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\zstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_ZSTR_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\entriesblk.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\zstr.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_ZSTR_=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\entriesblk.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\sysdata.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\zstr.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\texts\ztext\ztext.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_ZTEXT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\ztext.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_ZTEXT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\ztext.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_ZTEXT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\ztext.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_ZTEXT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\ztext.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_ZTEXT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\ztext.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_ZTEXT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\ztext.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_ZTEXT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\ztext.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_ZTEXT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\ztext.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_ZTEXT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\ztext.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_ZTEXT=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swdisp.h"\
+ "..\..\..\include\swfilter.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swmodule.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\swtext.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\ztext.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\utilfuns\zlib\zutil.c
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_ZUTIL=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_ZUTIL=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_ZUTIL=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_ZUTIL=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_ZUTIL=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_ZUTIL=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_ZUTIL=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_ZUTIL=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_ZUTIL=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_ZUTIL=\
+ "..\..\..\include\zconf.h"\
+ "..\..\..\include\zlib.h"\
+ "..\..\..\src\utilfuns\zlib\zutil.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\src\modules\common\zverse.cpp
+
+!IF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Release"
+
+DEP_CPP_ZVERS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE MIPS) Debug"
+
+DEP_CPP_ZVERS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Release"
+
+DEP_CPP_ZVERS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH4) Debug"
+
+DEP_CPP_ZVERS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Release"
+
+DEP_CPP_ZVERS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE SH3) Debug"
+
+DEP_CPP_ZVERS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Release"
+
+DEP_CPP_ZVERS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE ARM) Debug"
+
+DEP_CPP_ZVERS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Release"
+
+DEP_CPP_ZVERS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 (WCE x86em) Debug"
+
+DEP_CPP_ZVERS=\
+ "..\..\..\include\defs.h"\
+ "..\..\..\include\filemgr.h"\
+ "..\..\..\include\listkey.h"\
+ "..\..\..\include\rawverse.h"\
+ "..\..\..\include\swbyteswap.h"\
+ "..\..\..\include\swcomprs.h"\
+ "..\..\..\include\swkey.h"\
+ "..\..\..\include\swmacs.h"\
+ "..\..\..\include\swobject.h"\
+ "..\..\..\include\unixstr.h"\
+ "..\..\..\include\utilconf.h"\
+ "..\..\..\include\utilfuns.h"\
+ "..\..\..\include\utilstr.h"\
+ "..\..\..\include\versekey.h"\
+ "..\..\..\include\zverse.h"\
+ ".\include\unistd.h"\
+
+
+!ENDIF
+
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=..\..\..\include\canon.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\cipherfil.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\defs.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\dirent.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\echomod.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\encfiltmgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\entriesblk.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\fcntl.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\femain.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\filemgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\flatapi.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\gbffootnotes.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\gbfheadings.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\gbfhtml.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\gbfhtmlhref.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\gbfmorph.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\gbfplain.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\gbfrtf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\gbfstrongs.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\gbfthml.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\Greek2Greek.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\GreekChars.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\hebrewmcim.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\hrefcom.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\io.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\latin1utf16.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\latin1utf8.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\listkey.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\localemgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\lzsscomprs.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\markupfiltmgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\nullim.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\plainfootnotes.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\plainhtml.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\rawcom.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\rawfiles.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\rawgbf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\rawgenbook.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\rawld.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\rawld4.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\rawstr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\rawstr4.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\rawtext.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\rawverse.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\regex.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\roman.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\rtfhtml.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\rwphtml.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\rwprtf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\sapphire.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\scsuutf8.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\sys\stat.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\strkey.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swbasicfilter.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swbyteswap.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swcipher.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swcom.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swcomprs.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swconfig.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swdisp.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swdisprtf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swdisprtfchap.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swfilter.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swfiltermgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swgenbook.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swinputmeth.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swkey.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swld.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swlocale.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swlog.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swmacs.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swmgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swmodule.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swobject.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\swordce.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swtext.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swunicod.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swversion.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\swwinlog.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\sysdata.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\tbdisp.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\thmlfootnotes.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\thmlgbf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\thmlheadings.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\thmlhtml.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\thmlhtmlhref.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\thmllemma.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\thmlmorph.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\thmlolb.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\thmlplain.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\thmlrtf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\thmlscripref.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\thmlstrongs.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\thmlvariants.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\treekey.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\treekeyidx.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\sys\types.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\unicodertf.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\unistd.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\unixstr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\untgz.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\utf16utf8.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\utf8arshaping.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\utf8bidireorder.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\utf8cantillation.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\utf8greekaccents.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\utf8hebrewpoints.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\utf8html.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\utf8latin1.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\utf8nfc.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\utf8nfkd.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\utf8transliterator.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\utf8utf16.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\utilconf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\utilfuns.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\utilstr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\versekey.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\zcom.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\zconf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\zipcomprs.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\zld.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\zlib.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\zstr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\ztext.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\include\zverse.h
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/apps/wince/sword/swordlib.vcw b/apps/wince/sword/swordlib.vcw
new file mode 100644
index 0000000..390f064
--- /dev/null
+++ b/apps/wince/sword/swordlib.vcw
@@ -0,0 +1,98 @@
+Microsoft eMbedded Visual Tools Workspace File, Format Version 3.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "Nepios"=..\Nepios\Nepios.vcp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name icucommon
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name icudata
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name icui18n
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name swordlib
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "icucommon"="..\..\..\..\icu-sword\as_is\wince\icu\icucommon\icucommon.vcp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "icudata"="..\..\..\..\icu-sword\as_is\wince\icu\icudata\icudata.vcp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "icui18n"="..\..\..\..\icu-sword\as_is\wince\icu\icui18n\icui18n.vcp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "swordlib"=.\swordlib.vcp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name icucommon
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name icudata
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name icui18n
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/apps/windoze/CBuilder1/mainform.cpp b/apps/windoze/CBuilder1/mainform.cpp
new file mode 100644
index 0000000..0118d7b
--- /dev/null
+++ b/apps/windoze/CBuilder1/mainform.cpp
@@ -0,0 +1,31 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "mainform.h"
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TForm1 *Form1;
+//---------------------------------------------------------------------------
+__fastcall TForm1::TForm1(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Button1Click(TObject *Sender)
+{
+ webster->SetKey(Edit1->Text.c_str());
+ Memo1->Text = webster->operator char*();
+
+}
+//---------------------------------------------------------------------
+void __fastcall TForm1::FormCreate(TObject *Sender)
+{
+ webster = new RawText("../../../modules/texts/rawtext/orthjbc/", "Webster", "Webster Text");
+}
+//---------------------------------------------------------------------
+void __fastcall TForm1::FormDestroy(TObject *Sender)
+{
+ delete webster;
+}
+//--------------------------------------------------------------------- \ No newline at end of file
diff --git a/apps/windoze/CBuilder1/mainform.dfm b/apps/windoze/CBuilder1/mainform.dfm
new file mode 100644
index 0000000..f2964cf
--- /dev/null
+++ b/apps/windoze/CBuilder1/mainform.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder1/mainform.h b/apps/windoze/CBuilder1/mainform.h
new file mode 100644
index 0000000..ed791c5
--- /dev/null
+++ b/apps/windoze/CBuilder1/mainform.h
@@ -0,0 +1,28 @@
+//---------------------------------------------------------------------------
+#ifndef mainformH
+#define mainformH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <rawtext.h>
+//---------------------------------------------------------------------------
+class TForm1 : public TForm
+{
+__published: // IDE-managed Components
+ TEdit *Edit1;
+ TButton *Button1;
+ TMemo *Memo1;
+ void __fastcall Button1Click(TObject *Sender);
+ void __fastcall FormCreate(TObject *Sender);
+ void __fastcall FormDestroy(TObject *Sender);
+private: // User declarations
+ RawText *webster;
+public: // User declarations
+ virtual __fastcall TForm1(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TForm1 *Form1;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder1/sword.cpp b/apps/windoze/CBuilder1/sword.cpp
new file mode 100644
index 0000000..6263492
--- /dev/null
+++ b/apps/windoze/CBuilder1/sword.cpp
@@ -0,0 +1,35 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+//---------------------------------------------------------------------------
+USEFORM("mainform.cpp", Form1);
+USERES("sword.res");
+USEUNIT("\usr\troy\src\sword\keys\versekey.cpp");
+USEUNIT("\usr\troy\src\sword\keys\swkey.cpp");
+USEUNIT("\usr\troy\src\sword\keys\listkey.cpp");
+USEUNIT("\usr\troy\src\sword\keys\strkey.cpp");
+USEUNIT("\usr\troy\src\sword\modules\swmodule.cpp");
+USEUNIT("\usr\troy\src\sword\modules\texts\swtext.cpp");
+USEUNIT("\usr\troy\src\sword\modules\texts\rawtext\rawtext.cpp");
+USEUNIT("\usr\troy\src\sword\modules\comments\swcom.cpp");
+USEUNIT("\usr\troy\src\sword\modules\comments\rawcom\rawcom.cpp");
+USEUNIT("\usr\troy\src\sword\modules\common\zverse.cpp");
+USEUNIT("\usr\troy\src\sword\modules\common\rawstr.cpp");
+USEUNIT("\usr\troy\src\sword\modules\common\rawverse.cpp");
+USEUNIT("\usr\troy\src\sword\modules\common\swcomprs.cpp");
+USEUNIT("\usr\troy\src\sword\modules\lexdict\swld.cpp");
+USEUNIT("\usr\troy\src\sword\modules\lexdict\rawld\rawld.cpp");
+USEUNIT("\usr\troy\src\sword\utilfuns\utilstr.cpp");
+USEUNIT("\usr\troy\src\sword\utilfuns\utilconf.cpp");
+USEUNIT("\usr\troy\src\sword\frontend\swdisp.cpp");
+//---------------------------------------------------------------------
+WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
+{
+ Application->Initialize();
+ Application->Title = "The SWORD Project";
+ Application->CreateForm(__classid(TForm1), &Form1);
+ Application->Run();
+
+ return 0;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder1/sword.mak b/apps/windoze/CBuilder1/sword.mak
new file mode 100644
index 0000000..36c1bdf
--- /dev/null
+++ b/apps/windoze/CBuilder1/sword.mak
@@ -0,0 +1,73 @@
+# ---------------------------------------------------------------------------
+VERSION = BCB.01
+# ---------------------------------------------------------------------------
+!ifndef BCB
+BCB = $(MAKEDIR)\..
+!endif
+# ---------------------------------------------------------------------------
+PROJECT = sword.exe
+OBJFILES = sword.obj mainform.obj \usr\troy\src\sword\keys\versekey.obj \
+ \usr\troy\src\sword\keys\swkey.obj \usr\troy\src\sword\keys\listkey.obj \
+ \usr\troy\src\sword\keys\strkey.obj \usr\troy\src\sword\modules\swmodule.obj \
+ \usr\troy\src\sword\modules\texts\swtext.obj \
+ \usr\troy\src\sword\modules\texts\rawtext\rawtext.obj \
+ \usr\troy\src\sword\modules\comments\swcom.obj \
+ \usr\troy\src\sword\modules\comments\rawcom\rawcom.obj \
+ \usr\troy\src\sword\modules\common\zverse.obj \
+ \usr\troy\src\sword\modules\common\rawstr.obj \
+ \usr\troy\src\sword\modules\common\rawverse.obj \
+ \usr\troy\src\sword\modules\common\swcomprs.obj \
+ \usr\troy\src\sword\modules\lexdict\swld.obj \
+ \usr\troy\src\sword\modules\lexdict\rawld\rawld.obj \
+ \usr\troy\src\sword\utilfuns\utilstr.obj \
+ \usr\troy\src\sword\utilfuns\utilconf.obj \
+ \usr\troy\src\sword\frontend\swdisp.obj
+RESFILES = sword.res
+RESDEPEN = $(RESFILES) mainform.dfm
+LIBFILES =
+# ---------------------------------------------------------------------------
+CFLAG1 = -Od -Hc -w -k -r- -y -v -vi- -c -a4 -b- -w-par -w-inl -Vx -Ve -x \
+ -WE
+CFLAG2 = -Ic:\usr\troy\src\sword\frontend\windoze;c:\usr\troy\src\sword\frontend;c:\usr\troy\src\sword\utilfuns;c:\usr\troy\src\sword\modules\lexdict\rawld;c:\usr\troy\src\sword\modules\lexdict;c:\usr\troy\src\sword\modules\common;c:\usr\troy\src\sword\modules\comments\rawcom;c:\usr\troy\src\sword\modules\comments;c:\usr\troy\src\sword\modules\texts\rawtext;c:\usr\troy\src\sword\modules\texts;c:\usr\troy\src\sword\modules;c:\usr\troy\src\sword\keys;c:\usr\troy\src\sword\include;c:\usr\troy\src\sword\frontend\windoze\cbuilder;$(BCB)\lib\obj;$(BCB)\include;$(BCB)\include\vcl \
+ -H=$(BCB)\lib\vcld.csm
+PFLAGS = -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE \
+ -Uc:\usr\troy\src\sword\frontend;c:\usr\troy\src\sword\utilfuns;c:\usr\troy\src\sword\modules\lexdict\rawld;c:\usr\troy\src\sword\modules\lexdict;c:\usr\troy\src\sword\modules\common;c:\usr\troy\src\sword\modules\comments\rawcom;c:\usr\troy\src\sword\modules\comments;c:\usr\troy\src\sword\modules\texts\rawtext;c:\usr\troy\src\sword\modules\texts;c:\usr\troy\src\sword\modules;c:\usr\troy\src\sword\keys;c:\usr\troy\src\sword\frontend\windoze\cbuilder;$(BCB)\lib\obj;$(BCB)\lib \
+ -Ic:\usr\troy\src\sword\frontend\windoze;c:\usr\troy\src\sword\frontend;c:\usr\troy\src\sword\utilfuns;c:\usr\troy\src\sword\modules\lexdict\rawld;c:\usr\troy\src\sword\modules\lexdict;c:\usr\troy\src\sword\modules\common;c:\usr\troy\src\sword\modules\comments\rawcom;c:\usr\troy\src\sword\modules\comments;c:\usr\troy\src\sword\modules\texts\rawtext;c:\usr\troy\src\sword\modules\texts;c:\usr\troy\src\sword\modules;c:\usr\troy\src\sword\keys;c:\usr\troy\src\sword\include;c:\usr\troy\src\sword\frontend\windoze\cbuilder;$(BCB)\lib\obj;$(BCB)\include;$(BCB)\include\vcl \
+ -v -$Y -$W -$O- -JPHNV -M
+RFLAGS = -ic:\usr\troy\src\sword\frontend\windoze;c:\usr\troy\src\sword\frontend;c:\usr\troy\src\sword\utilfuns;c:\usr\troy\src\sword\modules\lexdict\rawld;c:\usr\troy\src\sword\modules\lexdict;c:\usr\troy\src\sword\modules\common;c:\usr\troy\src\sword\modules\comments\rawcom;c:\usr\troy\src\sword\modules\comments;c:\usr\troy\src\sword\modules\texts\rawtext;c:\usr\troy\src\sword\modules\texts;c:\usr\troy\src\sword\modules;c:\usr\troy\src\sword\keys;c:\usr\troy\src\sword\include;c:\usr\troy\src\sword\frontend\windoze\cbuilder;$(BCB)\lib\obj;$(BCB)\include;$(BCB)\include\vcl
+LFLAGS = -jc:\usr\troy\src\sword\frontend;c:\usr\troy\src\sword\utilfuns;c:\usr\troy\src\sword\modules\lexdict\rawld;c:\usr\troy\src\sword\modules\lexdict;c:\usr\troy\src\sword\modules\common;c:\usr\troy\src\sword\modules\comments\rawcom;c:\usr\troy\src\sword\modules\comments;c:\usr\troy\src\sword\modules\texts\rawtext;c:\usr\troy\src\sword\modules\texts;c:\usr\troy\src\sword\modules;c:\usr\troy\src\sword\keys;c:\usr\troy\src\sword\frontend\windoze\cbuilder;$(BCB)\lib\obj;$(BCB)\lib \
+ -Lc:\usr\troy\src\sword\frontend;c:\usr\troy\src\sword\utilfuns;c:\usr\troy\src\sword\modules\lexdict\rawld;c:\usr\troy\src\sword\modules\lexdict;c:\usr\troy\src\sword\modules\common;c:\usr\troy\src\sword\modules\comments\rawcom;c:\usr\troy\src\sword\modules\comments;c:\usr\troy\src\sword\modules\texts\rawtext;c:\usr\troy\src\sword\modules\texts;c:\usr\troy\src\sword\modules;c:\usr\troy\src\sword\keys;c:\usr\troy\src\sword\frontend\windoze\cbuilder;$(BCB)\lib\obj;$(BCB)\lib \
+ -aa -Tpe -x -v -V4.0
+IFLAGS =
+LINKER = ilink32
+# ---------------------------------------------------------------------------
+ALLOBJ = c0w32.obj $(OBJFILES)
+ALLRES = $(RESFILES)
+ALLLIB = $(LIBFILES) vcl.lib import32.lib cp32mt.lib
+# ---------------------------------------------------------------------------
+.autodepend
+
+$(PROJECT): $(OBJFILES) $(RESDEPEN)
+ $(BCB)\BIN\$(LINKER) @&&!
+ $(LFLAGS) +
+ $(ALLOBJ), +
+ $(PROJECT),, +
+ $(ALLLIB),, +
+ $(ALLRES)
+!
+
+.pas.hpp:
+ $(BCB)\BIN\dcc32 $(PFLAGS) { $** }
+
+.pas.obj:
+ $(BCB)\BIN\dcc32 $(PFLAGS) { $** }
+
+.cpp.obj:
+ $(BCB)\BIN\bcc32 $(CFLAG1) $(CFLAG2) -o$* $*
+
+.c.obj:
+ $(BCB)\BIN\bcc32 $(CFLAG1) $(CFLAG2) -o$* $**
+
+.rc.res:
+ $(BCB)\BIN\brcc32 $(RFLAGS) $<
+#-----------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder1/swordvcl/Unit1.cpp b/apps/windoze/CBuilder1/swordvcl/Unit1.cpp
new file mode 100644
index 0000000..9909cdf
--- /dev/null
+++ b/apps/windoze/CBuilder1/swordvcl/Unit1.cpp
@@ -0,0 +1,14 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "Unit1.h"
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TForm1 *Form1;
+//---------------------------------------------------------------------------
+__fastcall TForm1::TForm1(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//--------------------------------------------------------------------------- \ No newline at end of file
diff --git a/apps/windoze/CBuilder1/swordvcl/Unit1.dfm b/apps/windoze/CBuilder1/swordvcl/Unit1.dfm
new file mode 100644
index 0000000..01b0653
--- /dev/null
+++ b/apps/windoze/CBuilder1/swordvcl/Unit1.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder1/swordvcl/Unit1.h b/apps/windoze/CBuilder1/swordvcl/Unit1.h
new file mode 100644
index 0000000..fdc1574
--- /dev/null
+++ b/apps/windoze/CBuilder1/swordvcl/Unit1.h
@@ -0,0 +1,21 @@
+//---------------------------------------------------------------------------
+#ifndef Unit1H
+#define Unit1H
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+//---------------------------------------------------------------------------
+class TForm1 : public TForm
+{
+__published: // IDE-managed Components
+private: // User declarations
+public: // User declarations
+ virtual __fastcall TForm1(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TForm1 *Form1;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder1/swordvcl/swordcomp.cpp b/apps/windoze/CBuilder1/swordvcl/swordcomp.cpp
new file mode 100644
index 0000000..e768ced
--- /dev/null
+++ b/apps/windoze/CBuilder1/swordvcl/swordcomp.cpp
@@ -0,0 +1,20 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "swordcomp.h"
+//---------------------------------------------------------------------------
+__fastcall TSWModule::TSWModule(TComponent* Owner)
+ : TComponent(Owner)
+{
+}
+//---------------------------------------------------------------------------
+namespace Swordcomp
+{
+ void __fastcall Register()
+ {
+ TComponentClass classes[1] = {__classid(TSWModule)};
+ RegisterComponents("SWORD", classes, 0);
+ }
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder1/swordvcl/swordcomp.h b/apps/windoze/CBuilder1/swordvcl/swordcomp.h
new file mode 100644
index 0000000..d9680bb
--- /dev/null
+++ b/apps/windoze/CBuilder1/swordvcl/swordcomp.h
@@ -0,0 +1,19 @@
+//---------------------------------------------------------------------------
+#ifndef swordcompH
+#define swordcompH
+//---------------------------------------------------------------------------
+#include <vcl\sysutils.hpp>
+#include <vcl\controls.hpp>
+#include <vcl\classes.hpp>
+#include <vcl\forms.hpp>
+//---------------------------------------------------------------------------
+class TSWModule : public TComponent
+{
+private:
+protected:
+public:
+ virtual __fastcall TSWModule(TComponent* Owner);
+__published:
+};
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder1/swordvcl/swordvcl.cpp b/apps/windoze/CBuilder1/swordvcl/swordvcl.cpp
new file mode 100644
index 0000000..c713f08
--- /dev/null
+++ b/apps/windoze/CBuilder1/swordvcl/swordvcl.cpp
@@ -0,0 +1,17 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+//---------------------------------------------------------------------------
+USEFORM("Unit1.cpp", Form1);
+USERES("swordvcl.res");
+USEUNIT("swordcomp.cpp");
+//---------------------------------------------------------------------
+WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
+{
+ Application->Initialize();
+ Application->CreateForm(__classid(TForm1), &Form1);
+ Application->Run();
+
+ return 0;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder1/swordvcl/swordvcl.mak b/apps/windoze/CBuilder1/swordvcl/swordvcl.mak
new file mode 100644
index 0000000..f5b5871
--- /dev/null
+++ b/apps/windoze/CBuilder1/swordvcl/swordvcl.mak
@@ -0,0 +1,60 @@
+# ---------------------------------------------------------------------------
+VERSION = BCB.01
+# ---------------------------------------------------------------------------
+!ifndef BCB
+BCB = $(MAKEDIR)\..
+!endif
+# ---------------------------------------------------------------------------
+PROJECT = swordvcl.exe
+OBJFILES = swordvcl.obj unit1.obj swordcomp.obj
+RESFILES = swordvcl.res
+RESDEPEN = $(RESFILES) unit1.dfm
+LIBFILES =
+# ---------------------------------------------------------------------------
+CFLAG1 = -w -Od -Hc -k -r- -y -v -vi- -c -a4 -b- -w-par -w-inl -Vx -Ve -x \
+ -WE
+CFLAG2 = -Id:\bordev\cbuilder\projects;c:\usr\troy\src\sword\frontend\windoze\cbuilder\swordvcl;$(BCB)\lib\obj;$(BCB)\include;$(BCB)\include\vcl \
+ -H=$(BCB)\lib\vcld.csm
+PFLAGS = -Ud:\bordev\cbuilder\projects;c:\usr\troy\src\sword\frontend\windoze\cbuilder\swordvcl;$(BCB)\lib\obj;$(BCB)\lib \
+ \
+ -Id:\bordev\cbuilder\projects;c:\usr\troy\src\sword\frontend\windoze\cbuilder\swordvcl;$(BCB)\lib\obj;$(BCB)\include;$(BCB)\include\vcl \
+ -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE \
+ -v -$Y -$W -$O- -JPHNV -M
+RFLAGS = -id:\bordev\cbuilder\projects;c:\usr\troy\src\sword\frontend\windoze\cbuilder\swordvcl;$(BCB)\lib\obj;$(BCB)\include;$(BCB)\include\vcl
+LFLAGS = -jd:\bordev\cbuilder\projects;c:\usr\troy\src\sword\frontend\windoze\cbuilder\swordvcl;$(BCB)\lib\obj;$(BCB)\lib \
+ \
+ -Ld:\bordev\cbuilder\projects;c:\usr\troy\src\sword\frontend\windoze\cbuilder\swordvcl;$(BCB)\lib\obj;$(BCB)\lib \
+ -aa -Tpe -x -v -V4.0
+IFLAGS =
+LINKER = ilink32
+# ---------------------------------------------------------------------------
+ALLOBJ = c0w32.obj $(OBJFILES)
+ALLRES = $(RESFILES)
+ALLLIB = $(LIBFILES) vcl.lib import32.lib cp32mt.lib
+# ---------------------------------------------------------------------------
+.autodepend
+
+$(PROJECT): $(OBJFILES) $(RESDEPEN)
+ $(BCB)\BIN\$(LINKER) @&&!
+ $(LFLAGS) +
+ $(ALLOBJ), +
+ $(PROJECT),, +
+ $(ALLLIB),, +
+ $(ALLRES)
+!
+
+.pas.hpp:
+ $(BCB)\BIN\dcc32 $(PFLAGS) { $** }
+
+.pas.obj:
+ $(BCB)\BIN\dcc32 $(PFLAGS) { $** }
+
+.cpp.obj:
+ $(BCB)\BIN\bcc32 $(CFLAG1) $(CFLAG2) -o$* $*
+
+.c.obj:
+ $(BCB)\BIN\bcc32 $(CFLAG1) $(CFLAG2) -o$* $**
+
+.rc.res:
+ $(BCB)\BIN\brcc32 $(RFLAGS) $<
+#-----------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder3/Makefile b/apps/windoze/CBuilder3/Makefile
new file mode 100644
index 0000000..bf4fc5d
--- /dev/null
+++ b/apps/windoze/CBuilder3/Makefile
@@ -0,0 +1,14 @@
+
+root := ../../..
+subdirs := BibleCS
+pre-targets :=
+include ${root}/Makefile.cfg
+
+
+s = $(c) $(cpp)
+d = $(c:%.c=%.d) $(cpp:%.cpp=%.d)
+o = $(c:%.c=%.o) $(cpp:%.cpp=%.o)
+
+ifneq ($(nodeps),yes)
+-include $(d)
+endif
diff --git a/apps/windoze/CBuilder4/BibleCS/AboutBoxfrm.cpp b/apps/windoze/CBuilder4/BibleCS/AboutBoxfrm.cpp
new file mode 100644
index 0000000..d511378
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/AboutBoxfrm.cpp
@@ -0,0 +1,92 @@
+//---------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "AboutBoxfrm.h"
+#include "mainfrm.h"
+//---------------------------------------------------------------------
+#pragma resource "*.dfm"
+TAboutBox *AboutBox;
+//---------------------------------------------------------------------
+__fastcall TAboutBox::TAboutBox(TComponent* AOwner) : TForm(AOwner) {
+}
+
+
+//---------------------------------------------------------------------
+void __fastcall TAboutBox::FormShow(TObject *Sender) {
+ int i;
+ static char *modtypes[] = {"Biblical Texts", "Commentaries", "Lexicons / Dictionaries"};
+
+ string newtext, tmptext;
+ ModMap::iterator it;
+ SectionMap::iterator it2;
+ ConfigEntMap::iterator it3;
+ TMemoryStream *RTFStream = new TMemoryStream();
+
+ newtext = "{\\rtf1\\ansi{\\fonttbl{\\f4\\froman\\fcharset0\\fprq2 Times New Roman;}}{\\colortbl;\\red0\\green0\\blue255;\\red0\\green200\\blue50;}";
+ newtext += "\\pard\\qc\\cf2\\nowidctlpar{\\fs30\\b Installed Modules } \\par \\pard \\nowidctlpar \\cf0 ";
+
+ for (i = 0; i < 3; i++) {
+ newtext += "\\par {\\fs28\\b ";
+ newtext += modtypes[i];
+ newtext += " }\\par \\par ";
+ for (it = Form1->mainmgr->Modules.begin(); it != Form1->mainmgr->Modules.end(); it++) {
+ if (!strcmp((*it).second->Type(), modtypes[i])) {
+ it2 = Form1->mainmgr->config->Sections.find((*it).second->Name());
+ if (it2 != Form1->mainmgr->config->Sections.end()) {
+ newtext = newtext + "{\\fs24\\cf1\\b " + (*it).second->Name() + " }\t";
+ newtext = newtext + "{\\fs24\\i " + (*it).second->Description() + " } \\par ";
+ it3 = (*it2).second.find("About");
+ if (it3 != (*it2).second.end())
+ newtext = newtext + "{\\fs20\\cf0 " + (*it3).second.c_str() + " }\\par \\par";
+ }
+ }
+ }
+ }
+ newtext += "{\\fs24 \\par }}";
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(newtext.c_str(), newtext.length());
+ RTFStream->Position = 0;
+ ModulesAbout->Lines->LoadFromStream(RTFStream);
+
+ newtext = "{\\rtf1\\ansi{\\fonttbl{\\f4\\froman\\fcharset0\\fprq2 Times New Roman;}}{\\colortbl;\\red0\\green0\\blue255;\\red0\\green200\\blue50;}";
+ newtext += "\\fs20 Thanx to God for His GREAT MERCY and LOVE: Never did anyone have so much, give it up so completely, to humble Himself and die such a death, all for such an ENEMY as me. -Philippians 2:6-8; Romans 5:6-10 \\par\\par ";
+ newtext += "For the latest updates and info, visit us on the net at: \\par ";
+ newtext += "http://www.crosswire.org \\par\\par ";
+ newtext += "Send us feedback, bug reports, or patches/additions: \\par ";
+ newtext += "sword-feedback@crosswire.org \\par ";
+ newtext += "sword-bugs@crosswire.org \\par ";
+ newtext += "sword-patches@crosswire.org (please include unified diffs if possible (diff -u)) \\par\\par ";
+ newtext += "To be on our mailing list: \\par ";
+ newtext += "sword-list-info@crosswire.org \\par\\par ";
+ newtext += "This software is provided free for the study of God and His Word. You DO NOT NEED TO license or pay for this software. Please: copy it freely and distribute it to athiests in Russia :), post it on your favorite FTP site, write your own modules and features for it, include it on your lastest freeware CDROM, incorporate all the cool utility classes into a product of your own, write a tract module for the program and sneak it onto all of your co-workers' computers and blame it on a virus, make fun of your pastor for spending $400 dollars on a similar package, give it to your pastor who can't figure out how to use his $400 dollar package :) \\par\\par ";
+ newtext += "OK, if you still feel the need, you can help our organization out at: \\par\\par ";
+ newtext += "CrossWire Software & Bible Society \\par ";
+ newtext += "P. O. Box 2528 \\par ";
+ newtext += "Tempe, AZ 85280-2528 \\par\\par ";
+ newtext += "... but I must warn you, your contributions will probably just go toward paying my way through college, or to give me a little more time to spend on the project :) \\par\\par ";
+ newtext += "\tMay the peace of GOD consume your heart, \\par ";
+ newtext += "\t\tThe SWORD Project Development Team \\par ";
+ newtext += "_________________________________________ \\par ";
+ newtext += "Thanks be to God for all the wonderful people who have contributed in so many ways to make this project possible. These are just a few (I could not possibly name them all) who have directly contributed an abundance of their time and talents: \\par\\par ";
+ newtext += "All the people at The Outpost in Scottsdale for testing and suggestions; ";
+ newtext += "The Bible Foundation: Jerry Kingery, Jerry Hastings; Geoffrey W. Hastings; ";
+ newtext += "William Dicks; Everyone on b-greek@franklin.oit.unc.edu; Michael Paul Johnson; ";
+ newtext += "Roland Nygren; Bayu Gunawan; Bill Kincaid; Mark Fuller; Larry Pierce; Franklin Bratcher; ";
+ newtext += "Gregory Hall; Luis Cortes; Steve Hiner; Kristof Petr; Paul Gear and OpenBible; Chris Bitmead (go Scheme!); ";
+ newtext += "Chris Little; Brook Humphrey; Torsten Uhlmann, Joachim Ansorg, Darwin Gregory and the BibleTime Team; ";
+ newtext += "Darren DeMeulenaere";
+ newtext += "\\par\\par ";
+ newtext += "{\\i And the list goes on...} \\par \\par ";
+ newtext += "{\\fs24 \\par }}";
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(newtext.c_str(), newtext.length());
+ RTFStream->Position = 0;
+ CreditAbout->Lines->LoadFromStream(RTFStream);
+ delete RTFStream;
+}
+//---------------------------------------------------------------------------
+
+
+
+
diff --git a/apps/windoze/CBuilder4/BibleCS/AboutBoxfrm.dfm b/apps/windoze/CBuilder4/BibleCS/AboutBoxfrm.dfm
new file mode 100644
index 0000000..3316b80
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/AboutBoxfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/AboutBoxfrm.h b/apps/windoze/CBuilder4/BibleCS/AboutBoxfrm.h
new file mode 100644
index 0000000..77da4f8
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/AboutBoxfrm.h
@@ -0,0 +1,36 @@
+//----------------------------------------------------------------------------
+#ifndef AboutBoxfrmH
+#define AboutBoxfrmH
+//----------------------------------------------------------------------------
+#include <vcl\System.hpp>
+#include <vcl\Windows.hpp>
+#include <vcl\SysUtils.hpp>
+#include <vcl\Classes.hpp>
+#include <vcl\Graphics.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Buttons.hpp>
+#include <vcl\ExtCtrls.hpp>
+#include <vcl\ComCtrls.hpp>
+//----------------------------------------------------------------------------
+class TAboutBox : public TForm
+{
+__published:
+ TPanel *Panel1;
+ TImage *ProgramIcon;
+ TLabel *ProductName;
+ TLabel *Version;
+ TLabel *Copyright;
+ TButton *OKButton;
+ TRichEdit *CreditAbout;
+ TRichEdit *ModulesAbout;
+ void __fastcall FormShow(TObject *Sender);
+private:
+public:
+ virtual __fastcall TAboutBox(TComponent* AOwner);
+};
+//----------------------------------------------------------------------------
+extern TAboutBox *AboutBox;
+//----------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/BibleCS/Makefile b/apps/windoze/CBuilder4/BibleCS/Makefile
new file mode 100644
index 0000000..ed02952
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/Makefile
@@ -0,0 +1,13 @@
+
+root := ../../../..
+pre-targets :=
+include ${root}/Makefile.cfg
+
+
+s = $(c) $(cpp)
+d = $(c:%.c=%.d) $(cpp:%.cpp=%.d)
+o = $(c:%.c=%.o) $(cpp:%.cpp=%.o)
+
+ifneq ($(nodeps),yes)
+-include $(d)
+endif
diff --git a/apps/windoze/CBuilder4/BibleCS/ModInstForm.cpp b/apps/windoze/CBuilder4/BibleCS/ModInstForm.cpp
new file mode 100644
index 0000000..1763817
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/ModInstForm.cpp
@@ -0,0 +1,14 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "ModInstForm.h"
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TModInstFrm *ModInstFrm;
+//---------------------------------------------------------------------------
+__fastcall TModInstFrm::TModInstFrm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//--------------------------------------------------------------------------- \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/ModInstForm.dfm b/apps/windoze/CBuilder4/BibleCS/ModInstForm.dfm
new file mode 100644
index 0000000..4e01f3d
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/ModInstForm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/ModInstForm.h b/apps/windoze/CBuilder4/BibleCS/ModInstForm.h
new file mode 100644
index 0000000..f0cb90a
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/ModInstForm.h
@@ -0,0 +1,27 @@
+//---------------------------------------------------------------------------
+#ifndef ModInstFormH
+#define ModInstFormH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ComCtrls.hpp>
+#include <vcl\ExtCtrls.hpp>
+//---------------------------------------------------------------------------
+class TModInstFrm : public TForm
+{
+__published: // IDE-managed Components
+ TRichEdit *AboutText;
+ TPanel *Panel1;
+ TButton *Button1;
+ TLabel *ModText;
+private: // User declarations
+public: // User declarations
+ __fastcall TModInstFrm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TModInstFrm *ModInstFrm;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/RangeMaintFrm.cpp b/apps/windoze/CBuilder4/BibleCS/RangeMaintFrm.cpp
new file mode 100644
index 0000000..ef84061
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/RangeMaintFrm.cpp
@@ -0,0 +1,130 @@
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+
+#include "RangeMaintFrm.h"
+#include <versekey.h>
+#include <listkey.h>
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TRangeMaintForm *RangeMaintForm;
+
+//---------------------------------------------------------------------------
+__fastcall TRangeMaintForm::TRangeMaintForm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::FormShow(TObject *Sender)
+{
+ ConfigEntMap::iterator loop, end;
+ config = new SWConfig("./options.conf");
+ ListBox1->Clear();
+ loop = config->Sections["CustomRanges"].begin();
+ end = config->Sections["CustomRanges"].end();
+ while (loop != end) {
+ TCustomRange *rs = new TCustomRange(loop->first.c_str(), loop->second.c_str());
+ ListBox1->Items->AddObject(rs->name.c_str(), rs);
+ loop++;
+ }
+ ListBox1->ItemIndex = 0;
+ if (ListBox1->ItemIndex) {
+ SpeedButton1Click(0);
+ }
+ else {
+ ListBox1Click(0);
+ Button1Click(0);
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::FormClose(TObject *Sender,
+ TCloseAction &Action)
+{
+ delete config;
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::SpeedButton4Click(TObject *Sender)
+{
+ ModalResult = mrCancel;
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::ListBox1Click(TObject *Sender)
+{
+ if (ListBox1->ItemIndex >= 0) {
+ TCustomRange *rs = (TCustomRange *)ListBox1->Items->Objects[ListBox1->ItemIndex];
+
+ NameEdit->Text = rs->name.c_str();
+ TextEdit->Text = rs->text.c_str();
+ }
+ else {
+ NameEdit->Text = "";
+ TextEdit->Text = "";
+ }
+ Button1Click(0);
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::NameEditChange(TObject *Sender)
+{
+ if (ListBox1->ItemIndex < 0)
+ return;
+ TCustomRange *rs = (TCustomRange *)ListBox1->Items->Objects[ListBox1->ItemIndex];
+ rs->name = NameEdit->Text.c_str();
+ ListBox1->Items->Strings[ListBox1->ItemIndex] = rs->name.c_str();
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::TextEditChange(TObject *Sender)
+{
+ if (ListBox1->ItemIndex < 0)
+ return;
+ TCustomRange *rs = (TCustomRange *)ListBox1->Items->Objects[ListBox1->ItemIndex];
+ rs->text = TextEdit->Text.c_str();
+ Button1Click(0);
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::SpeedButton2Click(TObject *Sender)
+{
+ if (ListBox1->ItemIndex < 0)
+ return;
+ int delItem = ListBox1->ItemIndex;
+ ListBox1->Items->Delete(delItem);
+ ListBox1->ItemIndex = (delItem < ListBox1->Items->Count) ? delItem : delItem - 1;
+ ListBox1Click(0);
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::SpeedButton1Click(TObject *Sender)
+{
+ TCustomRange *rs = new TCustomRange("[New Custom Range]", "");
+ ListBox1->ItemIndex = ListBox1->Items->AddObject(rs->name.c_str(), rs);
+
+ ListBox1Click(0);
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::SpeedButton3Click(TObject *Sender)
+{
+ TCustomRange *rs;
+ config->Sections["CustomRanges"].erase(config->Sections["CustomRanges"].begin(), config->Sections["CustomRanges"].end());
+ for (int i = 0; i < ListBox1->Items->Count; i++) {
+ rs = (TCustomRange *)ListBox1->Items->Objects[i];
+ config->Sections["CustomRanges"].insert(ConfigEntMap::value_type(rs->name.c_str(), rs->text.c_str()));
+ }
+ config->Save();
+ ModalResult = mrOk;
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::Button1Click(TObject *Sender)
+{
+ VerseKey key;
+ ListBox2->Clear();
+ ListKey verses = key.ParseVerseList(TextEdit->Text.c_str(), key, true);
+ for (int i = 0; i < verses.Count(); i++) {
+ VerseKey *element = dynamic_cast<VerseKey *>(verses.GetElement(i));
+ if (element) {
+ ListBox2->Items->Add((string(element->LowerBound()) + " - " + string(element->UpperBound())).c_str());
+ }
+ else ListBox2->Items->Add((const char *)*verses.GetElement(i));
+ }
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder4/BibleCS/RangeMaintFrm.dfm b/apps/windoze/CBuilder4/BibleCS/RangeMaintFrm.dfm
new file mode 100644
index 0000000..91bee28
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/RangeMaintFrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/RangeMaintFrm.h b/apps/windoze/CBuilder4/BibleCS/RangeMaintFrm.h
new file mode 100644
index 0000000..e279783
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/RangeMaintFrm.h
@@ -0,0 +1,64 @@
+//---------------------------------------------------------------------------
+
+#ifndef RangeMaintFrmH
+#define RangeMaintFrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <Buttons.hpp>
+#include <ExtCtrls.hpp>
+#include <swconfig.h>
+//---------------------------------------------------------------------------
+class TRangeMaintForm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel4;
+ TSpeedButton *SpeedButton3;
+ TSpeedButton *SpeedButton4;
+ TPanel *Panel2;
+ TPanel *Panel1;
+ TPanel *Panel3;
+ TSpeedButton *SpeedButton1;
+ TSpeedButton *SpeedButton2;
+ TListBox *ListBox1;
+ TPanel *Panel5;
+ TLabel *Label1;
+ TLabel *Label2;
+ TEdit *NameEdit;
+ TEdit *TextEdit;
+ TPanel *Panel6;
+ TListBox *ListBox2;
+ TLabel *Label3;
+ void __fastcall FormShow(TObject *Sender);
+ void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
+ void __fastcall SpeedButton4Click(TObject *Sender);
+ void __fastcall ListBox1Click(TObject *Sender);
+ void __fastcall NameEditChange(TObject *Sender);
+ void __fastcall TextEditChange(TObject *Sender);
+ void __fastcall SpeedButton2Click(TObject *Sender);
+ void __fastcall SpeedButton1Click(TObject *Sender);
+ void __fastcall SpeedButton3Click(TObject *Sender);
+ void __fastcall Button1Click(TObject *Sender);
+private: // User declarations
+ SWConfig *config;
+public: // User declarations
+ __fastcall TRangeMaintForm(TComponent* Owner);
+};
+
+class TCustomRange : public TObject {
+public:
+ string name;
+ string text;
+ TCustomRange(const char *name, const char *text) {
+ this->name = name;
+ this->text = text;
+ }
+};
+
+
+//---------------------------------------------------------------------------
+extern PACKAGE TRangeMaintForm *RangeMaintForm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/BibleCS/back.bmp b/apps/windoze/CBuilder4/BibleCS/back.bmp
new file mode 100644
index 0000000..e1f0f93
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/back.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/biblecsmgr.cpp b/apps/windoze/CBuilder4/BibleCS/biblecsmgr.cpp
new file mode 100644
index 0000000..306340a
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/biblecsmgr.cpp
@@ -0,0 +1,80 @@
+//---------------------------------------------------------------------------
+#include "BibleCSMGR.h"
+#include <swconfig.h>
+#include <gbfrtf.h>
+#include <rwprtf.h>
+#include <rawgbf.h>
+//---------------------------------------------------------------------------
+BibleCSMGR::BibleCSMGR(TModInstFrm *iModInstFrm) : SWMgr(0, 0, false)
+{
+ gbftortf = new GBFRTF();
+ rwptortf = new RWPRTF();
+ ModInstFrm = iModInstFrm;
+ Load();
+}
+
+
+BibleCSMGR::~BibleCSMGR()
+{
+ if (gbftortf)
+ delete gbftortf;
+
+ if (rwptortf)
+ delete rwptortf;
+}
+
+
+void BibleCSMGR::AddRenderFilters(SWModule *module, ConfigEntMap &section)
+{
+ string sourceformat;
+ ConfigEntMap::iterator entry;
+
+ sourceformat = ((entry = section.find("SourceType")) != section.end()) ? (*entry).second : (string)"";
+ // Temporary: To support old module types
+ if (sourceformat.empty()) {
+ try {
+ if (dynamic_cast<RawGBF *>(module))
+ sourceformat = "GBF";
+ }
+ catch ( ... ) {}
+ }
+
+ if (!stricmp(sourceformat.c_str(), "GBF")) {
+ module->AddRenderFilter(gbftortf);
+ }
+
+ if (!stricmp(module->Name(), "RWP"))
+ module->AddRenderFilter(rwptortf);
+}
+
+
+char BibleCSMGR::AddModToConfig(int conffd, const char *fname)
+{
+ SWConfig modconf(fname);
+ SectionMap::iterator section;
+ AnsiString abouttext = "";
+ bool logflag;
+ TMemoryStream *RTFStream = new TMemoryStream();
+ char retval;
+
+ section = modconf.Sections.begin();
+
+ ModInstFrm->ModText->Caption = "";
+ ModInstFrm->ModText->Caption = ModInstFrm->ModText->Caption + "Found new module [ " + (*(*section).second.find("Description")).second.c_str() + " ]. Installing...";
+
+ abouttext = abouttext + "{\\fs20\\cf0 " + (*(*section).second.find("About")).second.c_str() + " }";
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(abouttext.c_str(), abouttext.Length());
+ RTFStream->Position = 0;
+ ModInstFrm->AboutText->Lines->LoadFromStream(RTFStream);
+ delete RTFStream;
+
+ ModInstFrm->ShowModal();
+
+ logflag = SWLog::systemlog->log;
+ SWLog::systemlog->log = false;
+ retval = SWMgr::AddModToConfig(conffd, fname);
+ SWLog::systemlog->log = logflag;
+
+ return retval;
+}
diff --git a/apps/windoze/CBuilder4/BibleCS/biblecsmgr.h b/apps/windoze/CBuilder4/BibleCS/biblecsmgr.h
new file mode 100644
index 0000000..61600ee
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/biblecsmgr.h
@@ -0,0 +1,22 @@
+//---------------------------------------------------------------------------
+#ifndef biblecsmgrH
+#define biblecsmgrH
+#include <swmgr.h>
+#include "ModInstForm.h"
+//---------------------------------------------------------------------------
+class BibleCSMGR : public SWMgr {
+ TModInstFrm *ModInstFrm;
+ SWFilter *gbftortf;
+ SWFilter *rwptortf;
+
+protected:
+ virtual char AddModToConfig(int conffd, const char *fname);
+ virtual void AddRenderFilters(SWModule *module, ConfigEntMap &section);
+
+public:
+ BibleCSMGR(TModInstFrm *iModInstFrm);
+ virtual ~BibleCSMGR();
+};
+
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/bookmark.bmp b/apps/windoze/CBuilder4/BibleCS/bookmark.bmp
new file mode 100644
index 0000000..4b6df0c
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/bookmark.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/bookmarkfrm.cpp b/apps/windoze/CBuilder4/BibleCS/bookmarkfrm.cpp
new file mode 100644
index 0000000..58c5f73
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/bookmarkfrm.cpp
@@ -0,0 +1,221 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "bookmarkfrm.h"
+#include <swconfig.h>
+#include <dirent.h>
+#include "mainfrm.h"
+#include "newbmfilefrm.h"
+#include <io.h>
+#include <dir.h>
+
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TBookmarksfrm *Bookmarksfrm;
+//---------------------------------------------------------------------------
+__fastcall TBookmarksfrm::TBookmarksfrm(TComponent* Owner)
+ : TForm(Owner)
+{
+ SWConfig *bookmarks;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ TTreeNode *node;
+
+ DIR *dir;
+ struct dirent *ent;
+ string conffile;
+ bmdir = "";
+
+ bmtree->Items->Clear();
+
+ if ((sit = Form1->optionsconf->Sections.find("Bookmarks")) != Form1->optionsconf->Sections.end())
+ bmdir = ((eit = (*sit).second.find("Directory")) != (*sit).second.end()) ? (*eit).second : (string)"";
+
+// Add Personal Bookmarks first, or if they don't exist, ADD A BLANK BRANCH first in the tree
+// --------------------------------------------------------------------------
+
+ if (bmdir == "")
+ bmdir = "./bookmarks/";
+
+ if (access(bmdir.c_str(), 0)) { // directory does not exist
+ _mkdir(bmdir.c_str());
+ }
+
+ conffile = bmdir + "personal.conf";
+ bookmarks = new SWConfig(conffile.c_str());
+ if ((sit = bookmarks->Sections.find("ROOT")) != bookmarks->Sections.end()) {
+ if ((eit = (*sit).second.begin()) != (*sit).second.end()) {
+ node = bmtree->Items->AddObject(bmtree->Selected, (*eit).second.c_str(), *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ AddSection(bookmarks, bmtree, node, (*eit).first.c_str());
+ }
+ }
+ else bmtree->Items->AddObject(bmtree->Selected, "Personal Bookmarks", *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ delete bookmarks;
+// --------------------------------------------------------------------------
+
+// Add all other bookmark files ---------------------------------------------
+ if (dir = opendir(bmdir.c_str())) {
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, "personal.conf")) && (strcmp(ent->d_name, "."))&& (strcmp(ent->d_name, ".."))) {
+ conffile = bmdir;
+ conffile += ent->d_name;
+ bookmarks = new SWConfig(conffile.c_str());
+ if ((sit = bookmarks->Sections.find("ROOT")) != bookmarks->Sections.end()) {
+ if ((eit = (*sit).second.begin()) != (*sit).second.end()) { // Currently supports only ONE topsection per file because on save, each topsection designates which file to rewrite
+ node = bmtree->Items->AddObject(bmtree->Selected, (*eit).second.c_str(), *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ AddSection(bookmarks, bmtree, node, (*eit).first.c_str());
+ }
+ }
+ delete bookmarks;
+ }
+ }
+ closedir(dir);
+ }
+}
+
+
+__fastcall TBookmarksfrm::~TBookmarksfrm() {
+ list <String *>::iterator it;
+
+ SaveBookmarks();
+
+ for (it = bmfiles.begin(); it != bmfiles.end(); it++)
+ delete *it;
+}
+
+
+//---------------------------------------------------------------------------
+
+void TBookmarksfrm::AddSection(SWConfig *config, TTreeView *tree, TTreeNode *parent, String section)
+{
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ TTreeNode *node;
+
+ if ((sit = config->Sections.find(section.c_str())) != config->Sections.end()) {
+ for (eit = (*sit).second.begin(); eit != (*sit).second.end(); eit++) {
+ node = tree->Items->AddChild(parent, (*eit).second.c_str());
+ AddSection(config, tree, node, (*eit).first.c_str());
+ }
+ }
+}
+
+
+void __fastcall TBookmarksfrm::bmtreeDragDrop(TObject *Sender, TObject *Source,
+ int X, int Y)
+{
+ bmtree->Selected->MoveTo(bmtree->DropTarget, naAddChildFirst);
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::bmtreeDragOver(TObject *Sender, TObject *Source,
+ int X, int Y, TDragState State, bool &Accept)
+{
+ Accept = false;
+
+ if (String(Source->ClassName()) == "TTreeView") {
+ if (Source == bmtree) {
+ if (bmtree->Selected->Data) {
+ if (strcmp((*(String*)(bmtree->Selected->Data)).c_str(),(bmdir + "personal.conf").c_str())) {
+ Accept = true;
+ }
+ }
+ else Accept = true;
+ }
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::bmtreeDblClick(TObject *Sender)
+{
+ if (!bmtree->Selected->getFirstChild()) {
+ Form1->DefaultVSKey = bmtree->Selected->Text.c_str();
+ Form1->TextKeyChanged();
+ }
+
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::AddChild1Click(TObject *Sender)
+{
+ bmtree->Selected->Expand(false);
+ bmtree->Items->AddChildFirst(bmtree->Selected, "New Topic")->EditText();
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::Delete1Click(TObject *Sender)
+{
+ if (bmtree->Selected->Data) {
+ if (strcmp((*(String*)(bmtree->Selected->Data)).c_str(),(bmdir + "personal.conf").c_str())) {
+ bmtree->Selected->Delete();
+ }
+ }
+ else bmtree->Selected->Delete();
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::Rename1Click(TObject *Sender)
+{
+ bmtree->Selected->EditText();
+}
+//---------------------------------------------------------------------------
+
+void TBookmarksfrm::SaveBookmarks()
+{
+ TTreeNode *tree = 0;
+ SWConfig *bmconf;
+ ConfigEntMap emap;
+ SectionMap::iterator sit;
+ char buf[15];
+ bool personal, other;
+ list <String *>::iterator it;
+ string persfile;
+
+ if (bmtree->Items->Count)
+ tree = bmtree->Items->Item[0];
+
+ if ((sit = Form1->optionsconf->Sections.find("Bookmarks")) != Form1->optionsconf->Sections.end()) {
+ personal = (atoi((*(*sit).second.find("AutoSavePersonal")).second.c_str())) ? true:false;
+ other = (atoi((*(*sit).second.find("AutoSaveOther")).second.c_str())) ? true:false;
+ }
+
+ persfile = bmdir + "personal.conf";
+ for (it = bmfiles.begin(); it != bmfiles.end(); it++) { // delete all bookmark files before saving in case a top level was deleted
+ if (((!strcmp((*it)->c_str(), persfile.c_str())) && personal) || ((strcmp((*it)->c_str(), persfile.c_str())) && other))
+ unlink((*it)->c_str());
+ }
+
+ for (;tree;tree = tree->getNextSibling()) {
+ if (((*((String *)tree->Data) == persfile.c_str()) && personal) || ((*((String *)tree->Data) != persfile.c_str()) && other)) {
+ bmconf = new SWConfig(((String *)tree->Data)->c_str());
+ emap = bmconf->Sections["ROOT"];
+ sprintf(buf, "branch%d", tree->AbsoluteIndex);
+ emap.erase(buf); emap.insert(ConfigEntMap::value_type(buf, tree->Text.c_str()));
+ AddSectionToConf(bmconf, buf, tree);
+ bmconf->Sections["ROOT"] = emap;
+ bmconf->Save();
+ delete bmconf;
+ }
+ }
+}
+
+
+void TBookmarksfrm::AddSectionToConf(SWConfig *config, String section, TTreeNode *tree) {
+ ConfigEntMap sit;
+ char buf[15];
+
+ if (tree = tree->getFirstChild()) {
+ sit = config->Sections[section.c_str()];
+ for (; tree; tree = tree->getNextSibling()) {
+ sprintf(buf, "branch%d", tree->AbsoluteIndex);
+ sit.erase(buf); sit.insert(ConfigEntMap::value_type(buf, tree->Text.c_str()));
+ AddSectionToConf(config, buf, tree);
+ }
+ config->Sections[section.c_str()] = sit;
+ }
+}
+
+void __fastcall TBookmarksfrm::NewBookmarkFile1Click(TObject *Sender)
+{
+ if (NewBMfrm->ShowModal() == mrOk) {
+ bmtree->Items->AddObject(bmtree->Items->Item[0], NewBMfrm->bmtitle->Text, *bmfiles.insert(bmfiles.begin(), new String(String(bmdir.c_str()) + NewBMfrm->bmfile->Text + String(".conf"))));
+ }
+}
+//--------------------------------------------------------------------------- \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/bookmarkfrm.dfm b/apps/windoze/CBuilder4/BibleCS/bookmarkfrm.dfm
new file mode 100644
index 0000000..deb814d
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/bookmarkfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/bookmarkfrm.h b/apps/windoze/CBuilder4/BibleCS/bookmarkfrm.h
new file mode 100644
index 0000000..4c37796
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/bookmarkfrm.h
@@ -0,0 +1,48 @@
+//---------------------------------------------------------------------------
+#ifndef bookmarkfrmH
+#define bookmarkfrmH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ComCtrls.hpp>
+#include <swconfig.h>
+#include <vcl\Menus.hpp>
+#include <list>
+//---------------------------------------------------------------------------
+class TBookmarksfrm : public TForm
+{
+__published: // IDE-managed Components
+ TTreeView *bmtree;
+ TPopupMenu *BMPopup;
+ TMenuItem *Delete1;
+ TMenuItem *AddChild1;
+ TMenuItem *Rename1;
+ TMenuItem *N1;
+ TMenuItem *NewBookmarkFile1;
+ void __fastcall bmtreeDragDrop(TObject *Sender, TObject *Source, int X, int Y);
+ void __fastcall bmtreeDragOver(TObject *Sender, TObject *Source, int X, int Y,
+ TDragState State, bool &Accept);
+ void __fastcall bmtreeDblClick(TObject *Sender);
+ void __fastcall AddChild1Click(TObject *Sender);
+ void __fastcall Delete1Click(TObject *Sender);
+ void __fastcall Rename1Click(TObject *Sender);
+ void __fastcall NewBookmarkFile1Click(TObject *Sender);
+private: // User declarations
+ void AddSection(SWConfig *config, TTreeView *tree, TTreeNode *parent, String section);
+ list <String *> bmfiles; // so we can delete each display we create
+
+
+public: // User declarations
+ string bmdir;
+ __fastcall TBookmarksfrm(TComponent* Owner);
+ __fastcall ~TBookmarksfrm();
+ void SaveBookmarks();
+ void AddSectionToConf(SWConfig *config, String section, TTreeNode *tree);
+};
+//---------------------------------------------------------------------------
+extern TBookmarksfrm *Bookmarksfrm;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/bookmarks/personal.conf b/apps/windoze/CBuilder4/BibleCS/bookmarks/personal.conf
new file mode 100644
index 0000000..b4af089
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/bookmarks/personal.conf
@@ -0,0 +1,7 @@
+
+[ROOT]
+branch0=Personal Bookmarks
+
+[branch0]
+branch1=James 1:19
+
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/InstallBtn.BMP b/apps/windoze/CBuilder4/BibleCS/cdstartup/InstallBtn.BMP
new file mode 100644
index 0000000..1a4cc45
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/InstallBtn.BMP
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/RunBtn.BMP b/apps/windoze/CBuilder4/BibleCS/cdstartup/RunBtn.BMP
new file mode 100644
index 0000000..dc698d5
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/RunBtn.BMP
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/alpha.bmp b/apps/windoze/CBuilder4/BibleCS/cdstartup/alpha.bmp
new file mode 100644
index 0000000..8357474
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/alpha.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/cdstartup.bpr b/apps/windoze/CBuilder4/BibleCS/cdstartup/cdstartup.bpr
new file mode 100644
index 0000000..8c2df01
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/cdstartup.bpr
@@ -0,0 +1,182 @@
+# ---------------------------------------------------------------------------
+!if !$d(BCB)
+BCB = $(MAKEDIR)\..
+!endif
+
+# ---------------------------------------------------------------------------
+# IDE SECTION
+# ---------------------------------------------------------------------------
+# The following section of the project makefile is managed by the BCB IDE.
+# It is recommended to use the IDE to change any of the values in this
+# section.
+# ---------------------------------------------------------------------------
+
+VERSION = BCB.04.04
+# ---------------------------------------------------------------------------
+PROJECT = cdstartup.exe
+OBJFILES = cdstartup.obj mainfrm.obj
+RESFILES = cdstartup.res
+RESDEPEN = $(RESFILES) mainfrm.dfm
+LIBFILES =
+LIBRARIES = vcl40.lib
+SPARELIBS = vcl40.lib
+DEFFILE =
+PACKAGES = vclx40.bpi vcl40.bpi vcldb40.bpi vcldbx40.bpi ibsmp40.bpi bcbsmp40.bpi \
+ dclocx40.bpi qrpt40.bpi teeui40.bpi vclsmp40.bpi teedb40.bpi tee40.bpi \
+ dss40.bpi nmfast40.bpi inetdb40.bpi inet40.bpi vclmid40.bpi
+# ---------------------------------------------------------------------------
+PATHCPP = .;
+PATHASM = .;
+PATHPAS = .;
+PATHRC = .;
+DEBUGLIBPATH = $(BCB)\lib\debug
+RELEASELIBPATH = $(BCB)\lib\release
+SYSDEFINES = NO_STRICT
+USERDEFINES =
+# ---------------------------------------------------------------------------
+CFLAG1 = -I$(BCB)\include;$(BCB)\include\vcl -O2 -Hc -H=$(BCB)\lib\vcl40.csm -w -Ve -a8 \
+ -k- -vi -D$(SYSDEFINES);$(USERDEFINES) -c -b- -w-par -w-inl -Vx -tW -tWM
+CFLAG2 =
+CFLAG3 =
+PFLAGS = -U$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) \
+ -I$(BCB)\include;$(BCB)\include\vcl -$YD -v -M -JPHNE
+RFLAGS = -i$(BCB)\include;$(BCB)\include\vcl
+AFLAGS = /i$(BCB)\include /i$(BCB)\include\vcl /mx /w2 /zn /d_RTLDLL
+LFLAGS = -L$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) -aa -Tpe -x
+IFLAGS =
+# ---------------------------------------------------------------------------
+ALLOBJ = c0w32.obj $(OBJFILES)
+ALLRES = $(RESFILES)
+ALLLIB = $(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib
+# ---------------------------------------------------------------------------
+!ifdef IDEOPTIONS
+
+[Version Info]
+IncludeVerInfo=1
+AutoIncBuild=0
+MajorVer=1
+MinorVer=4
+Release=5
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=CrossWire Software & Bible Society
+FileDescription=The SWORD Project CD Installer
+FileVersion=1.4.5.0
+InternalName=cdstartup
+LegalCopyright=(c) 1998 CrossWire Software under the GNU General Public License
+LegalTrademarks=
+OriginalFilename=
+ProductName=The SWORD Project
+ProductVersion=1.4.5
+Comments=Seek Him and you will find Him
+
+[HistoryLists\hlIncludePath]
+Count=1
+Item0=$(BCB)\include;$(BCB)\include\vcl
+
+[HistoryLists\hlLibraryPath]
+Count=1
+Item0=$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+InMemoryExe=0
+ShowInfoMsgs=0
+
+!endif
+
+# ---------------------------------------------------------------------------
+# MAKE SECTION
+# ---------------------------------------------------------------------------
+# This section of the project file is not used by the BCB IDE. It is for
+# the benefit of building from the command-line using the MAKE utility.
+# ---------------------------------------------------------------------------
+
+.autodepend
+# ---------------------------------------------------------------------------
+!if !$d(BCC32)
+BCC32 = bcc32
+!endif
+
+!if !$d(DCC32)
+DCC32 = dcc32
+!endif
+
+!if !$d(TASM32)
+TASM32 = tasm32
+!endif
+
+!if !$d(LINKER)
+LINKER = ilink32
+!endif
+
+!if !$d(BRCC32)
+BRCC32 = brcc32
+!endif
+# ---------------------------------------------------------------------------
+!if $d(PATHCPP)
+.PATH.CPP = $(PATHCPP)
+.PATH.C = $(PATHCPP)
+!endif
+
+!if $d(PATHPAS)
+.PATH.PAS = $(PATHPAS)
+!endif
+
+!if $d(PATHASM)
+.PATH.ASM = $(PATHASM)
+!endif
+
+!if $d(PATHRC)
+.PATH.RC = $(PATHRC)
+!endif
+# ---------------------------------------------------------------------------
+$(PROJECT): $(OBJFILES) $(RESDEPEN) $(DEFFILE)
+ $(BCB)\BIN\$(LINKER) @&&!
+ $(LFLAGS) $(IFLAGS) +
+ $(ALLOBJ), +
+ $(PROJECT),, +
+ $(ALLLIB), +
+ $(DEFFILE), +
+ $(ALLRES)
+!
+# ---------------------------------------------------------------------------
+.pas.hpp:
+ $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
+
+.pas.obj:
+ $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
+
+.cpp.obj:
+ $(BCB)\BIN\$(BCC32) $(CFLAG1) $(CFLAG2) $(CFLAG3) -n$(@D) {$< }
+
+.c.obj:
+ $(BCB)\BIN\$(BCC32) $(CFLAG1) $(CFLAG2) $(CFLAG3) -n$(@D) {$< }
+
+.asm.obj:
+ $(BCB)\BIN\$(TASM32) $(AFLAGS) $<, $@
+
+.rc.res:
+ $(BCB)\BIN\$(BRCC32) $(RFLAGS) -fo$@ $<
+# ---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/cdstartup.cpp b/apps/windoze/CBuilder4/BibleCS/cdstartup/cdstartup.cpp
new file mode 100644
index 0000000..9f2f8c7
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/cdstartup.cpp
@@ -0,0 +1,21 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+USERES("cdstartup.res");
+USEFORM("mainfrm.cpp", Form1);
+//---------------------------------------------------------------------------
+WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
+{
+ try
+ {
+ Application->Initialize();
+ Application->CreateForm(__classid(TForm1), &Form1);
+ Application->Run();
+ }
+ catch (Exception &exception)
+ {
+ Application->ShowException(&exception);
+ }
+ return 0;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/cdstartup.res b/apps/windoze/CBuilder4/BibleCS/cdstartup/cdstartup.res
new file mode 100644
index 0000000..ad713e3
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/cdstartup.res
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/html/Alpha/index.html b/apps/windoze/CBuilder4/BibleCS/cdstartup/html/Alpha/index.html
new file mode 100644
index 0000000..698fea2
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/html/Alpha/index.html
@@ -0,0 +1,246 @@
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
+ <META NAME="Author" CONTENT="Scribe">
+ <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; I) [Netscape]">
+ <TITLE>The SWORD Project: ALPHA Test Program</TITLE>
+</HEAD>
+<BODY>
+Problems/Bugs found on the ALPHA distribution;
+<TABLE BORDER WIDTH="100%" >
+<TR>
+<TD><B>Problem</B></TD>
+
+<TD><B>Distributions Affected</B></TD>
+
+<TD><B>Comments / Workaround</B></TD>
+</TR>
+
+<TR>
+<TD>Why won't my greek text show up GREEK!</TD>
+
+<TD>All</TD>
+
+<TD>I don't know how to install fonts via InstallShield.&nbsp; Any help
+would be appreciated.&nbsp; To workaround this problem:&nbsp;
+<BR>Go to Windows Control Panel; double-click the Fonts icon; from the
+menu choose: File|Install New Font...; browse (on the CD) to sword\modules\texts\rawtext\nu;
+select the font therein. REBOOT</TD>
+</TR>
+</TABLE>
+Click <A HREF="mailto:sword-bugs@crosswire.org">here</A> to report bugs
+<BR>Click <A HREF="mailto:sword-feedback@crosswire.org">here</A> to send
+comments
+<BR>Click here to enter the Java-based bug reporting tool. [Not implemented
+yet]
+<BR>&nbsp;
+<BR>&nbsp;
+
+<P><B><FONT SIZE=+2>Download</FONT></B>
+<UL><A HREF="sword.exe">sword.exe</A> (v0.1.4; 716,800 bytes; 04-Mar-1998)&nbsp;&nbsp;&nbsp;
+GUI frontend (Latest changes below)
+<UL><A HREF="options.conf">options.conf</A>&nbsp;&nbsp;&nbsp; Put this
+file in the same directory as <B>sword.exe</B>
+<BR>Create a subdirectory called <B>bookmarks</B> under the same directory
+as <B>sword.exe</B>.&nbsp; Put these files there.
+<UL><A HREF="wtbsa.conf">wtbsa.conf</A>&nbsp;&nbsp;&nbsp; example custom
+bookmarks
+<BR><A HREF="getsaved.conf">getsaved.conf</A>&nbsp;&nbsp;&nbsp; example
+custom bookmarks</UL>
+</UL>
+</UL>
+&nbsp;
+<TABLE BORDER WIDTH="100%" >
+<TR>
+<TD><B>Date</B></TD>
+
+<TD><B>Description</B></TD>
+
+<TD><B>Ref.</B></TD>
+</TR>
+
+<TR>
+<TD>04-Mar-1998</TD>
+
+<TD>Added Directory= option in the Bookmarks section of options.conf allowing
+a custom location (to accommodate bookmark saves when running from CDROM)</TD>
+
+<TD></TD>
+</TR>
+
+<TR>
+<TD>04-Mar-1998</TD>
+
+<TD>Handled creation of bookmarks directory if it does not exist</TD>
+
+<TD></TD>
+</TR>
+
+<TR>
+<TD>04-Mar-1998</TD>
+
+<TD>Added restrictions to Personal Bookmarks in the Edit Bookmarks tree</TD>
+
+<TD></TD>
+</TR>
+
+<TR>
+<TD>26-Feb-1998b</TD>
+
+<TD>Enabled Statusbar and added some hint texts to a few controls</TD>
+
+<TD></TD>
+</TR>
+
+<TR>
+<TD>26-Feb-1998b</TD>
+
+<TD>Stretched controls to prevent clipping of text</TD>
+
+<TD>Hastings, J</TD>
+</TR>
+
+<TR>
+<TD>26-Feb-1998</TD>
+
+<TD>Changed Book DropDown to DropDownList and reset CH and VS on change</TD>
+
+<TD>Williams,&nbsp;
+<BR>Hastings, J</TD>
+</TR>
+
+<TR>
+<TD>26-Feb-1998</TD>
+
+<TD>Added Greek2Greek patch</TD>
+
+<TD>Dicks</TD>
+</TR>
+
+<TR>
+<TD>25-Feb-1998</TD>
+
+<TD>Added Options Screen (need file: options.conf)</TD>
+
+<TD>Moore</TD>
+</TR>
+
+<TR>
+<TD>25-Feb-1998</TD>
+
+<TD>Added Bookmarks (need directory ./bookmarks)</TD>
+
+<TD></TD>
+</TR>
+
+<TR>
+<TD>25-Feb-1998</TD>
+
+<TD>Added stable Back Button routines</TD>
+
+<TD></TD>
+</TR>
+
+<TR>
+<TD>25-Feb-1998</TD>
+
+<TD>Added Search Button</TD>
+
+<TD></TD>
+</TR>
+
+<TR>
+<TD>25-Feb-1998</TD>
+
+<TD>Added CTRL-&lt;0--9> and CTRL-SHIFT-&lt;0..9> temporary StateMarks</TD>
+
+<TD>Kingery</TD>
+</TR>
+
+<TR>
+<TD>19-Feb-1998</TD>
+
+<TD>Added William Dicks Greek2Greek functions and right-click option from
+NU module to access.</TD>
+
+<TD>Dicks</TD>
+</TR>
+
+<TR>
+<TD>19-Feb-1998</TD>
+
+<TD>Added Back Button and routines</TD>
+
+<TD></TD>
+</TR>
+
+<TR>
+<TD>27-Jan-1998</TD>
+
+<TD>Added support to rawld.cpp to pad all numeric keys to 5 digits to support
+Strongs numbers</TD>
+
+<TD></TD>
+</TR>
+
+<TR>
+<TD>27-Jan-1998</TD>
+
+<TD>Autoselect current word on dictionary lookup if no text is highlighted</TD>
+
+<TD></TD>
+</TR>
+
+<TR>
+<TD>30-Dec-1997</TD>
+
+<TD>Added spin buttons to verse lookup controls</TD>
+
+<TD>Hastings</TD>
+</TR>
+
+<TR>
+<TD>30-Dec-1997</TD>
+
+<TD>Added count to search window</TD>
+
+<TD>Hastings</TD>
+</TR>
+
+<TR>
+<TD>30-Dec-1997</TD>
+
+<TD>Added preview control to search window</TD>
+
+<TD>Hastings</TD>
+</TR>
+
+<TR>
+<TD>30-Dec-1997</TD>
+
+<TD>Always sync. verse lookup controls to current verse</TD>
+
+<TD>Hastings</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P><B>Utility Programs</B>
+<UL><A HREF="olb2sword.exe">olb2sword.exe</A> (96,256 bytes; 22-Jan-1998)&nbsp;&nbsp;&nbsp;
+Used to create a SWORD module from an installed OLB Bible text.</UL>
+&nbsp;
+<BR><B>Modules</B>
+<UL><A HREF="ftp://ftp.crosswire.org/private/n27u4.zip">n27u4.zip</A> (1,081,986
+bytes; 28-Jan-1998) Nestle-Aland 27th ed. / United Bible Society 4th ed.
+Greek New Testament.
+<BR><A HREF="ftp://ftp.crosswire.org/private/OrthJBC.zip">OrthJBC.zip</A>
+(1,387,695 bytes; 07-Feb-1998) The Orthodox Jewish Brit Chadasha New Testament.
+<BR><A HREF="ftp://ftp.crosswire.org/private/vines.zip">vines.zip</A> (2,166,895
+bytes; 07-Feb-1998) Vines Bible Dictionary.</UL>
+
+<HR WIDTH="100%">
+<BR><A HREF="http://www.crosswire.org">CrossWire Software and Communications</A>
+homepage
+<BR><A HREF="http://www.bf.org">The Bible Foundation</A> homepage
+</BODY>
+</HTML>
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/html/alpha.html b/apps/windoze/CBuilder4/BibleCS/cdstartup/html/alpha.html
new file mode 100644
index 0000000..6a8ec1a
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/html/alpha.html
@@ -0,0 +1,28 @@
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
+ <META NAME="Author" CONTENT="Scribe">
+ <META NAME="GENERATOR" CONTENT="Mozilla/4.04b9 [en] (WinNT; I) [Netscape]">
+ <TITLE>The SWORD Project ALPHA Test Site</TITLE>
+</HEAD>
+<BODY>
+
+<CENTER><A HREF="http://www.crosswire.org/ALPHAcckswwlkrfre22034820285912"><IMG SRC="swordalpha.JPG" HEIGHT=238 WIDTH=606></A></CENTER>
+Thank you for your contribution to The SWORD Project.&nbsp; Our goal to
+make quality study software freely available to our generation is one that
+we hope you also share.&nbsp; As a contributor or alpha tester, access
+is provided to a website were you will be able to share your thoughts,
+ideas, criticisms, and thanks with others also involved at this early stage.&nbsp;
+The latest versions of software will also be made available at this site.
+
+<P><B>Important: </B>Please remember, as parts of the project are still
+in an alpha stage, public distribution of these sources is not allowed.&nbsp;
+As modules are approved by their owners/authors they will be promoted to
+public BETA status.&nbsp; ALPHA distributions contain <I>tentative</I>
+resources.&nbsp; Permission to distribute these resources may not have
+been secured from their owners/authors in spite of what the module's <I>tentative</I>
+comments may say.
+
+<P>To proceed to the alpha test site, click on the image above.
+</BODY>
+</HTML>
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/html/swordalpha.JPG b/apps/windoze/CBuilder4/BibleCS/cdstartup/html/swordalpha.JPG
new file mode 100644
index 0000000..9dce00f
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/html/swordalpha.JPG
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/mainfrm.cpp b/apps/windoze/CBuilder4/BibleCS/cdstartup/mainfrm.cpp
new file mode 100644
index 0000000..f40b559
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/mainfrm.cpp
@@ -0,0 +1,48 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "mainfrm.h"
+#include <shellapi.h>
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TForm1 *Form1;
+//---------------------------------------------------------------------------
+__fastcall TForm1::TForm1(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::BitBtn1Click(TObject *Sender)
+{
+ WinExec(".\\setup.exe", SW_SHOWNORMAL);
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::BitBtn2Click(TObject *Sender)
+{
+ WinExec(".\\sword.exe", SW_SHOWNORMAL);
+// ShellExecute(this->Handle, "open", "sword.exe", NULL, ".\\", SW_SHOWNORMAL);
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::FormShow(TObject *Sender)
+{
+// AddFontResource("\\sword\\modules\\texts\\rawtext\\nu\\greek.ttf");
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::BitBtn3Click(TObject *Sender)
+{
+ ShellExecute(this->Handle, "open", "http://www.crosswire.org", NULL, NULL, SW_SHOWNORMAL);
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::BitBtn4Click(TObject *Sender)
+{
+ ShellExecute(this->Handle, "open", ".\\", NULL, NULL, SW_SHOWNORMAL);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::BitBtn5Click(TObject *Sender)
+{
+ WinExec(".\\fonts\\setup.exe", SW_SHOWNORMAL);
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/mainfrm.dfm b/apps/windoze/CBuilder4/BibleCS/cdstartup/mainfrm.dfm
new file mode 100644
index 0000000..d001498
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/mainfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/mainfrm.h b/apps/windoze/CBuilder4/BibleCS/cdstartup/mainfrm.h
new file mode 100644
index 0000000..ba10380
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/mainfrm.h
@@ -0,0 +1,37 @@
+//---------------------------------------------------------------------------
+#ifndef mainfrmH
+#define mainfrmH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ExtCtrls.hpp>
+#include <vcl\Buttons.hpp>
+#include <Graphics.hpp>
+//---------------------------------------------------------------------------
+class TForm1 : public TForm
+{
+__published: // IDE-managed Components
+ TImage *Image1;
+ TBitBtn *BitBtn1;
+ TBitBtn *BitBtn2;
+ TLabel *Label1;
+ TBitBtn *BitBtn3;
+ TBitBtn *BitBtn4;
+ TBitBtn *BitBtn5;
+ void __fastcall BitBtn1Click(TObject *Sender);
+ void __fastcall BitBtn2Click(TObject *Sender);
+ void __fastcall FormShow(TObject *Sender);
+ void __fastcall BitBtn3Click(TObject *Sender);
+ void __fastcall BitBtn4Click(TObject *Sender);
+ void __fastcall BitBtn5Click(TObject *Sender);
+private: // User declarations
+public: // User declarations
+ __fastcall TForm1(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TForm1 *Form1;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/sword.bmp b/apps/windoze/CBuilder4/BibleCS/cdstartup/sword.bmp
new file mode 100644
index 0000000..a0266b1
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/sword.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/swordalpha.BMP b/apps/windoze/CBuilder4/BibleCS/cdstartup/swordalpha.BMP
new file mode 100644
index 0000000..f60b75b
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/swordalpha.BMP
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/swordalpha.JPG b/apps/windoze/CBuilder4/BibleCS/cdstartup/swordalpha.JPG
new file mode 100644
index 0000000..f4424f2
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/swordalpha.JPG
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/confsafe/getsaved.conf b/apps/windoze/CBuilder4/BibleCS/confsafe/getsaved.conf
new file mode 100644
index 0000000..4b7b7b3
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/confsafe/getsaved.conf
@@ -0,0 +1,10 @@
+
+[ROOT]
+branch1=What's God all about anyway?
+
+[branch1]
+branch2=Romans 3:23
+branch3=Romans 6:23
+branch4=John 3:16
+branch5=I John 1:9
+
diff --git a/apps/windoze/CBuilder4/BibleCS/confsafe/mods.conf b/apps/windoze/CBuilder4/BibleCS/confsafe/mods.conf
new file mode 100644
index 0000000..f2e87ed
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/confsafe/mods.conf
@@ -0,0 +1,304 @@
+[Globals]
+AutoInstall=./newmods/
+
+[Websters]
+DataPath=../../../../modules/texts/rawtext/websters/
+ModDrv=RawText
+Description=The Webster Bible
+About= -=+* see the files 'intro.txt' and 'revision.txt' for more details *+=-\par\par \
+\qc THE \par HOLY BIBLE, \par CONTAINING THE \par OLD AND NEW TESTAMENTS, \par IN THE \par \
+COMMON VERSION. \par WITH \par AMENDMENTS OF THE LANGUAGE, \par \
+BY NOAH WEBSTER, LL. D. \par\par ------------- \par NEW HAVEN: \par \
+PUBLISHED BY DURRIE & PECK. \par \
+Sold by HEZEKIAH HOWE & CO., and A. H. MALTBY, New Haven; \par \
+and by N.&J. WHITE, New York. \par\par ------ \par 1833 \par\par \
+Webster Bible Electronic Format.\par \
+PUBLIC DOMAIN\par\par \
+February 1992\par\par\pard \
+Webster Biography:\par \
+Noah Webster: America's first grammarian and founding father of American education.\par\par \
+ In 1828 Noah Webster published the 'American Dictionary of the English Language'. This \
+dictionary demonstrates the Christian values which were found in America's educational \
+and scholarly systems. It is from this early dictionary that we have todays popular \
+'Webster Dictionary'. In 1833 Noah Webster, who had mastered 20 languages including \
+Hebrew and Greek, published the King James Authorized Version 'with amendments to the \
+language'. In stating his reasons for producing this version of the Bible, Webster said:\par\par \
+ 'In the present version, the language is, in general, correct and perspicuous; \
+... in many passages uniting sublimity with beautiful simplicity. In my view, the general \
+style of the version ought not to be altered. But, in the lapse of two or three centuries, \
+changes have taken place, which, in particular passages, impair the beauty; in others, \
+obscure the sense, of the original languages. ... they do not present to the reader \
+the Word of God. ... My principal aim is to remedy this evil.'\par\par \
+It was with cautious reverence that Webster corrected misused grammar, removed offensive \
+terms and expressions, and substituted commonly understood words for words that had fallen \
+into disuse, or no longer carried the same meaning.\par\par\
+ In 1834, the year after completing the Webster Bible, Noah Webster wrote a \
+companion piece titled 'Value of the Bible and Excellence of the Christian Religion - For \
+the Use of Families and Schools'.\par\par\
+ Webster, who was considered 'The schoolmaster to a nation' and produced the \
+earliest spellers and textbooks for America's school children, believed Christian religious \
+values and American public education to be inseparable. He believed the Webster Bible to \
+be 'the most important enterprise' of his life, and referred to the Bible as:\par\par \
+ '... the chief moral cause of all that is good, and the best corrector of all that \
+is evil, in human society; the best book for regulating the temporal concerns of men, and \
+the only book that can serve as an infallible guide to future felicity.'\par\par \
+Introduction to the Electronic Format:\par \
+ Beginning in July of 1991 the task of placing the Webster Bible text in electronic \
+format began. The original purpose was to provide Larry Pierce, who produces the \
+On-Line Bible program, with a more modern *public domain* text, similar in content and \
+style to the AV but with a grammar that would provide better comprehension in todays \
+English.\par\par\
+ I plan on maintaining an accurate copy of the Webster text. Anyone finding an \
+error should contact me; Anyone desiring to obtain the latest, most correct text, can find \
+it on the Bible Foundation BBS, or can contact me in the following methods:\par \
+ Internet acus10@waccvm.corp.mot.com\par \
+ Home phone 602-829-8542\par \
+ Address Mark Fuller\par \
+ 1129 East Loyola Drive\par \
+ Tempe Arizona, 85282\par \
+ Bible Foundation http://www.bf.org\par\par \
+ I would like to thank the Bible Foundation not only for scanning nearly the entire \
+Webster Bible but for encouraging me to undertake this monumental work; particularly around \
+page 20 when I realized what I had gotten myself into. Special thanks to Jerry Kingery of \
+the Bible Foundation for scanning, and Jerry Hastings for doing some preliminary scan \
+cleaning and making the texts available on the BBS.
+
+
+[Sve]
+DataPath=../../../../modules/texts/rawtext/sve/
+ModDrv=RawText
+Description=Swedish Bible 1917 New Testament
+About=\qc BIBELN eller DEN HELIGA SKRIFT \par innehållande \par \
+NYA TESTAMENTETS KANONISKA BÖCKER \par i överensstämmelse med den av \par \
+KONUNGEN ÅR 1917 \par gillade och stadfästa översättningen \par\par \
+THE BIBLE or THE HOLY SCRIPT \par containing \par CANONICAL BOOKS OF NEW TESTAMENT \par \
+in conformity with that of \par THE KING YEAR 1917 \par \
+liked and confirmed translation \par\par\pard \
+ Thank you to Roland Nygren for making this work available. For the latest \
+information, to report corrections, or for other correspondence: \par\par \
+ Roland Nygren \par \
+ qtxrony@aom.ericsson.se
+
+[VNT]
+DataPath=../../../../modules/texts/rawtext/vnt/
+ModDrv=RawText
+Description=Valera 1858 Spanish New Testament Text
+About=\qc-=+* see the file 'intro.rtf' for more details *+=- \par\par \
+El \par NUEVO TESTAMENTO \par DE \par NUESTRO SEÑOR JESU-CRISTO \par \
+QUE CONTIENE \par LOS ESCRITOS EVANGÉLICOS Y APOSTÓLICOS \par \
+ANTIGUA VERSION DE CIPRIANO DE VALERA \par REVISADA \par \
+Con arreglo al original griego. \par MADRID \par \
+SE HALLA EN EL DEPÓSITO CENTRAL DE LA SOCIEDAD BÍBLICA B. Y E. \par \
+Calle de Preciados, número 46. \par 1884 \par EL SANTO EVANGELIO \par DE \par \
+NUESTRO SEÑOR JESU-CRISTO \par SEGUN \par SAN MATEO. \par\par \pard \
+ Thank you to Bill Kincaid for making this work available. \
+This New Testament text (Valera 1858) was downloaded from The Word of God in \
+Spanish: Valera 1909 web site. (http://www.west.ga.net/~ForHim/word.html) This text is not \
+copyrighted, you are free to distribute it as you wish. We only ask out of respect for the \
+work we invested in bringing you this text (Finding, scanning, and proofing.), that you \
+leave this notice and the following introduction ([see the file intro.rtf]) in any copies \
+that you might make publish on the Internet. If you have any questions or comments please \
+contact: mnj@acnet.net \par\par \
+ Este texto del Nuevo Testamento (Valera 1858) fue bajado del la pagina de \
+web: La Palabra de Dios en Español: Valera 1909. (http://www.west.ga.net/~ForHim/word.html) \
+ Este texto no tiene derechos reservados, puedes distribuirlo como quieres. Solamente \
+pedimos que por respeto del trabajo que invertimos en dándote este texto (Encontrando, \
+escaneando, y corrigiendo.), que dejes esta noticia y la siguiente introducción \
+(FILE: intro.rtf) en cualquier copia que publicas sobre el Internet. Si tienes cualquier \
+pregunta o comentario por favor escribe a: mnj@acnet.net.
+
+
+[MHC]
+DataPath=../../../../modules/comments/rawcom/mhc/
+ModDrv=RawCom
+Description=Matthew Henry's Commentary on the Whole Bible
+About=\qc Matthew Henry's \par Concise Commentary on the Whole Bible \par\par \
+Public Domain--Copy Freely. \par\par\pard \
+ This text matches the printed edition as published by Moody Press, 28th printing, \
+no Copyright displayed. ISBN: 0-8024-5190-X. This text was created from an existing \
+electronic copy, with roughly 1200 errors corrected. The current files can be \
+found at: \par\par \
+ The Bible Foundation, \par \
+ http://www.bf.org \par\par \
+ If any errors are located, please notify me at the above BBS, or at: \par\par \
+ Mark Fuller \par \
+ 1129 E. Loyola Dr. \par \
+ Tempe, Az. 85282 \par \
+ (602) 829-8542
+
+
+[RWP]
+DataPath=../../../../modules/comments/rawcom/rwp/
+ModDrv=RawCom
+Description=Robertson's Word Pictures
+About=\qc -=+* see the files 'about.txt', 'title.pg', 'rwp.int', 'read.me', and \
+'correct.txt' for more details *+=- \par\par \
+ Robertson's \par Word Pictures in the \par New Testament \par\par \
+A.T. Robertson, A.M., D.D., LL. D., Litt.D. \par\par\pard \
+Vol 1,2,3,4 Public Domain -- Copy Freely \par\par Volume 5 (c) 1932. \par \
+Renewal 1960 Broadman Press. All rights reserved. \par Used by permission. \par \
+[Copyright expires Dec. 31, 2006.] \par\par Volume 6 (c) 1933. \par \
+Renewal 1960 Broadman Press. All rights reserved. \par Used by permission. \par \
+[Copyright expires Dec. 31, 2007.] \par\par \
++--------------- Copy Freely --------------+ \par\par \
+ The current files can be found at: \par\par \
+ The Bible Foundation, \par \
+ http://www.bf.org \par\par \
+ If any errors are located, please notify me at the above location, or at: \par\par \
+ Mark Fuller \par \
+ 1129 E. Loyola Dr. \par \
+ Tempe, Az. 85282 \par \
+ (602) 829-8542
+
+
+[Eastons]
+DataPath=../../../../modules/lexdict/rawld/eastons/eastons
+ModDrv=RawLD
+Description=Easton's Bible Dictionary
+About=\qc Easton's 1897 Bible Dictionary \par\par \
+Public Domain -- Copy Freely \par\par\pard \
+ These Dictionary topics are from M.G. Easton M.A., D.D., Illustrated Bible \
+Dictionary, Third Edition, published by Thomas Nelson, 1897. Due to the nature of etext, \
+the illustrated portions of the Dictionary have not been included. \par\par \
+ The most current and correct copies of these files can be obtained from the \
+following. If any errors are located, please ensure you have the latest files, and if so, \
+we would appreciate being informed of the error. \par\par \
+ The Bible Foundation \par \
+ http://www.bf.org \par\par \
+ Or by contacting: \par\par \
+ Mark Fuller \par \
+ 1129 East Loyola Drive \par \
+ Tempe, Arizona, 85282 \par \
+ 602-829-8542 (voice)
+
+[Vines]
+DataPath=../../../../modules/lexdict/rawld/vines/vines
+ModDrv=RawLD
+Description=Vines Bible Dictionary
+About=\qc Vine's Expository Dictionary \par of New Testament Words \par\par \
+Public Domain -- Copy Freely \par\par\pard \
+ These Dictionary topics are from W.E. Vine's M.A., Expository Dictionary of New Testament \
+Words published in 1940 and without copyright. \par\par \
+ The most current and correct copies of these files can be obtained from the \
+following. If any errors are located, please ensure you have the latest files, and if so, \
+we would appreciate being informed of the error. \par\par \
+ The Bible Foundation \par \
+ http://www.bf.org \par\par \
+ Or by contacting: \par\par \
+ Mark Fuller \par \
+ 1129 East Loyola Drive \par \
+ Tempe, Arizona, 85282 \par \
+ 602-829-8542 (voice)
+
+
+[Strongs Hebrew (OT)]
+DataPath=../../../../modules/lexdict/rawld/strongs/hebrew
+ModDrv=RawLD
+Description=Strong's / Englishman's Hebrew Bible Dictionary
+About=\qc Strong's / Englishman's Bible Dictionary \par\par \pard \
+This is a lexicon of Hebrew words keyed off of Strong's numbers.
+
+[Strongs Greek (NT)]
+DataPath=../../../../modules/lexdict/rawld/strongs/greek
+ModDrv=RawLD
+Description=Strong's / Englishman's Greek Bible Dictionary
+About=\qc Strong's / Englishman's Bible Dictionary \par\par \pard \
+This is a lexicon of Greek words keyed off of Strong's numbers.
+
+
+
+[WEB]
+DataPath=../../../../modules/texts/rawgbf/web/
+ModDrv=RawGBF
+Description=The World English Bible
+About= -=+* see the file 'info.txt' for more details *+=-\par\par \
+\qc The World English Bible (WEB) \par\par Public Domain \par\par \pard \
+ The World English Bible is a 1997 revision of the American Standard Version of the \
+Holy Bible, first published in 1901. It is in the Public Domain. Please feel free to copy \
+and distribute it freely. \par\par \
+ Thank you to Michael Paul Johnson for making this work available. For the latest \
+information, to report corrections, or for other correspondence: \par\par \
+ Michael Paul Johnson \par \
+ http://www.ebible.org/bible \par \
+ mpj@ebible.org
+
+
+[ORTHJBC]
+DataPath=../../../../modules/texts/rawtext/orthjbc/
+ModDrv=RawText
+Description=The Orthodox Jewish Brit Chadasha
+About= \qc THE ORTHODOX JEWISH BRIT CHADASHA \par\par \pard \
+ A translation from the original language without goyishe and non-frum \
+terminology. \par\par \
+(C)COPYRIGHT, 1996, ARTISTS FOR ISRAEL INTERNATIONAL \par \
+ALL RIGHTS RESERVED \par \
+USED BY PERMISSION \par\par \
+ Thank you to Dr. Phil Goble for making this work available. This work is NOT in \
+the public domain. Please honor all applicable copyright laws. Permission to distribute \
+this text in its present electronic format for personal use has been granted by the \
+copyright holder. \par\par \
+ Please direct all correspondence to: \par\par \
+ Artists for Israel International \par \
+ http://www.afii.org \par \
+ P. O. Box 2056 \par \
+ New York, NY 10163
+
+
+
+[N27U4]
+DataPath=../../../../modules/texts/rawtext/nu/
+ModDrv=RawText
+Font=Greek
+Description=Nestle Aland 27th Ed./ UBS 4th Ed. Greek Text
+About= \qc Thank you to Barbara Aland, Kurt Aland, Johannes Karavidopoulos, Carlo M. \
+Martini, and Bruce M. Metzger for bringing this work to us. \par\par \pard \
+GREEK.TTF Greek Regular Font (C) Peter J. Gentry & Andrew M. Fountain, 1993. All Rights \
+Reserved. Special thanks to the copyright holders for permission to use these fonts with \
+The SWORD Project for personal use. For a complete list of Greek / Hebrew Utilities or \
+inquiries for other use may be directed to: \par\par \
+ Peter J. Gentry \par \
+ 55 Ambercroft Blvd. \par \
+ Scarborough \par \
+ Ontario, Canada \par \
+ M1W 2Z6
+
+
+[KJV]
+DataPath=../../../../modules/texts/rawtext/kjv/
+ModDrv=RawText
+Description=King James Version of 1611
+About= -=+* see the file 'kjvpref.rtf' for more details *+=-\par\par \
+ This is the King James Version of the Holy Bible (also known as the Authorized \
+Version) in Rich Text Format (among others, italics and red included). The preface from \
+the translators is in KJVPREF.RTF. These files are in the Public Domain. \par\par \
+ May God bless you as you study His Word. \par \
+ Michael Paul Johnson \par \
+ Sysop, Colorado Catacombs BBS (303-772-1062) \par \
+ email: mpj@csn.net \par \
+ http://www.csn.net/~mpj
+
+
+
+[KJVSTR]
+DataPath=../../../../modules/texts/rawtext/kjvstr/
+ModDrv=RawText
+Description=King James Version of 1611 w/ Strongs Numbers
+About= This is the King James Version of the Holy Bible (also known as the Authorized \
+Version) with embedded Strong's Numbers. This makes useful for looking up the exact \
+original language word in a lexicon that is keyed off of Strong's numbers.
+
+
+[FrenchLSG]
+DataPath=../../../../modules/texts/rawgbf/frenchlsg/
+ModDrv=RawGBF
+Description=French 1910 Louis Segond Version
+About=The 1910 edition of the Louis Segond Bible is keyed to Strong's numbers. \
+All this material may be freely copied and shared with your friends. \
+If you wish to use this material for other purposes, please contact: \par\par \
+ Stg. Publishare \par \
+ c/o Transvaalstraat 5 \par \
+ 3312 EX DORDRECHT \par \
+ The Netherlands \par\par \
+to obtain the latest accurate copy. The Englishman Strong's numbers are \
+not in the public domain and any commercial use requires a licence.
+
diff --git a/apps/windoze/CBuilder4/BibleCS/confsafe/wtbsa.conf b/apps/windoze/CBuilder4/BibleCS/confsafe/wtbsa.conf
new file mode 100644
index 0000000..55faa41
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/confsafe/wtbsa.conf
@@ -0,0 +1,18 @@
+
+[ROOT]
+branch6=What the Bible Says About...
+
+[branch10]
+branch11=Mark 12:25
+branch12=Matthew 22:30
+
+[branch6]
+branch7=Mormonism
+
+[branch7]
+branch10=Will We Be Married In Heaven?
+branch8=Are There Other Gods Besides YHWH?
+
+[branch8]
+branch9=Isaiah 44:8
+
diff --git a/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientForm.cpp b/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientForm.cpp
new file mode 100644
index 0000000..4024da2
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientForm.cpp
@@ -0,0 +1,46 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "DDEClientForm.h"
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TForm1 *Form1;
+//---------------------------------------------------------------------------
+__fastcall TForm1::TForm1(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Button1Click(TObject *Sender)
+{
+ if (DdeClientConv1->SetLink("sword","Bible")) {
+ Application->MessageBox("DDE Link Successful!","DDE Information",MB_OK);
+ DdeClientItem1->DdeItem = "Lookup";
+ DdeClientItem2->DdeItem = "Search";
+ }
+ else {
+ MessageBox(Handle,"DDE Link Unsuccessful","DDE Information", MB_OK | MB_ICONERROR);
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::DdeClientItem1Change(TObject *Sender)
+{
+ Memo1->Text = DdeClientItem1->Text;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::DdeClientItem2Change(TObject *Sender)
+{
+ Memo2->Text = DdeClientItem2->Text;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Button2Click(TObject *Sender)
+{
+ DdeClientConv1->PokeData("Lookup", Edit1->Text.c_str());
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Button3Click(TObject *Sender)
+{
+ DdeClientConv1->PokeData("Search", Edit2->Text.c_str());
+}
+//--------------------------------------------------------------------------- \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientForm.dfm b/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientForm.dfm
new file mode 100644
index 0000000..b964701
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientForm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientForm.h b/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientForm.h
new file mode 100644
index 0000000..6f23c5f
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientForm.h
@@ -0,0 +1,41 @@
+//---------------------------------------------------------------------------
+#ifndef DDEClientFormH
+#define DDEClientFormH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\DdeMan.hpp>
+#include <vcl\ExtCtrls.hpp>
+//---------------------------------------------------------------------------
+class TForm1 : public TForm
+{
+__published: // IDE-managed Components
+ TDdeClientConv *DdeClientConv1;
+ TPanel *Panel1;
+ TMemo *Memo1;
+ TMemo *Memo2;
+ TPanel *Panel2;
+ TEdit *Edit1;
+ TButton *Button1;
+ TButton *Button2;
+ TButton *Button3;
+ TEdit *Edit2;
+ TDdeClientItem *DdeClientItem1;
+ TDdeClientItem *DdeClientItem2;
+ void __fastcall Button1Click(TObject *Sender);
+ void __fastcall DdeClientItem1Change(TObject *Sender);
+
+ void __fastcall DdeClientItem2Change(TObject *Sender);
+ void __fastcall Button2Click(TObject *Sender);
+ void __fastcall Button3Click(TObject *Sender);
+private: // User declarations
+public: // User declarations
+ __fastcall TForm1(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TForm1 *Form1;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientProj.cpp b/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientProj.cpp
new file mode 100644
index 0000000..12c3d74
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientProj.cpp
@@ -0,0 +1,24 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+//---------------------------------------------------------------------------
+USEFORM("DDEClientForm.cpp", Form1);
+USERES("DDEClientProj.res");
+//---------------------------------------------------------------------------
+WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
+{
+ try
+ {
+ Application->Initialize();
+ Application->Title = "SWORD DDE Test Program";
+ Application->CreateForm(__classid(TForm1), &Form1);
+ Application->Run();
+ }
+ catch (Exception &exception)
+ {
+ Application->ShowException(&exception);
+ }
+ return 0;
+}
+//---------------------------------------------------------------------------
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientProj.mak b/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientProj.mak
new file mode 100644
index 0000000..20a6233
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientProj.mak
@@ -0,0 +1,55 @@
+# ---------------------------------------------------------------------------
+VERSION = BCB.01
+# ---------------------------------------------------------------------------
+!ifndef BCB
+BCB = $(MAKEDIR)\..
+!endif
+# ---------------------------------------------------------------------------
+PROJECT = DDEClientProj.exe
+OBJFILES = DDEClientProj.obj DDEClientForm.obj
+RESFILES = DDEClientProj.res
+RESDEPEN = $(RESFILES) DDEClientForm.dfm
+LIBFILES =
+DEFFILE =
+# ---------------------------------------------------------------------------
+CFLAG1 = -Od -Hc -w -k -r- -y -v -vi- -c -a4 -b- -w-par -w-inl -Vx -Ve -x
+CFLAG2 = -I$(BCB)\include;$(BCB)\include\vcl -H=$(BCB)\lib\vcld.csm
+PFLAGS = -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE \
+ -U$(BCB)\lib\obj;$(BCB)\lib -I$(BCB)\include;$(BCB)\include\vcl -v -$Y -$W \
+ -$O- -JPHNV -M
+RFLAGS = -i$(BCB)\include;$(BCB)\include\vcl
+LFLAGS = -L$(BCB)\lib\obj;$(BCB)\lib -aa -Tpe -x -v -V4.0
+IFLAGS =
+LINKER = ilink32
+# ---------------------------------------------------------------------------
+ALLOBJ = c0w32.obj $(OBJFILES)
+ALLRES = $(RESFILES)
+ALLLIB = $(LIBFILES) vcl.lib import32.lib cp32mt.lib
+# ---------------------------------------------------------------------------
+.autodepend
+
+$(PROJECT): $(OBJFILES) $(RESDEPEN) $(DEFFILE)
+ $(BCB)\BIN\$(LINKER) @&&!
+ $(LFLAGS) +
+ $(ALLOBJ), +
+ $(PROJECT),, +
+ $(ALLLIB), +
+ $(DEFFILE), +
+ $(ALLRES)
+!
+
+.pas.hpp:
+ $(BCB)\BIN\dcc32 $(PFLAGS) { $** }
+
+.pas.obj:
+ $(BCB)\BIN\dcc32 $(PFLAGS) { $** }
+
+.cpp.obj:
+ $(BCB)\BIN\bcc32 $(CFLAG1) $(CFLAG2) -o$* $*
+
+.c.obj:
+ $(BCB)\BIN\bcc32 $(CFLAG1) $(CFLAG2) -o$* $**
+
+.rc.res:
+ $(BCB)\BIN\brcc32 $(RFLAGS) $<
+#-----------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientProj.res b/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientProj.res
new file mode 100644
index 0000000..be31e84
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientProj.res
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/editentryfrm.cpp b/apps/windoze/CBuilder4/BibleCS/editentryfrm.cpp
new file mode 100644
index 0000000..595cbfe
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/editentryfrm.cpp
@@ -0,0 +1,330 @@
+#include <vcl.h>
+#pragma hdrstop
+#include <windows.hpp>
+#include <stdlib.h>
+#include <stdio.h>
+#include "editentryfrm.h"
+#include <swdisprtf.h>
+
+const float RulerAdj = 4.0/3.0;
+const int GutterWid = 6;
+//----------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TEditEntry *EditEntry;
+//----------------------------------------------------------------------------
+__fastcall TEditEntry::TEditEntry(TComponent *Owner) : TForm(Owner) {
+ ResultBuf = 0;
+}
+
+
+__fastcall TEditEntry::~TEditEntry() {
+ if (ResultBuf)
+ delete [] ResultBuf;
+}
+
+
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::SelectionChange(TObject */*Sender*/) {
+ char sizebuf[6];
+
+ try {
+ FUpdating = True;
+ FirstInd->Left = int(RichEdit1->Paragraph->FirstIndent*RulerAdj)-
+ 4+GutterWid;
+ LeftInd->Left = int((RichEdit1->Paragraph->LeftIndent+
+ RichEdit1->Paragraph->FirstIndent)*RulerAdj)-
+ 4+GutterWid;
+ RightInd->Left = Ruler->ClientWidth-6-int(
+ (RichEdit1->Paragraph->RightIndent+GutterWid)*RulerAdj);
+
+ BoldButton->Down = RichEdit1->SelAttributes->Style.Contains(fsBold);
+ ItalicButton->Down = RichEdit1->SelAttributes->Style.Contains(fsItalic);
+ UnderlineButton->Down = RichEdit1->SelAttributes->Style.Contains(fsUnderline);
+
+ BulletsButton->Down = bool(RichEdit1->Paragraph->Numbering);
+
+ FontSize->Text = itoa(RichEdit1->SelAttributes->Size, sizebuf, 10);
+
+ switch((int)RichEdit1->Paragraph->Alignment)
+ { case 0: LeftAlign->Down = True; break;
+ case 1: RightAlign->Down = True; break;
+ case 2: CenterAlign->Down = True; break;
+ }
+ }
+ catch (...) {
+ FUpdating = False;
+ }
+ FUpdating = False;
+}
+
+
+//----------------------------------------------------------------------------
+TTextAttributes *__fastcall TEditEntry::CurrText(void)
+{
+ return RichEdit1->SelAttributes;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::CheckFileSave(void)
+{
+ if ( RichEdit1->Modified ) {
+ switch(MessageBox(Handle, "Save Changes?","Modify Comment",MB_YESNOCANCEL | MB_ICONQUESTION)) {
+ case ID_YES : ExtractRTF(); break;
+ case ID_CANCEL : Abort(); break;
+ default:
+ if (ResultBuf)
+ delete [] ResultBuf;
+ ResultBuf = 0;
+ break;
+ };
+ }
+}
+
+
+void __fastcall TEditEntry::SetupRuler(void)
+{ int iCtr = 1;
+ char sTmp[201];
+ while (iCtr < 200) {
+ sTmp[iCtr] = 9;
+ iCtr++;
+ sTmp[iCtr] = '|';
+ iCtr++;
+ }
+ Ruler->Caption = (AnsiString)sTmp;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::SetEditRect(void)
+{ TRect Rct = Rect(GutterWid, 0, RichEdit1->ClientWidth-GutterWid,
+ ClientHeight);
+ SendMessage(RichEdit1->Handle, EM_SETRECT, 0, long(&Rct));
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormCreate(TObject* /*Sender*/)
+{ Application->OnHint = &ShowHint;
+ SetupRuler();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::ShowHint(TObject* /*Sender*/)
+{ StatusBar->SimpleText = Application->Hint;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::EditUndoClick(TObject* /*Sender*/)
+{ if ( RichEdit1->HandleAllocated() )
+ SendMessage(RichEdit1->Handle, EM_UNDO, 0, 0);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::EditCutClick(TObject* /*Sender*/)
+{ RichEdit1->CutToClipboard();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::EditCopyClick(TObject* /*Sender*/)
+{ RichEdit1->CopyToClipboard();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::EditPasteClick(TObject* /*Sender*/)
+{ RichEdit1->PasteFromClipboard();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::RulerResize(TObject* /*Sender*/)
+{ RulerLine->Width = (int)Ruler->ClientWidth - (RulerLine->Left*2);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormResize(TObject* Sender)
+{ SetEditRect();
+ SelectionChange(Sender);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormPaint(TObject* /*Sender*/)
+{ SetEditRect();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::BoldButtonClick(TObject* /*Sender*/)
+{ if ( !FUpdating )
+ { if ( BoldButton->Down )
+ CurrText()->Style = CurrText()->Style << fsBold;
+ else
+ CurrText()->Style = CurrText()->Style >> fsBold;
+ }
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::ItalicButtonClick(TObject* /*Sender*/)
+{ if ( !FUpdating )
+ {
+ if ( ItalicButton->Down )
+ CurrText()->Style = CurrText()->Style << fsItalic;
+ else
+ CurrText()->Style = CurrText()->Style >> fsItalic;
+ }
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::UnderlineButtonClick(TObject* /*Sender*/)
+{
+ if ( !FUpdating ) {
+ if ( UnderlineButton->Down )
+ CurrText()->Style = CurrText()->Style << fsUnderline;
+ else CurrText()->Style = CurrText()->Style >> fsUnderline;
+ }
+}
+
+
+void __fastcall TEditEntry::FontSizeChange(TObject* /*Sender*/)
+{
+ int fontsize = atoi(FontSize->Text.c_str());
+
+ if ((!FUpdating) && (fontsize)) {
+ if (fontsize < 1) {
+ ShowMessage("Please Enter a Number betweek 1 and 1638");
+ FontSize->Text = 1;
+ }
+ else if (fontsize > 1638) {
+ ShowMessage("Please Enter a Number betweek 1 and 1638");
+ FontSize->Text = 1638;
+ }
+ CurrText()->Size = atoi(FontSize->Text.c_str());
+ }
+}
+
+
+void __fastcall TEditEntry::AlignClick(TObject* Sender)
+{
+ if ( !FUpdating ) {
+ TControl *oAliBtn = (TControl*)(Sender);
+ RichEdit1->Paragraph->Alignment = (TAlignment)oAliBtn->Tag;
+ }
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::BulletsButtonClick(TObject* /*Sender*/)
+{ if ( !FUpdating )
+ RichEdit1->Paragraph->Numbering = (TNumberingStyle)BulletsButton->Down;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormCloseQuery(TObject* /*Sender*/,
+ bool & CanClose)
+{ try {
+ CheckFileSave();
+ }
+ catch (...) {
+ CanClose = False;
+ }
+}
+//----------------------------------------------------------------------------
+
+//***************************
+//***Ruler Indent Dragging***
+//***************************
+
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::RulerItemMouseDown(TObject * Sender,
+ TMouseButton Button, TShiftState Shift, int X, int Y)
+{ TLabel * oTmpLabel = (TLabel *)Sender;
+ FDragOfs = oTmpLabel->Width / 2;
+ oTmpLabel->Left = oTmpLabel->Left+X-FDragOfs;
+ FDragging = True;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::RulerItemMouseMove(TObject *Sender, TShiftState Shift, int X, int /*Y*/) {
+ if (FDragging) {
+ TLabel *oTmpLabel = (TLabel *)Sender;
+ oTmpLabel->Left = oTmpLabel->Left+X-FDragOfs;
+ oTmpLabel->Left -= oTmpLabel->Left % 10;
+ }
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FirstIndMouseUp(TObject *Sender, TMouseButton
+ Button, TShiftState Shift, int X, int Y)
+{ FDragging = False;
+ RichEdit1->Paragraph->FirstIndent = int((FirstInd->Left+FDragOfs-GutterWid) / RulerAdj);
+ LeftIndMouseUp(Sender, Button, Shift, X, Y);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::LeftIndMouseUp(TObject *Sender, TMouseButton
+ /*Button*/, TShiftState /*Shift*/, int /*X*/, int /*Y*/)
+{ FDragging = False;
+ RichEdit1->Paragraph->LeftIndent = int((LeftInd->Left+FDragOfs-GutterWid)/
+ RulerAdj)-RichEdit1->Paragraph->FirstIndent;
+ SelectionChange(Sender);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::RightIndMouseUp(TObject *Sender, TMouseButton
+ /*Button*/, TShiftState /*Shift*/, int /*X*/, int /*Y*/)
+{ FDragging = False;
+ RichEdit1->Paragraph->RightIndent =
+ int((Ruler->ClientWidth-RightInd->Left+FDragOfs-2) /
+ RulerAdj)-2*GutterWid;
+ SelectionChange(Sender);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormActivate(TObject *Sender)
+{
+ System::AnsiString newtext, tmptext;
+
+ if (Module) {
+ TMemoryStream *RTFStream = new TMemoryStream();
+ newtext = RTFDisplay->RTFHeader;
+ Module->Error(); // clear error;
+ newtext = newtext + "\\pard \\nowidctlpar \\cf0 ";
+ (char *)*Module; // force key to snap to entry before pulling out the text of the key
+ tmptext = (char *)*Module;
+
+ newtext = newtext + RTFDisplay->RTFVersePre + " " + tmptext + RTFDisplay->RTFVersePost;
+ newtext = newtext + RTFDisplay->RTFTrailer;
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(newtext.c_str(), newtext.Length());
+ RTFStream->Position = 0;
+ RichEdit1->Lines->LoadFromStream(RTFStream);
+ delete RTFStream;
+ }
+ SelectionChange(this);
+ RichEdit1->SetFocus();
+ if (ResultBuf)
+ delete [] ResultBuf;
+ ResultBuf = 0;
+}
+//---------------------------------------------------------------------
+
+void TEditEntry::ExtractRTF()
+{
+ System::AnsiString newtext, tmptext;
+ TMemoryStream *RTFStream = new TMemoryStream();
+ char *tmpbuf, *datastart;
+
+ RTFStream->Clear();
+ RichEdit1->Lines->SaveToStream(RTFStream);
+ RTFStream->Position = 0;
+ if (ResultBuf)
+ delete [] ResultBuf;
+ tmpbuf = new char [ RTFStream->Size + 1];
+ RTFStream->ReadBuffer(tmpbuf, RTFStream->Size);
+ tmpbuf[RTFStream->Size] = 0;
+ strtok(strstr(tmpbuf, "colortbl"), "}");
+ datastart = strtok(NULL, "");
+ ResultBuf = new char [ strlen(datastart) + 2 ];
+ ResultBuf[0] = '{';
+ strcpy(ResultBuf+1, datastart);
+ delete [] tmpbuf;
+ delete RTFStream;
+ //-------- Change all fonts to \f1
+ for (int i = 0; i < strlen(ResultBuf)-4; i++) {
+ if (ResultBuf[i] == '\\') {
+ if (ResultBuf[i+1] == '\\') { // skip a real '\' character
+ i += 1;
+ continue;
+ }
+ if (ResultBuf[i+1] == 'f') {
+ if (isdigit(ResultBuf[i+2])) {
+ ResultBuf[i+2] = '1';
+ if (isdigit(ResultBuf[i+3])) {
+ memmove(&ResultBuf[i+3], &ResultBuf[i+4], strlen(&ResultBuf[i+3]));
+ }
+ }
+ }
+ }
+ }
+}
+
+
+__fastcall TCharsetObject::TCharsetObject(int FCharset)
+ : TObject()
+{
+ Charset = FCharset;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/BibleCS/editentryfrm.dfm b/apps/windoze/CBuilder4/BibleCS/editentryfrm.dfm
new file mode 100644
index 0000000..3b40fc4
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/editentryfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/editentryfrm.h b/apps/windoze/CBuilder4/BibleCS/editentryfrm.h
new file mode 100644
index 0000000..058c385
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/editentryfrm.h
@@ -0,0 +1,108 @@
+//----------------------------------------------------------------------------
+//Borland C++Builder
+//Copyright (c) 1987, 1998 Borland International Inc. All Rights Reserved.
+//----------------------------------------------------------------------------
+//----------------------------------------------------------------------------
+#ifndef editentryfrmH
+#define editentryfrmH
+//----------------------------------------------------------------------------
+#include <Outline.hpp>
+#include <Grids.hpp>
+#include <Buttons.hpp>
+#include <ExtCtrls.hpp>
+#include <StdCtrls.hpp>
+#include <ComCtrls.hpp>
+#include <Menus.hpp>
+#include <Dialogs.hpp>
+#include <Forms.hpp>
+#include <Controls.hpp>
+#include <Graphics.hpp>
+#include <Classes.hpp>
+#include <SysUtils.hpp>
+#include <Messages.hpp>
+#include <Windows.hpp>
+#include <System.hpp>
+#include <swmodule.h>
+#include <swdisprtf.h>
+//----------------------------------------------------------------------------
+class TEditEntry : public TForm
+{
+__published:
+ TPanel *SpeedBar;
+ TSpeedButton *UndoButton;
+ TSpeedButton *CutButton;
+ TSpeedButton *CopyButton;
+ TSpeedButton *PasteButton;
+ TBevel *Bevel1;
+ TSpeedButton *BoldButton;
+ TSpeedButton *ItalicButton;
+ TSpeedButton *LeftAlign;
+ TSpeedButton *CenterAlign;
+ TSpeedButton *RightAlign;
+ TSpeedButton *UnderlineButton;
+ TSpeedButton *BulletsButton;
+ TEdit *FontSize;
+ TUpDown *UpDown1;
+ TPanel *Ruler;
+ TLabel *FirstInd;
+ TLabel *LeftInd;
+ TBevel *RulerLine;
+ TLabel *RightInd;
+ TStatusBar *StatusBar;
+ TRichEdit *RichEdit1;
+ TLabel *Label1;
+ void __fastcall SelectionChange(TObject *Sender);
+ void __fastcall AlignClick(TObject *Sender);
+ void __fastcall EditUndoClick(TObject *Sender);
+ void __fastcall EditCutClick(TObject *Sender);
+ void __fastcall EditCopyClick(TObject *Sender);
+ void __fastcall EditPasteClick(TObject *Sender);
+ void __fastcall RulerResize(TObject *Sender);
+ void __fastcall FormCreate(TObject *Sender);
+ void __fastcall FormResize(TObject *Sender);
+ void __fastcall FormPaint(TObject *Sender);
+ void __fastcall BoldButtonClick(TObject *Sender);
+ void __fastcall FontSizeChange(TObject *Sender);
+ void __fastcall UnderlineButtonClick(TObject *Sender);
+ void __fastcall ItalicButtonClick(TObject *Sender);
+ void __fastcall BulletsButtonClick(TObject *Sender);
+ void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
+ void __fastcall RulerItemMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void __fastcall RulerItemMouseMove(TObject *Sender, TShiftState Shift, int X, int Y);
+ void __fastcall FirstIndMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void __fastcall LeftIndMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void __fastcall RightIndMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void __fastcall FormActivate(TObject *Sender);
+
+private:
+ AnsiString FFileName;
+ bool FUpdating;
+ int FDragOfs;
+ bool FDragging;
+ TTextAttributes *__fastcall CurrText(void);
+ void __fastcall CheckFileSave(void);
+ void __fastcall SetupRuler(void);
+ void __fastcall SetEditRect(void);
+ void __fastcall ShowHint(TObject *Sender);
+
+public:
+ SWModule *Module;
+ SWDispRTF *RTFDisplay;
+
+ virtual __fastcall TEditEntry(TComponent *Owner);
+ __fastcall ~TEditEntry();
+ char *ResultBuf;
+ void ExtractRTF();
+};
+//----------------------------------------------------------------------------
+class TCharsetObject : public TObject
+{
+public:
+ int Charset;
+ __fastcall TCharsetObject(int FCharset);
+};
+//----------------------------------------------------------------------------
+extern TEditEntry *EditEntry;
+//----------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/getsaved.conf b/apps/windoze/CBuilder4/BibleCS/getsaved.conf
new file mode 100644
index 0000000..6a77364
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/getsaved.conf
@@ -0,0 +1,8 @@
+[ROOT]
+getsaved=What's God all about anyway?
+
+[getsaved]
+verse1=Romans 3:23
+verse2=Romans 6:23
+verse3=John 3:16
+verse4=I John 1:9 \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/mainfrm.cpp b/apps/windoze/CBuilder4/BibleCS/mainfrm.cpp
new file mode 100644
index 0000000..025bd06
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/mainfrm.cpp
@@ -0,0 +1,1151 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#include <vcl/clipbrd.hpp>
+#pragma hdrstop
+
+#include "mainfrm.h"
+#include "swdisprtfchap.h"
+#include "searchfrm.h"
+#include "swwinlog.h"
+#include "AboutBoxfrm.h"
+#include "ModInstForm.h"
+#include "biblecsmgr.h"
+#include "Greek2Greek.h"
+#include "bookmarkfrm.h"
+#include "optionfrm.h"
+#include "vrslstfrm.h"
+#include <utilstr.h>
+#include <filemgr.h>
+#include "editentryfrm.h"
+#include "versesel.h"
+
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TForm1 *Form1;
+//---------------------------------------------------------------------------
+
+
+__fastcall TForm1::TForm1(TComponent* Owner)
+ : TForm(Owner)
+{
+ optionsconf = new SWConfig("./options.conf");
+
+ Lookup->Text = "[ SWORD DDE Lookup ]";
+ Search->Text = "[ SWORD DDE Search ]";
+}
+
+void __fastcall TForm1::DisplayHint(TObject* Sender)
+{
+ StatusBar1->SimpleText = GetLongHint(Application->Hint);
+}
+
+//---------------------------------------------------------------------------
+__fastcall TForm1::~TForm1()
+{
+ list <SWDisplay *>::iterator it;
+ int loop;
+
+
+ if (mainmgr)
+ delete mainmgr;
+ for (it = displays.begin(); it != displays.end(); it++)
+ delete *it;
+ if (layoutconf)
+ delete layoutconf;
+
+ if (optionsconf)
+ delete optionsconf;
+
+ for (loop = 0; loop < 10; loop++) {
+ if (ctrlstates[loop]);
+ delete ctrlstates[loop];
+ }
+ list <ModState *>::iterator mit;
+ for (mit = modstates.begin(); mit != modstates.end(); mit++) {
+ delete (*mit);
+ }
+}
+//---------------------------------------------------------------------------
+void TForm1::BuildRTFHeader(char *buf, char *font, int max)
+{
+ char buf1[1024], buf2[1024];
+ SectionMap::iterator sit;
+ string value;
+ ConfigEntMap::iterator entry;
+
+ sprintf(buf1, "{\\rtf1\\ansi");
+ if (font)
+ sprintf(buf2, "{\\fonttbl{\\f0\\fdecor\\fprq2 %s;}{\\f1\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f2\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f3\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f4\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f7\\froman\\fcharset2\\fprq2 Symbol;}{\\f8\\froman\\fcharset2\\fprq2 Symbol;}}", font);
+ else sprintf(buf2, "{\\fonttbl{\\f0\\fdecor\\fprq2 Times New Roman;}{\\f1\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f7\\froman\\fcharset2\\fprq2 Symbol;}{\\f8\\froman\\fcharset2\\fprq2 Symbol;}}");
+ strcat(buf1, buf2);
+
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ ConfigEntMap &section = (*sit).second;
+ sprintf(buf2, "{\\colortbl;\\red0\\green0\\blue255;\\red%d\\green%d\\blue%d;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red255\\green0\\blue0;}",
+ ((entry = section.find("CurrentVSColorRed")) != section.end()) ? atoi((*entry).second.c_str()) : 0,
+ ((entry = section.find("CurrentVSColorGreen")) != section.end()) ? atoi((*entry).second.c_str()) : 0,
+ ((entry = section.find("CurrentVSColorBlue")) != section.end()) ? atoi((*entry).second.c_str()) : 0);
+ }
+ else sprintf(buf2, "{\\colortbl;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red255\\green0\\blue0;}");
+ strcat(buf1, buf2);
+ memset(buf, 0, max);
+ strncpy(buf, buf1, max);
+}
+
+char TForm1::CreateTextPane(SWModule *mod, char *font) {
+ TTabSheet *newtab = new TTabSheet(this);
+ SWDispRTFChap *newrtf = new SWDispRTFChap(this);
+ char buf[512];
+ SectionMap::iterator sit;
+
+ newtab->Caption = mod->Name();
+ newtab->Hint = mod->Description();
+ newtab->ParentShowHint = true;
+ newtab->PageControl = PageControl1;
+ newrtf->Parent = newtab;
+ newrtf->Align = alClient;
+ newrtf->ScrollBars = ssVertical;
+ newrtf->ReadOnly = true;
+ newrtf->PopupMenu = (strcmp(mod->Name(), "N27U4")) ? PopupMenu2 : PopupMenu1;
+ newrtf->OnMouseDown = RTFMouseDown;
+
+ BuildRTFHeader(buf, font, 512);
+ newrtf->RTFHeader = buf;
+
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ newrtf->MarkCurrentVerse = (atoi((*(*sit).second.find("AutoVSColor")).second.c_str())) ? true:false;
+ }
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ if ((*sit).second.find("FontSize") != (*sit).second.end())
+ newrtf->FontSize = atoi((*(*sit).second.find("FontSize")).second.c_str());
+ }
+ SWDisplay *disp = new RTFDisp(newrtf);
+ mod->Disp(disp);
+ displays.insert(displays.begin(), disp);
+ mod->SetKey(DefaultVSKey);
+
+ return 0;
+}
+//---------------------------------------------------------------------------
+char TForm1::CreateCommentPane(SWModule *mod) {
+ TTabSheet *newtab = new TTabSheet(this);
+ TWinControl *newrtf;
+ SectionMap::iterator sit;
+
+ if ((*mainmgr->config->Sections[mod->Name()].find("ModDrv")).second == "HREFCom") {
+// if (mainmgr->config->Sections[mod->Name()]["External"] == "1") {
+ newrtf = new TPanel(this);
+ ((TPanel *)newrtf)->Caption = "Syncronizing to External Viewer";
+ SWDisplay *disp = new DispExternal();
+ mod->Disp(*displays.insert(displays.begin(), disp));
+/*
+ }
+ else {
+ // newrtf = new THTML(this->Handle);
+ // newrtf = new SWDispRTF(this);
+ newrtf = HTML1;
+ newrtf->Visible = true;
+ mod->Disp(*displays.insert(displays.begin(), new HREFDisp((THTML *)newrtf)));
+ // mod->Disp(*displays.insert(displays.begin(), new RTFDisp((SWDispRTF *)newrtf)));
+ }
+*/
+ }
+ else {
+ newrtf = new SWDispRTF(this);
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ if ((*sit).second.find("FontSize") != (*sit).second.end())
+ ((SWDispRTF *)newrtf)->FontSize = atoi((*(*sit).second.find("FontSize")).second.c_str());
+ }
+ SWDisplay *disp = new RTFDisp((SWDispRTF *)newrtf);
+ mod->Disp(*displays.insert(displays.begin(), disp));
+ ((SWDispRTF *)newrtf)->ScrollBars = ssVertical;
+ ((SWDispRTF *)newrtf)->ReadOnly = true;
+
+ if ((*mainmgr->config->Sections[mod->Name()].find("ModDrv")).second == "RawFiles") {
+ ((SWDispRTF *)newrtf)->PopupMenu = PopupMenu3;
+ ((SWDispRTF *)newrtf)->ExpandNewLine = false;
+ }
+ else ((SWDispRTF *)newrtf)->PopupMenu = PopupMenu2;
+ ((SWDispRTF *)newrtf)->OnMouseDown = RTFMouseDown;
+ }
+
+ newtab->Caption = mod->Name();
+ newtab->Hint = mod->Description();
+ newtab->ParentShowHint = true;
+ newtab->PageControl = PageControl2;
+ newrtf->Parent = newtab;
+ newrtf->Align = alClient;
+
+ mod->SetKey(DefaultVSKey);
+ return 0;
+}
+//---------------------------------------------------------------------------
+char TForm1::CreateLDPane(SWModule *mod) {
+ TTabSheet *newtab = new TTabSheet(this);
+ SWDispRTF *newrtf = new SWDispRTF(this);
+ SectionMap::iterator sit;
+
+ newtab->Caption = mod->Name();
+ newtab->Hint = mod->Description();
+ newtab->ParentShowHint = true;
+ newtab->PageControl = PageControl3;
+ newrtf->Parent = newtab;
+ newrtf->Align = alClient;
+ newrtf->ScrollBars = ssVertical;
+ newrtf->ReadOnly = true;
+ newrtf->PopupMenu = PopupMenu2;
+ newrtf->OnMouseDown = RTFMouseDown;
+
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ if ((*sit).second.find("FontSize") != (*sit).second.end())
+ newrtf->FontSize = atoi((*(*sit).second.find("FontSize")).second.c_str());
+ }
+ SWDisplay *disp = new RTFDisp(newrtf);
+ mod->Disp(*displays.insert(displays.begin(), disp));
+ mod->SetKey(DefaultStrKey);
+ return 0;
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::PageControl1Change(TObject *Sender)
+{
+ RefreshActiveSheet(PageControl1);
+ Form1->ActiveControl = PageControl1;
+}
+//---------------------------------------------------------------------------
+void TForm1::RefreshActiveSheet(TPageControl *pc)
+{
+ ModMap::iterator it;
+
+ it = mainmgr->Modules.find(pc->ActivePage->Caption.c_str());
+ if (it != mainmgr->Modules.end()) {
+ (*it).second->Display();
+ if (logmodstate)
+ modstates.insert(modstates.begin(), new ModState(pc, pc->ActivePage, (*it).second->KeyText()));
+ }
+}
+
+
+void TForm1::TextKeyChanged()
+{
+ cbBook->ItemIndex = cbBook->Items->IndexOf(DefaultVSKey.books[DefaultVSKey.Testament()-1][DefaultVSKey.Book()-1].name);
+ CHBox->Text = DefaultVSKey.Chapter();
+ VSBox->Text = DefaultVSKey.Verse();
+ freeHandLookup->Text = (const char *)DefaultVSKey;
+ RefreshActiveSheet(PageControl1);
+ logmodstate = false; // only log state once
+ RefreshActiveSheet(PageControl2);
+ logmodstate = true;
+}
+
+
+void __fastcall TForm1::btnLookupClick(TObject *Sender)
+{
+ if (!(StrToInt(CHBox->Text)) || (!StrToInt(VSBox->Text)))
+ DefaultVSKey.AutoNormalize(0);
+
+ if (StrToInt(CHBox->Text) < 0)
+ CHBox->Text = StrToInt(CHBox->Text) + 1;
+ if (StrToInt(VSBox->Text) < 0)
+ VSBox->Text = StrToInt(VSBox->Text) + 1;
+
+ DefaultVSKey = (cbBook->Text + " " + CHBox->Text + ":" + VSBox->Text).c_str();
+ TextKeyChanged();
+ DefaultVSKey.AutoNormalize(1);
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::PageControl2Change(TObject *Sender)
+{
+ RefreshActiveSheet(PageControl2);
+ Form1->ActiveControl = PageControl2;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::DictKeyEditChange(TObject *Sender)
+{
+ if (DictKeyEdit->Modified) {
+ DefaultStrKey = DictKeyEdit->Text.c_str();
+ RefreshActiveSheet(PageControl3);
+ DictKeyEdit->Modified = false;
+ FillDictKeys();
+ }
+}
+
+void TForm1::FillDictKeys() {
+ ModMap::iterator it;
+ int index = 0;
+ SWKey saveKey;
+
+ it = mainmgr->Modules.find(PageControl3->ActivePage->Caption.c_str());
+ if (it != mainmgr->Modules.end()) {
+ SWModule *mod = (*it).second;
+ mod->KeyText(); // snap to entry
+ saveKey = mod->KeyText();
+ int count = lbDictKeys->Height / lbDictKeys->ItemHeight;
+ lbDictKeys->Items->Clear();
+ for (int i = 0; i < (count / 2); i++)
+ (*mod)++;
+ for (int i = 0; i < count-1; i++)
+ (*mod)--;
+ mod->Error();
+ for (;!mod->Error() && count;count--,(*mod)++) {
+ lbDictKeys->Items->Add(mod->KeyText());
+ if (saveKey == mod->Key())
+ index = lbDictKeys->Items->Count-1;
+ }
+ lbDictKeys->ItemIndex = index;
+ }
+}
+
+
+//---------------------------------------------------------------------------
+void __fastcall TForm1::PageControl3Change(TObject *Sender)
+{
+ DefaultStrKey = DictKeyEdit->Text.c_str();
+ RefreshActiveSheet(PageControl3);
+ Form1->ActiveControl = PageControl3;
+ FillDictKeys();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::NewSearchWindow1Click(TObject *Sender)
+{
+ Form2->Show();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Exit1Click(TObject *Sender)
+{
+ Close();
+}
+
+void __fastcall TForm1::About1Click(TObject *Sender)
+{
+ AboutBox->ShowModal();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::DictionaryLookup1Click(TObject *Sender)
+{
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ int wordstart;
+ int saveSelStart = rtf->SelStart;
+
+ if (!rtf->SelLength) {
+ for (wordstart = rtf->SelStart; (wordstart > -1)&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length()) - rtf->SelStart - 1;
+ DictKeyEdit->Text = Trim(rtf->SelText);
+ rtf->SelStart = saveSelStart;
+ rtf->SelLength = 0;
+ }
+ else DictKeyEdit->Text = Trim(rtf->SelText);
+}
+
+
+void __fastcall TForm1::verseLookupClick(TObject *Sender)
+{
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ int wordstart;
+ int saveSelStart = rtf->SelStart;
+
+ if (!rtf->SelLength) {
+ for (wordstart = rtf->SelStart; (wordstart > -1)&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length()) - rtf->SelStart - 1;
+ freeHandLookup->Text = Trim(rtf->SelText);
+ rtf->SelStart = saveSelStart;
+ rtf->SelLength = 0;
+ }
+ else freeHandLookup->Text = Trim(rtf->SelText);
+ char ret = '\r';
+ freeHandLookupoldKeyPress(Sender, ret);
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::SaveLayout1Click(TObject *Sender)
+{
+ ConfigEntMap sit;
+
+ sit = layoutconf->Sections["Screen"];
+ sit.erase("MainTop"); sit.insert(ConfigEntMap::value_type("MainTop", IntToStr(Form1->Top).c_str()));
+ sit.erase("MainLeft"); sit.insert(ConfigEntMap::value_type("MainLeft", IntToStr(Form1->Left).c_str()));
+ sit.erase("MainHeight"); sit.insert(ConfigEntMap::value_type("MainHeight", IntToStr(Form1->Height).c_str()));
+ sit.erase("MainWidth"); sit.insert(ConfigEntMap::value_type("MainWidth", IntToStr(Form1->Width).c_str()));
+ sit.erase("TextComHeight"); sit.insert(ConfigEntMap::value_type("TextComHeight", IntToStr(pnlTextCom->Height).c_str()));
+ sit.erase("TextWidth"); sit.insert(ConfigEntMap::value_type("TextWidth", IntToStr(pnlText->Width).c_str()));
+ layoutconf->Sections["Screen"] = sit;
+ layoutconf->Save();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::FormShow(TObject *Sender)
+{
+ ModMap::iterator it;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit, eitend;
+ AnsiString s1;
+ char *font;
+ int loop;
+ int maxFiles;
+ string tmpval;
+
+ logmodstate = true;
+ freshdict = true;
+ if (SWLog::systemlog)
+ delete SWLog::systemlog;
+ SWLog::systemlog = new SWWinLog(this->Handle); // set the system logger to our MSWindows specific SWLog class
+ tmpval = ((eit = optionsconf->Sections["System"].find("MaxFiles")) != optionsconf->Sections["System"].end())? (*eit).second : (string)"";
+ if ((maxFiles = atoi(tmpval.c_str()))) {
+ FileMgr::systemFileMgr.maxFiles = maxFiles;
+ }
+
+ tmpval = ((eit = optionsconf->Sections["Hints"].find("On")) != optionsconf->Sections["Hints"].end())? (*eit).second : (string)"1";
+
+ if (atoi(tmpval.c_str()))
+ Form1->ShowHint = true;
+ else Form1->ShowHint = false;
+
+ DefaultVSKey = TOP;
+ cbBook->Clear();
+ while (!DefaultVSKey.Error()) {
+ s1 = (const char *)DefaultVSKey;
+ s1.SetLength(s1.Length() - 4);
+ cbBook->Items->Add(s1);
+ DefaultVSKey.Book(DefaultVSKey.Book() + 1);
+ }
+ cbBook->ItemIndex = cbBook->Items->IndexOf("James");
+
+ DefaultVSKey.Persist(1); // when set to a module, make the module hold on to this actual key and not a copy
+ DefaultVSKey = "James 1:19"; // set to our standard starting verse
+ DefaultStrKey.Persist(1);
+ DefaultStrKey = "";
+
+ mainmgr = new BibleCSMGR(ModInstFrm);
+ for (it = mainmgr->Modules.begin(); it != mainmgr->Modules.end(); it++) {
+ if (!strcmp((*it).second->Type(), "Biblical Texts")) {
+ font = 0;
+ if ((sit = mainmgr->config->Sections.find((*it).second->Name())) != mainmgr->config->Sections.end()) {
+ if ((eit = (*sit).second.find("Font")) != (*sit).second.end()) {
+ font = (char *)(*eit).second.c_str();
+ }
+ }
+ CreateTextPane((*it).second, font);
+ }
+ if (!strcmp((*it).second->Type(), "Commentaries"))
+ CreateCommentPane((*it).second);
+ if (!strcmp((*it).second->Type(), "Lexicons / Dictionaries"))
+ CreateLDPane((*it).second);
+ }
+
+ layoutconf = new SWConfig("./layout.conf");
+
+ if ((sit = layoutconf->Sections.find("Screen")) != layoutconf->Sections.end()) {
+ if ((eit = (*sit).second.find("MainTop")) != (*sit).second.end())
+ Form1->Top = atoi((*eit).second.c_str());
+ if ((eit = (*sit).second.find("MainLeft")) != (*sit).second.end())
+ Form1->Left = atoi((*eit).second.c_str());
+ if ((eit = (*sit).second.find("MainHeight")) != (*sit).second.end())
+ Form1->Height = atoi((*eit).second.c_str());
+ if ((eit = (*sit).second.find("MainWidth")) != (*sit).second.end())
+ Form1->Width = atoi((*eit).second.c_str());
+ if ((eit = (*sit).second.find("TextComHeight")) != (*sit).second.end())
+ pnlTextCom->Height = atoi((*eit).second.c_str());
+ if ((eit = (*sit).second.find("TextWidth")) != (*sit).second.end())
+ pnlText->Width = atoi((*eit).second.c_str());
+ }
+
+
+ for (loop = 0; loop < 10; loop++)
+ ctrlstates.insert(ctrlstates.begin(), 0);
+ Graphics::TBitmap *bitmap = BackBtnImage->Picture->Bitmap;
+ TColor transColor = bitmap->Canvas->Pixels[0][0];
+ ImageList1->AddMasked(bitmap, transColor);
+
+ bitmap = SearchBtnImage->Picture->Bitmap;
+ transColor = bitmap->Canvas->Pixels[0][0];
+ ImageList1->AddMasked(bitmap, transColor);
+
+ bitmap = BookmarkBtnImage->Picture->Bitmap;
+ transColor = bitmap->Canvas->Pixels[0][0];
+ ImageList2->AddMasked(bitmap, transColor);
+
+ // Add options to Options Main Menu choice
+ OptionsList options = mainmgr->getGlobalOptions();
+ for (OptionsList::iterator it = options.begin(); it != options.end(); it++) {
+ TMenuItem *newitem = new TMenuItem(MainMenu1);
+ newitem->Caption = (*it).c_str();
+ newitem->Default = false;
+ newitem->OnClick = OptionShowVals;
+ newitem->Hint = mainmgr->getGlobalOptionTip((*it).c_str());
+ OptionsList values = mainmgr->getGlobalOptionValues((*it).c_str());
+ for (OptionsList::iterator it2 = values.begin(); it2 != values.end(); it2++) {
+ TMenuItem *newitem2 = new TMenuItem(MainMenu1);
+ newitem2->Caption = (*it2).c_str();
+ newitem2->Default = false;
+ newitem2->OnClick = GlobalOptionChange;
+ newitem->Add(newitem2);
+ }
+// Mainmenu->Items->Add(newitem);
+ Options2->Add(newitem);
+ }
+
+
+ if ((sit = layoutconf->Sections.find("History")) != layoutconf->Sections.end()) {
+
+ eitend = (*sit).second.upper_bound("SearchText");
+ for (eit = (*sit).second.lower_bound("SearchText"); eit != eitend; eit++)
+ Form2->SearchText->Items->Add(eit->second.c_str());
+
+ eitend = (*sit).second.upper_bound("LookupText");
+ for (eit = (*sit).second.lower_bound("LookupText"); eit != eitend; eit++)
+ freeHandLookup->Items->Add(eit->second.c_str());
+
+ if ((eit = (*sit).second.find("LastVerse")) != (*sit).second.end()) {
+ freeHandLookup->Text = (*eit).second.c_str();
+ char ret = '\r';
+ freeHandLookupoldKeyPress(0, ret);
+ }
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::LookupPokeData(TObject *Sender)
+{
+ char buf[255];
+ char *token;
+ ModMap::iterator it;
+
+ strncpy(buf, Lookup->Text.c_str(), 254);
+ buf[254] = 0;
+ token = strtok(buf, " ");
+ if ((it = mainmgr->Modules.find(token)) != mainmgr->Modules.end()) {
+ token = strtok(NULL, "");
+ (*it).second->SetKey(token);
+ Lookup->Text = (const char *)(*(*it).second);
+ }
+ else Lookup->Text = "";
+
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::SearchPokeData(TObject *Sender)
+{
+ char buf[255];
+ char *token;
+ ModMap::iterator it;
+ AnsiString retval = "";
+
+ strncpy(buf, Search->Text.c_str(), 254);
+ buf[254] = 0;
+ token = strtok(buf, " ");
+ if ((it = mainmgr->Modules.find(token)) != mainmgr->Modules.end()) {
+ token = strtok(NULL, "");
+ ListKey &results = (*it).second->Search(token, REG_ICASE);
+ while (!results.Error()) {
+ retval = retval + (const char *)results + "; ";
+ results++;
+ }
+ Search->Text = retval;
+ }
+ else Search->Text = "";
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::UpDown3Click(TObject *Sender, TUDBtnType Button)
+{
+ ModMap::iterator it;
+
+ it = mainmgr->Modules.find(PageControl3->ActivePage->Caption.c_str());
+ if (it != mainmgr->Modules.end()) {
+ if (Button == btNext)
+ (*((*it).second))++;
+ else (*((*it).second))--;
+ DictKeyEdit->Text = ((*it).second)->KeyText();
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::UpDown1Click(TObject *Sender, TUDBtnType Button)
+{
+ btnLookupClick(Sender);
+}
+//---------------------------------------------------------------------------
+
+void TForm1::RestoreState(ModState *state)
+{
+ if (state) {
+ state->pc->ActivePage = state->ap;
+ if ((state->pc == PageControl1) || (state->pc == PageControl2)) {
+ DefaultVSKey = state->key;
+ TextKeyChanged();
+ }
+ if (state->pc == PageControl3) {
+ DictKeyEdit->Text = (const char *)state->key;
+ }
+ if (state->pc->ActivePage->ControlCount)
+ Form1->ActiveControl = (TWinControl *)state->pc->ActivePage->Controls[0];
+ }
+}
+
+
+void __fastcall TForm1::BackbtnClick(TObject *Sender)
+{
+ list <ModState *>::iterator it;
+
+ logmodstate = false;
+ it = modstates.begin();
+ if (it != modstates.end()) {
+ it++;
+
+ if (it != modstates.end()) {
+ RestoreState(*it);
+ delete *modstates.begin();
+ modstates.erase(modstates.begin(), it);
+ }
+ }
+ logmodstate = true;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Button1Click(TObject *Sender)
+{
+/*
+ list <ModState *>::iterator it;
+ ListBox1->Clear();
+ for (it = modstates.begin(); it != modstates.end(); it++) {
+ ListBox1->Items->Add((*it)->ap->Caption.c_str());
+ }
+*/
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::CopyasBGreekTransliteration1Click(TObject *Sender)
+{
+ char *retbuf;
+ int len;
+ TClipboard *clip = new TClipboard();
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ len = rtf->SelText.Length() * 2;
+ retbuf = new char [ len ];
+ if (!Greek2bGreek(retbuf, rtf->SelText.c_str(), len)) {
+ clip->SetTextBuf(retbuf);
+ }
+ delete clip;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Copy1Click(TObject *Sender)
+{
+ int wordstart;
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ if (!rtf->SelLength) {
+ for (wordstart = rtf->SelStart; (wordstart > -1)&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length()) - rtf->SelStart - 1;
+ }
+ rtf->CopyToClipboard();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::BookmarkItemClick(TObject *Sender)
+{
+ TMenuItem *menuchoice = (TMenuItem *)Sender;
+ const char *source = menuchoice->Caption.c_str();
+ char *value = new char [strlen(source) + 1];
+ int k = 0;
+ for (unsigned int j = 0; j < strlen(source); j++) {
+ if (source[j] != '&')
+ value[k++] = source[j];
+ }
+ value[k] = 0;
+ DefaultVSKey = value;
+ delete [] value;
+ TextKeyChanged();
+}
+
+void __fastcall TForm1::AddBookmark1Click(TObject *Sender)
+{
+// TMenuItem *newitem;
+
+ Bookmarksfrm->bmtree->Items->AddChild(Bookmarksfrm->bmtree->Items->Item[0], (const char *)DefaultVSKey);
+}
+
+void TForm1::AddSectionToMenu(TMenu *menu, TMenuItem *item, TTreeNode *tree)
+{
+ TMenuItem *newitem;
+
+ for (tree = tree->getFirstChild(); tree; tree = tree->getNextSibling()) {
+ newitem = new TMenuItem(menu);
+ newitem->Caption = tree->Text;
+ if (!tree->getFirstChild())
+ newitem->OnClick = BookmarkItemClick;
+ item->Add(newitem);
+ AddSectionToMenu(menu, newitem, tree);
+ }
+}
+
+void TForm1::RefreshBookmarksMenu(TMenu *menu, TTreeView *treeview)
+{
+ TMenuItem *newitem;
+ TTreeNode *tree = 0;
+
+ if (treeview->Items->Count)
+ tree = treeview->Items->Item[0];
+
+ while (menu->Items->Count > 3)
+ menu->Items->Delete(3);
+
+ for (;tree;tree = tree->getNextSibling()) {
+ newitem = new TMenuItem(menu);
+ newitem->Caption = tree->Text;
+ menu->Items->Add(newitem);
+ AddSectionToMenu(menu, newitem, tree);
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::BookmarkbtnClick(TObject *Sender)
+{
+ TPoint menup, point;
+ point.x = 0;
+ point.y = Bookmarkbtn->Height;
+ menup = Bookmarkbtn->ClientToScreen(point);
+ RefreshBookmarksMenu(BookmarkPopup, Bookmarksfrm->bmtree);
+ BookmarkPopup->Popup(menup.x, menup.y);
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TForm1::EditBookmarks1Click(TObject *Sender)
+{
+ Bookmarksfrm->Show();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
+ TShiftState Shift)
+{
+ char buf[5];
+ int val;
+ ModMap::iterator it;
+ TPageControl *pc = PageControl1;
+
+ if ((Shift.Contains(ssCtrl)) && (!Shift.Contains(ssAlt))) {
+ if ((Key >= '0') && (Key <= '9')) {
+ sprintf(buf, "%c", Key);
+ val = atoi(buf);
+
+ if (!Shift.Contains(ssShift)) {
+ if ((Screen->ActiveControl == PageControl2) || (IsChild(PageControl2->Handle, Screen->ActiveControl->Handle)))
+ pc = PageControl2;
+ if ((Screen->ActiveControl == PageControl3) || (IsChild(PageControl3->Handle, Screen->ActiveControl->Handle)))
+ pc = PageControl3;
+
+ it = mainmgr->Modules.find(pc->ActivePage->Caption.c_str());
+ if (it != mainmgr->Modules.end()) {
+ if (ctrlstates[val])
+ delete ctrlstates[val];
+
+ ctrlstates[val] = new ModState(pc, pc->ActivePage, (*it).second->KeyText());
+ }
+ }
+ else RestoreState(ctrlstates[val]);
+ }
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Options1Click(TObject *Sender)
+{
+ ModMap::iterator it;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ ConfigEntMap emap;
+ int color;
+ string tmpval;
+
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ Optionsfrm->CurrentVSColor->Brush->Color =
+ atoi((*(*sit).second.find("CurrentVSColorRed")).second.c_str())
+ | (atoi((*(*sit).second.find("CurrentVSColorGreen")).second.c_str()) << 8)
+ | (atoi((*(*sit).second.find("CurrentVSColorBlue")).second.c_str()) << 16);
+ Optionsfrm->AutoVSColor->Checked = ((atoi((*(*sit).second.find("AutoVSColor")).second.c_str()))?true:false);
+ if ((*sit).second.find("FontSize") != (*sit).second.end())
+ Optionsfrm->UpDown1->Position = atoi((*(*sit).second.find("FontSize")).second.c_str());
+ }
+
+ if ((sit = optionsconf->Sections.find("Bookmarks")) != optionsconf->Sections.end()) {
+ Optionsfrm->AutoBMPersonal->Checked = ((atoi((*(*sit).second.find("AutoSavePersonal")).second.c_str()))?true:false);
+ Optionsfrm->AutoBMOther->Checked = ((atoi((*(*sit).second.find("AutoSaveOther")).second.c_str()))?true:false);
+ }
+
+
+ Optionsfrm->HintPopups->Checked = true;
+ tmpval = ((eit = optionsconf->Sections["Hints"].find("On")) != optionsconf->Sections["Hints"].end())? (*eit).second : (string)"1";
+ if (!atoi(tmpval.c_str()))
+ Optionsfrm->HintPopups->Checked = false;
+
+ if (Optionsfrm->ShowModal() == mrOk) {
+ emap = optionsconf->Sections["Appearance"];
+ color = Optionsfrm->CurrentVSColor->Brush->Color;
+ emap.erase("CurrentVSColorRed"); emap.insert(ConfigEntMap::value_type("CurrentVSColorRed", IntToStr(color & 0xFF).c_str()));
+ emap.erase("CurrentVSColorGreen"); emap.insert(ConfigEntMap::value_type("CurrentVSColorGreen", IntToStr((color >> 8) & 0xFF).c_str()));
+ emap.erase("CurrentVSColorBlue"); emap.insert(ConfigEntMap::value_type("CurrentVSColorBlue", IntToStr((color >> 16) & 0xFF).c_str()));
+ emap.erase("AutoVSColor"); emap.insert(ConfigEntMap::value_type("AutoVSColor", IntToStr((Optionsfrm->AutoVSColor->Checked)?1:0).c_str()));
+ emap.erase("FontSize"); emap.insert(ConfigEntMap::value_type("FontSize", IntToStr(atoi(Optionsfrm->fontSize->Text.c_str())).c_str()));
+ optionsconf->Sections["Appearance"] = emap;
+
+ emap = optionsconf->Sections["Bookmarks"];
+ emap.erase("AutoSavePersonal"); emap.insert(ConfigEntMap::value_type("AutoSavePersonal", IntToStr((Optionsfrm->AutoBMPersonal->Checked)?1:0).c_str()));
+ emap.erase("AutoSaveOther"); emap.insert(ConfigEntMap::value_type("AutoSaveOther", IntToStr((Optionsfrm->AutoBMOther->Checked)?1:0).c_str()));
+ optionsconf->Sections["Bookmarks"] = emap;
+
+ emap = optionsconf->Sections["Hints"];
+ emap.erase("On"); emap.insert(ConfigEntMap::value_type("On", IntToStr((Optionsfrm->HintPopups->Checked)?1:0).c_str()));
+ optionsconf->Sections["Hints"] = emap;
+
+ optionsconf->Save();
+ }
+
+ tmpval = ((eit = optionsconf->Sections["Hints"].find("On")) != optionsconf->Sections["Hints"].end())? (*eit).second : (string)"1";
+
+ if (atoi(tmpval.c_str()))
+ Form1->ShowHint = true;
+ else Form1->ShowHint = false;
+
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::cbBookChange(TObject *Sender)
+{
+ CHBox->Text = "1";
+ VSBox->Text = "1";
+ if (Screen->ActiveControl == cbBook)
+ btnLookupClick(Sender);
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::FormCreate(TObject *Sender)
+{
+ Hint = "";
+ Application->OnHint = DisplayHint;
+ Application->ShowHint = true;
+ this->ShowHint = true;
+}
+
+
+void TForm1::AddVerseChoices(TPopupMenu *menu, const char *buf, TRichEdit *rtf) {
+ TMenuItem *newitem;
+
+ tmpVerseList = VerseKey::ParseVerseList((char *)buf, DefaultVSKey);
+
+ ModMap::iterator target;
+ target = mainmgr->Modules.find(((TPageControl*)rtf->Parent->Parent)->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ char *keytext = 0; // check for and remove return at end of keytext
+ stdstr(&keytext, (*(*target).second).KeyText());
+ if (keytext[strlen(keytext)-1] == '\r')
+ keytext[strlen(keytext)-1] = 0;
+
+ tmpVerseListCaption = String("VerseList from- ") + (*target).first.c_str() + ": " + keytext;
+ delete [] keytext; // ---------------------------------
+ }
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "-";
+ menu->Items->Add(newitem);
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "Create Verse List";
+ newitem->Hint = "Create a New Verse List Window";
+ newitem->Default = true;
+ newitem->OnClick = createVerseList;
+ menu->Items->Add(newitem);
+ int breakcnt = 3;
+ while (!tmpVerseList.Error()) {
+ breakcnt++;
+ newitem = new TMenuItem(menu);
+ newitem->Caption = (const char *)tmpVerseList;
+ newitem->OnClick = BookmarkItemClick;
+ if (!(breakcnt%15))
+ newitem->Break = mbBreak;
+ menu->Items->Add(newitem);
+ tmpVerseList++;
+ }
+
+
+
+}
+
+
+void __fastcall TForm1::PopupMenuPopup(TObject *Sender) {
+
+ int versestart, verseend;
+ TPopupMenu *menu = (TPopupMenu *)Sender;
+ int staticMenuItemsCount = 0;
+ TMenuItem *newitem;
+
+ if (menu == PopupMenu1)
+ staticMenuItemsCount = 3;
+ else if (menu == PopupMenu2)
+ staticMenuItemsCount = 2;
+ else if (menu == PopupMenu3)
+ staticMenuItemsCount = 6;
+
+ while (menu->Items->Count > staticMenuItemsCount)
+ menu->Items->Delete(staticMenuItemsCount);
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ if (!rtf->SelLength) {
+ int entrylen = strlen(rtf->Text.c_str());
+ char *entrytext = new char [ entrylen + 1 ];
+ int selstart = rtf->SelStart;
+ strcpy(entrytext, rtf->Text.c_str());
+// for (versestart = rtf->SelStart; ((versestart)&&(rtf->Text[versestart] != '#')); versestart--);
+ for (versestart = selstart; ((versestart)&&(entrytext[versestart] != '#')); versestart--);
+ if (versestart) {
+ for (verseend = versestart; ((verseend < entrylen) && (entrytext[verseend] != '|')); verseend++);
+ if ((verseend < entrylen) && (verseend > selstart)) {
+ int len = (verseend - versestart) + 1;
+ char *buf = new char [ len + 1 ];
+ memset(buf, 0 , len + 1);
+ strncpy(buf, &entrytext[versestart+1], len - 2); // strip the # and | from the string
+ int buflen = strlen(buf);
+ for (int i = 0; i < buflen; i++) {
+ if ((buf[i] == 10) || (buf[i] == 13))
+ buf[i] = ' ';
+ }
+ AddVerseChoices(menu, buf, rtf);
+ delete [] buf;
+ }
+ }
+ delete [] entrytext;
+ }
+ else {
+ string highlight = Trim(rtf->SelText).c_str();
+ tmpVerseList = VerseKey::ParseVerseList((char *)highlight.c_str(), DefaultVSKey);
+ if (tmpVerseList.Count())
+ AddVerseChoices(menu, highlight.c_str(), rtf);
+
+// newitem = new TMenuItem(menu);
+// newitem->Caption = "Verse Lookup";
+// newitem->Hint = "Attempt to lookup highlighted text as a verse";
+// newitem->OnClick = verseLookupClick;
+// menu->Items->Add(newitem);
+ }
+
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TForm1::createVerseList(TObject *Sender)
+{
+ TVerseListFrm *tmpForm = new TVerseListFrm(this, tmpVerseList);
+ tmpForm->Caption = tmpVerseListCaption;
+ tmpForm->Show();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::freeHandLookupoldKeyPress(TObject *Sender, char &Key)
+{
+ if (Key == '\r') {
+ ListKey tmpVerseList = VerseKey::ParseVerseList(freeHandLookup->Text.c_str(), DefaultVSKey);
+
+ if (tmpVerseList.Count()) {
+ int index = freeHandLookup->Items->IndexOf(freeHandLookup->Text);
+ freeHandLookup->Items->Insert(0, freeHandLookup->Text);
+
+ if (index >= 0)
+ freeHandLookup->Items->Delete(index+1);
+
+ freeHandLookup->ItemIndex = 0;
+
+ if (tmpVerseList.Count() > 1) {
+ TVerseListFrm *tmpForm = new TVerseListFrm(this, tmpVerseList);
+ tmpForm->Caption = "User Verse List";
+ tmpForm->Show();
+ }
+
+ tmpVerseList = TOP;
+ DefaultVSKey = tmpVerseList;
+ TextKeyChanged();
+ }
+ }
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TForm1::RTFMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) {
+ ((TWinControl *)Sender)->SetFocus();
+ TRichEdit *rtf = (TRichEdit *)Sender;
+ if (Button == mbRight) {
+ if (!rtf->SelLength)
+ SendMessage(rtf->Handle, WM_LBUTTONDOWN, MK_LBUTTON, MAKELONG(X, Y));
+ }
+}
+
+
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::EditEntry1Click(TObject *Sender)
+{
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ SWModule *module;
+// EditEntry->RichEdit1->Text = rtf->Text;
+ ModMap::iterator target;
+ target = mainmgr->Modules.find(((TPageControl*)rtf->Parent->Parent)->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ EditEntry->Module = module = (*target).second;
+ EditEntry->RTFDisplay = rtf;
+ }
+ else EditEntry->Module = module = 0;
+ EditEntry->ShowModal();
+ if (EditEntry->ResultBuf) {
+ if (module)
+// DictKeyEdit->Text = EditEntry->ResultBuf; // for testing purposes
+ *module << EditEntry->ResultBuf;
+ }
+ RefreshActiveSheet(PageControl2);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::DeleteEntry1Click(TObject *Sender)
+{
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ SWModule *module;
+ ModMap::iterator target;
+
+ target = mainmgr->Modules.find(((TPageControl*)rtf->Parent->Parent)->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ module = (*target).second;
+ module->Delete();
+ }
+ RefreshActiveSheet(PageControl2);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::LinktoVerse1Click(TObject *Sender)
+{
+ if (VerseSelFrm->ShowModal() == mrOk) {
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ SWModule *module;
+ ModMap::iterator target;
+ SWKey *linkkey = new VerseKey(VerseSelFrm->Panel2->Caption.c_str());
+
+ target = mainmgr->Modules.find(((TPageControl*)rtf->Parent->Parent)->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ module = (*target).second;
+ *module << linkkey;
+ }
+ RefreshActiveSheet(PageControl2);
+ }
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TForm1::GlobalOptionChange(TObject *Sender)
+{
+ TMenuItem *menuchoice = (TMenuItem *)Sender;
+ const char *source = menuchoice->Caption.c_str();
+ char *value = new char [strlen(source) + 1];
+ int k = 0;
+ for (unsigned int j = 0; j < strlen(source); j++) {
+ if (source[j] != '&')
+ value[k++] = source[j];
+ }
+ value[k] = 0;
+ source = menuchoice->Parent->Caption.c_str();
+ char *option = new char [strlen(source) + 1];
+ k = 0;
+ for (unsigned int j = 0; j < strlen(source); j++) {
+ if (source[j] != '&')
+ option[k++] = source[j];
+ }
+ option[k] = 0;
+ mainmgr->setGlobalOption(option, value);
+ delete [] option;
+ delete [] value;
+ TextKeyChanged();
+}
+//---------------------------------------------------------------------------
+
+
+
+void __fastcall TForm1::OptionShowVals(TObject *Sender)
+{
+ TMenuItem *menuChoice = (TMenuItem *)Sender;
+
+ string option = menuChoice->Caption.c_str();
+ int k = 0;
+ const char *source = option.c_str();
+ char *caption = new char [strlen(source) + 1];
+ for (unsigned int j = 0; j < strlen(source); j++) {
+ if (source[j] != '&')
+ caption[k++] = source[j];
+ }
+ caption[k] = 0;
+
+ string value = mainmgr->getGlobalOption(caption);
+ delete [] caption;
+ for (int i = 0; i < menuChoice->Count; i++) {
+ int k = 0;
+ char *source = menuChoice->Items[i]->Caption.c_str();
+ char *caption = new char [strlen(source) + 1];
+ for (unsigned int j = 0; j < strlen(source); j++) {
+ if (source[j] != '&')
+ caption[k++] = source[j];
+ }
+ caption[k] = 0;
+ if (!stricmp(caption, value.c_str()))
+ menuChoice->Items[i]->Checked = true;
+ else menuChoice->Items[i]->Checked = false;
+ delete [] caption;
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::Contents1Click(TObject *Sender)
+{
+ string helpDir;
+ ConfigEntMap::iterator it = optionsconf->Sections["Help"].find("Directory");
+ if (it != optionsconf->Sections["Help"].end())
+ helpDir = (*it).second;
+ else helpDir = ".\\help";
+
+ string helpExe = helpDir + "\\sword.chm";
+
+ if ((int)ShellExecute(this->Handle, "open", helpExe.c_str(), NULL, NULL, SW_SHOWNORMAL) < 33) {
+ helpExe = helpDir + "\\index.html";
+ ShellExecute(this->Handle, "open", helpExe.c_str(), NULL, NULL, SW_SHOWNORMAL);
+ }
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
+{
+ int saveCount = 5;
+
+
+ ConfigEntMap section;
+ ConfigEntMap::iterator entryIt;
+
+ section = layoutconf->Sections["History"];
+ entryIt = section.find("SearchSaveCount");
+ if (entryIt != section.end())
+ saveCount = atoi(entryIt->second.c_str());
+ else section.insert(ConfigEntMap::value_type("SearchSaveCount", "5"));
+
+ section.erase("SearchText");
+ for (int loop = 0; ((loop < saveCount) && (loop < Form2->SearchText->Items->Count)); loop++)
+ section.insert(ConfigEntMap::value_type("SearchText", Form2->SearchText->Items->Strings[loop].c_str()));
+
+ entryIt = section.find("LookupSaveCount");
+ if (entryIt != section.end())
+ saveCount = atoi(entryIt->second.c_str());
+ else section.insert(ConfigEntMap::value_type("LookupSaveCount", "5"));
+
+ section.erase("LookupText");
+ for (int loop = 0; ((loop < saveCount) && (loop < freeHandLookup->Items->Count)); loop++)
+ section.insert(ConfigEntMap::value_type("LookupText", freeHandLookup->Items->Strings[loop].c_str()));
+
+ section.erase("LastVerse");
+ section.insert(ConfigEntMap::value_type("LastVerse", (const char *)DefaultVSKey));
+
+ layoutconf->Sections["History"] = section;
+ layoutconf->Save();
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::lbDictKeysClick(TObject *Sender)
+{
+ DictKeyEdit->Text = lbDictKeys->Items->Strings[lbDictKeys->ItemIndex];
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder4/BibleCS/mainfrm.dfm b/apps/windoze/CBuilder4/BibleCS/mainfrm.dfm
new file mode 100644
index 0000000..76b27a2
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/mainfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/mainfrm.h b/apps/windoze/CBuilder4/BibleCS/mainfrm.h
new file mode 100644
index 0000000..60cdc25
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/mainfrm.h
@@ -0,0 +1,252 @@
+//---------------------------------------------------------------------------
+#ifndef mainfrmH
+#define mainfrmH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ExtCtrls.hpp>
+#include <vcl\ComCtrls.hpp>
+#include <swmgr.h>
+#include <swtext.h>
+#include <strkey.h>
+#include <regex.h>
+#include <listkey.h>
+#include "swdisprtfchap.h"
+#include <vcl\Buttons.hpp>
+#include <vcl\Menus.hpp>
+#include <vcl\DdeMan.hpp>
+//#include <NMHTML.hpp>
+#include <OleCtrls.hpp>
+#include <ToolWin.hpp>
+//#include <vcl\isp.hpp>
+#include <shellapi.h>
+#include <Graphics.hpp>
+#include <ImgList.hpp>
+#include <jpeg.hpp>
+#include <list>
+#include <vector>
+
+class RTFDisp : public SWDisplay {
+ SWDispRTF *edit;
+public:
+ RTFDisp(SWDispRTF *iedit) { edit = iedit; }
+ RTFDisp() {}
+ char Display(SWModule &imodule) {
+ return edit->Display(imodule);
+ }
+};
+
+/*
+class HREFDisp : public SWDisplay {
+ THTML *edit;
+public:
+ HREFDisp(THTML *iedit) { edit = iedit; }
+ HREFDisp() {}
+ char Display(SWModule &imodule) {
+ edit->RequestDoc((char *)imodule);
+ }
+};
+*/
+
+class DispExternal : public SWDisplay {
+public:
+ DispExternal() {}
+ char Display(SWModule &imodule) {
+ SHELLEXECUTEINFO info;
+ info.cbSize = sizeof(SHELLEXECUTEINFO);
+ info.fMask = SEE_MASK_NOCLOSEPROCESS; //SEE_MASK_CLASSNAME;
+ info.hwnd = GetFocus();
+ info.lpVerb = "open";
+ info.lpFile = (char *)imodule;
+ info.lpParameters = NULL;
+ info.lpDirectory = NULL;
+ info.nShow = 0;
+// info.lpClass = ".html";
+ ShellExecuteEx(&info);
+// ShellExecute(edit->Handle, "open", (char *)imodule, NULL, NULL, SW_SHOWNORMAL);
+ return 0;
+ }
+};
+
+
+class ModState {
+public:
+ ModState(TPageControl *ipc, TTabSheet *iap, SWKey ikey) { pc = ipc; ap = iap; key = ikey; }
+ ModState();
+ TPageControl *pc;
+ TTabSheet* ap;
+ SWKey key;
+};
+
+//---------------------------------------------------------------------------
+class TForm1 : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *pnlTextCom;
+ TSplitter *Splitter2;
+ TPanel *pnlText;
+ TPanel *pnlComment;
+ TSplitter *Splitter1;
+ TPanel *pnlDict;
+ TPageControl *PageControl1;
+ TPageControl *PageControl2;
+ TStatusBar *StatusBar1;
+ TPageControl *PageControl3;
+ TMainMenu *MainMenu1;
+ TMenuItem *Search1;
+ TMenuItem *NewSearchWindow1;
+ TMenuItem *Help1;
+ TMenuItem *About1;
+ TPopupMenu *PopupMenu2;
+ TMenuItem *DictionaryLookup1;
+ TMenuItem *File1;
+ TMenuItem *SaveLayout1;
+ TMenuItem *Exit1;
+ TMenuItem *N1;
+ TDdeServerItem *Search;
+ TDdeServerItem *Lookup;
+ TDdeServerConv *Bible;
+ TPopupMenu *PopupMenu1;
+ TMenuItem *MenuItem1;
+ TMenuItem *Copy1;
+ TMenuItem *CopyasBGreekTransliteration1;
+ TMenuItem *Copy2;
+ TMenuItem *Edit1;
+ TMenuItem *Copy3;
+ TPopupMenu *BookmarkPopup;
+ TMenuItem *AddBookmark1;
+ TMenuItem *N2;
+ TMenuItem *EditBookmarks1;
+ TMenuItem *Options1;
+ TCoolBar *CoolBar1;
+ TImageList *ImageList1;
+ TImage *BackBtnImage;
+ TImage *SearchBtnImage;
+ TToolBar *ToolBar2;
+ TToolButton *ToolButton3;
+ TToolButton *ToolButton4;
+ TPanel *pnlSpeed;
+ TPanel *Panel1;
+ TComboBox *cbBook;
+ TEdit *CHBox;
+ TUpDown *UpDown1;
+ TEdit *VSBox;
+ TUpDown *UpDown2;
+ TSpeedButton *btnLookup;
+ TToolBar *ToolBar1;
+ TImageList *ImageList2;
+ TImage *BookmarkBtnImage;
+ TSpeedButton *Bookmarkbtn;
+ TPopupMenu *PopupMenu3;
+ TMenuItem *MenuItem2;
+ TMenuItem *MenuItem3;
+ TMenuItem *N3;
+ TMenuItem *EditEntry1;
+ TMenuItem *DeleteEntry1;
+ TMenuItem *LinktoVerse1;
+ TMenuItem *Options2;
+ TMenuItem *Contents1;
+ TComboBox *freeHandLookup;
+ TPanel *Panel2;
+ TSplitter *Splitter3;
+ TRichEdit *DictKeyEdit;
+ TListBox *lbDictKeys;
+ void __fastcall PageControl1Change(TObject *Sender);
+ void __fastcall btnLookupClick(TObject *Sender);
+ void __fastcall PageControl2Change(TObject *Sender);
+
+
+
+ void __fastcall DictKeyEditChange(TObject *Sender);
+ void __fastcall PageControl3Change(TObject *Sender);
+ void __fastcall NewSearchWindow1Click(TObject *Sender);
+
+ void __fastcall Exit1Click(TObject *Sender);
+ void __fastcall About1Click(TObject *Sender);
+ void __fastcall DictionaryLookup1Click(TObject *Sender);
+ void __fastcall SaveLayout1Click(TObject *Sender);
+
+
+ void __fastcall FormShow(TObject *Sender);
+
+ void __fastcall LookupPokeData(TObject *Sender);
+
+ void __fastcall SearchPokeData(TObject *Sender);
+ void __fastcall UpDown3Click(TObject *Sender, TUDBtnType Button);
+ void __fastcall UpDown1Click(TObject *Sender, TUDBtnType Button);
+
+
+ void __fastcall BackbtnClick(TObject *Sender);
+ void __fastcall Button1Click(TObject *Sender);
+ void __fastcall CopyasBGreekTransliteration1Click(TObject *Sender);
+ void __fastcall Copy1Click(TObject *Sender);
+
+
+
+ void __fastcall AddBookmark1Click(TObject *Sender);
+ void __fastcall BookmarkItemClick(TObject *Sender);
+ void __fastcall BookmarkbtnClick(TObject *Sender);
+ void __fastcall EditBookmarks1Click(TObject *Sender);
+
+ void __fastcall FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
+ void __fastcall Options1Click(TObject *Sender);
+ void __fastcall cbBookChange(TObject *Sender);
+
+ void __fastcall FormCreate(TObject *Sender);
+ void __fastcall DisplayHint(TObject* Sender) ;
+ void __fastcall PopupMenuPopup(TObject *Sender);
+ void __fastcall createVerseList(TObject *Sender);
+ void __fastcall freeHandLookupoldKeyPress(TObject *Sender, char &Key);
+ void __fastcall RTFMouseDown(TObject *Sender, TMouseButton Button,
+ TShiftState Shift, int X, int Y);
+ void __fastcall EditEntry1Click(TObject *Sender);
+ void __fastcall DeleteEntry1Click(TObject *Sender);
+ void __fastcall LinktoVerse1Click(TObject *Sender);
+
+ void __fastcall GlobalOptionChange(TObject *Sender);
+
+
+ void __fastcall OptionShowVals(TObject *Sender);
+ void __fastcall Contents1Click(TObject *Sender);
+ void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
+ void __fastcall lbDictKeysClick(TObject *Sender);
+ void __fastcall verseLookupClick(TObject *Sender);
+private: // User declarations
+ list <SWDisplay *> displays; // so we can delete each display we create
+ list <ModState *> modstates;
+ vector <ModState *> ctrlstates;
+ bool logmodstate;
+ bool freshdict;
+
+ char CreateTextPane(SWModule *mod, char *font = 0);
+ char CreateCommentPane(SWModule *mod);
+ char CreateLDPane(SWModule *mod);
+ void PushState();
+ void BackState();
+ void ForwardState();
+ void BuildRTFHeader(char *buf, char *font, int max);
+ void AddSectionToMenu(TMenu *menu, TMenuItem *item, TTreeNode *tree);
+ void FillDictKeys();
+ void AddVerseChoices(TPopupMenu *menu, const char *buf, TRichEdit *rtf);
+
+public: // User declarations
+ VerseKey DefaultVSKey;
+ SWKey DefaultStrKey;
+ SWMgr *mainmgr;
+ SWConfig *layoutconf;
+ SWConfig *optionsconf;
+ __fastcall TForm1(TComponent* Owner);
+ __fastcall ~TForm1();
+ void RefreshActiveSheet(TPageControl *ts);
+ void TextKeyChanged(); // updates dependents on TextKeyChanged
+ void RefreshBookmarksMenu(TMenu *menu, TTreeView *tree);
+ void RestoreState(ModState *state);
+ ListKey tmpVerseList;
+ String tmpVerseListCaption;
+};
+//---------------------------------------------------------------------------
+extern TForm1 *Form1;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/BibleCS/mods.conf b/apps/windoze/CBuilder4/BibleCS/mods.conf
new file mode 100644
index 0000000..dbfa84a
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/mods.conf
@@ -0,0 +1,487 @@
+[Globals]
+;AutoInstall=./newmods/
+
+
+[OLB]
+DataPath=../../../../modules/texts/rawgbf/olb/
+ModDrv=RawGBF
+GlobalOptionFilter=GBFStrongs
+GlobalOptionFilter=GBFFootnotes
+Description=OLB Converted Module
+About= OLB Converted Module
+
+[-+*Personal*+-]
+DataPath=../../../../modules/comments/rawfiles/personal/
+ModDrv=RawFiles
+Description=Personal Commentary
+About=This module allows you to store your own commentary.
+
+[SpanishRVA]
+DataPath=../../../../modules/texts/rawgbf/spanishrva/
+ModDrv=RawGBF
+Description=The New International Version
+About=\qc El texto b¡blico designado RVA es de LA SANTA BIBLIA, \par \
+VERSION REINA-VALERA ACTUALIZADA. Copyright 1982, 1986, \par \
+1987, 1989 de la Casa Bautista de Publicaciones. \par\par \
+Todos los derechos reservados. \par\par \
+El texto computarizado de la RVA para LA BIBLIA COM- \par \
+PUTARIZADA no puede ser modificado ni copiado sin per- \par \
+miso por escrito por la Casa Bautista de Publicaciones. \par\pard \
+
+
+[NASB]
+DataPath=../../../../modules/texts/rawgbf/nasb/
+ModDrv=RawGBF
+Description=The New American Standard Bible
+About=\qc -=+* see the file errata.doc for important verse descrepencies *+=- \par\par \
+The New American Standard Bible \par \
+Copyright THE LOCKMAN FOUNDATION, 1960, 1962, 1963 \par \
+La Habra, Calif. \par \
+All rights in this book are reserved. \par \
+No part may be reproduced in any manner without \par \
+permission in writing from The Lockman Foundation, \par \
+except brief quotations used in connection with \par \
+a review in a magazine or newspaper. \par\pard
+
+
+
+
+[NIV]
+DataPath=../../../../modules/texts/rawgbf/niv/
+ModDrv=RawGBF
+Description=The New International Version
+About=\qc -=+* see the file errata.doc for important verse descrepencies *+=- \par\par\pard \
+Quotations designated (NIV) are from \par\par \
+THE HOLY BIBLE: NEW INTERNATIONAL VERSION®. \par \
+Copyright © 1973, 1978, 1984 by International Bible Society; \
+Zondervan Publishing House. All rights reserved. \par\par \
+The "NIV" and "New International Version" trademarks are registered in \
+the United States Patent and Trademark Office by International Bible \
+Society. \par\par \
+The NIV text may be quoted in any form (written, visual, electronic, or \
+audio), up to and inclusive of five hundred (500) verses or less without \
+written permission, providing the verses quoted do not amount to a \
+complete book of the Bible, do not comprise 25% or more of the total \
+text of the work in which they are quoted, and the verses are not being \
+quoted in a commentary or other Biblical reference work. This \
+permission is contingent upon an appropriate copyright acknowledgment. \par\par \
+The NIV database is not a shareware program and may not be \
+duplicated. \par\par\pard
+
+
+[JFB]
+DataPath=../../../../modules/comments/hrefcom/jfb/
+ModDrv=HREFCom
+Prefix=http://ccel.wheaton.edu/j/jfb/jfb/
+;External=0
+;Prefix=file:///../../../../modules/comments/hrefcom/jfb/
+External=1
+Description=Jamison Faucett Brown Bible Commentary
+About=\qc Jamison Faucett Brown Commentary
+
+
+[Naves]
+DataPath=../../../../modules/lexdict/rawld/naves/naves
+ModDrv=RawLD
+Description=Nave's Topical Bible
+About= -=+* see the file 'naves.doc' for more details *+=-\par\par \
+\qc Nave's Topical Bible \par\par \
+Public Domain -- Copy Freely \par\par\pard \
+ Nave's Topics were originaly produced by Orville J. Nave, A.M., D.D., \
+LL.D. while serving as a Chaplin in the United States Army. He referred \
+to this work as "the result of fourteen years of delightful and untiring \
+study of the Word of God." Nave's topics were originally published in \
+the early 1900's, and a photo-offset reproduction is currently published \
+by Hendrickson, ISBN 0-917006-02-X. The title page states that this \
+work consists of 20,000+ topics and subtopics, and 100,000 references to \
+the Scriptures. \par\par \
+ The most current and correct copies of these files can be obtained from the \
+following. If any errors are located, please ensure you have the latest files, and if so, \
+we would appreciate being informed of the error. \par\par \
+ The Bible Foundation \par \
+ http://www.bf.org \par\par \
+ Or by contacting: \par\par \
+ Mark Fuller \par \
+ 1129 East Loyola Drive \par \
+ Tempe, Arizona, 85282 \par \
+ 602-829-8542 (voice)
+
+[BBE]
+DataPath=../../../../modules/texts/rawtext/bbe/
+ModDrv=RawText
+Description=The Bible in Basic English
+About= \qc -=+* see the file 'bbe.doc' for more details *+=-\par\par \
+1949/1964 Bible In Basic English \par \
+Public Domain -- Copy Freely \par\par\pard \
+The Bible In Basic English was printed in 1965 by Cambridge Press in \
+England. Published without any copyright notice and distributed in \
+America, this work fell immediatly and irretrievably into the Public \
+Domain in the United States according to the UCC convention of that \
+time. A call to Cambridge prior to placing this work in etext resulted \
+in an admission of this fact. \par\par \
+For more information about the text, see the file INTRO.BBE which \
+contains the printed introduction page. \par\par \
+The most current and correct copies of these files can be obtained from \
+the following. If any errors are located, please ensure you have the \
+latest files, and if so, we would appreciate being informed of the \
+error. \par\par \
+ The Bible Foundation \par \
+ http://www.bf.org \par\par \
+Or by contacting: \par \
+ Mark Fuller\par \
+ 1129 East Loyola Drive \par \
+ Tempe, Arizona, 85282 \par \
+ 602-829-8542 (voice)
+
+[IndTB]
+DataPath=../../../../modules/texts/rawtext/indtb/
+ModDrv=RawText
+Description=Indonesian Terjemahan Baru
+About=\qc Terjemahan Baru (TB) \par\par \
+Copyright Lembaga Alkitab Indonesia \par \
+(Indonesian Bible Society), 1994. \par \
+Released for non-profit scholarly and personal use. \par \
+Not to be sold for profit. \par \
+When making formal public reference to the materials, \par \
+please acknowlege The Indonesian Bible Society \par \
+(Lembaga Alkitab Indonesia) as the copyright holder. \par \pard
+
+
+
+[IndBIS]
+DataPath=../../../../modules/texts/rawtext/indbis/
+ModDrv=RawText
+Description=Indonesian Bahasa Indonesia Sehari-hari (BIS)
+About=\qc Bahasa Indonesia Sehari-hari (BIS) \par\par \
+Copyright Lembaga Alkitab Indonesia \par \
+(Indonesian Bible Society), 1994. \par \
+Released for non-profit scholarly and personal use. \par \
+Not to be sold for profit. \par \
+When making formal public reference to the materials, \par \
+please acknowlege The Indonesian Bible Society \par \
+(Lembaga Alkitab Indonesia) as the copyright holder. \par \pard
+
+
+
+[Websters]
+DataPath=../../../../modules/texts/rawtext/websters/
+ModDrv=RawText
+Description=The Webster Bible
+About= -=+* see the files 'intro.txt' and 'revision.txt' for more details *+=-\par\par \
+\qc THE \par HOLY BIBLE, \par CONTAINING THE \par OLD AND NEW TESTAMENTS, \par IN THE \par \
+COMMON VERSION. \par WITH \par AMENDMENTS OF THE LANGUAGE, \par \
+BY NOAH WEBSTER, LL. D. \par\par ------------- \par NEW HAVEN: \par \
+PUBLISHED BY DURRIE & PECK. \par \
+Sold by HEZEKIAH HOWE & CO., and A. H. MALTBY, New Haven; \par \
+and by N.&J. WHITE, New York. \par\par ------ \par 1833 \par\par \
+Webster Bible Electronic Format.\par \
+PUBLIC DOMAIN\par\par \
+February 1992\par\par\pard \
+Webster Biography:\par \
+Noah Webster: America's first grammarian and founding father of American education.\par\par \
+ In 1828 Noah Webster published the 'American Dictionary of the English Language'. This \
+dictionary demonstrates the Christian values which were found in America's educational \
+and scholarly systems. It is from this early dictionary that we have todays popular \
+'Webster Dictionary'. In 1833 Noah Webster, who had mastered 20 languages including \
+Hebrew and Greek, published the King James Authorized Version 'with amendments to the \
+language'. In stating his reasons for producing this version of the Bible, Webster said:\par\par \
+ 'In the present version, the language is, in general, correct and perspicuous; \
+... in many passages uniting sublimity with beautiful simplicity. In my view, the general \
+style of the version ought not to be altered. But, in the lapse of two or three centuries, \
+changes have taken place, which, in particular passages, impair the beauty; in others, \
+obscure the sense, of the original languages. ... they do not present to the reader \
+the Word of God. ... My principal aim is to remedy this evil.'\par\par \
+It was with cautious reverence that Webster corrected misused grammar, removed offensive \
+terms and expressions, and substituted commonly understood words for words that had fallen \
+into disuse, or no longer carried the same meaning.\par\par\
+ In 1834, the year after completing the Webster Bible, Noah Webster wrote a \
+companion piece titled 'Value of the Bible and Excellence of the Christian Religion - For \
+the Use of Families and Schools'.\par\par\
+ Webster, who was considered 'The schoolmaster to a nation' and produced the \
+earliest spellers and textbooks for America's school children, believed Christian religious \
+values and American public education to be inseparable. He believed the Webster Bible to \
+be 'the most important enterprise' of his life, and referred to the Bible as:\par\par \
+ '... the chief moral cause of all that is good, and the best corrector of all that \
+is evil, in human society; the best book for regulating the temporal concerns of men, and \
+the only book that can serve as an infallible guide to future felicity.'\par\par \
+Introduction to the Electronic Format:\par \
+ Beginning in July of 1991 the task of placing the Webster Bible text in electronic \
+format began. The original purpose was to provide Larry Pierce, who produces the \
+On-Line Bible program, with a more modern *public domain* text, similar in content and \
+style to the AV but with a grammar that would provide better comprehension in todays \
+English.\par\par\
+ I plan on maintaining an accurate copy of the Webster text. Anyone finding an \
+error should contact me; Anyone desiring to obtain the latest, most correct text, can find \
+it on the Bible Foundation BBS, or can contact me in the following methods:\par \
+ Internet acus10@waccvm.corp.mot.com\par \
+ Home phone 602-829-8542\par \
+ Address Mark Fuller\par \
+ 1129 East Loyola Drive\par \
+ Tempe Arizona, 85282\par \
+ Bible Foundation http://www.bf.org\par\par \
+ I would like to thank the Bible Foundation not only for scanning nearly the entire \
+Webster Bible but for encouraging me to undertake this monumental work; particularly around \
+page 20 when I realized what I had gotten myself into. Special thanks to Jerry Kingery of \
+the Bible Foundation for scanning, and Jerry Hastings for doing some preliminary scan \
+cleaning and making the texts available on the BBS.
+
+
+[Sve]
+DataPath=../../../../modules/texts/rawtext/sve/
+ModDrv=RawText
+Description=Swedish Bible 1917 New Testament
+About=\qc BIBELN eller DEN HELIGA SKRIFT \par innehållande \par \
+NYA TESTAMENTETS KANONISKA BÖCKER \par i överensstämmelse med den av \par \
+KONUNGEN ÅR 1917 \par gillade och stadfästa översättningen \par\par \
+THE BIBLE or THE HOLY SCRIPT \par containing \par CANONICAL BOOKS OF NEW TESTAMENT \par \
+in conformity with that of \par THE KING YEAR 1917 \par \
+liked and confirmed translation \par\par\pard \
+ Thank you to Roland Nygren for making this work available. For the latest \
+information, to report corrections, or for other correspondence: \par\par \
+ Roland Nygren \par \
+ qtxrony@aom.ericsson.se
+
+[VNT]
+DataPath=../../../../modules/texts/rawtext/vnt/
+ModDrv=RawText
+Description=Valera 1858 Spanish New Testament Text
+About=\qc-=+* see the file 'intro.rtf' for more details *+=- \par\par \
+El \par NUEVO TESTAMENTO \par DE \par NUESTRO SEÑOR JESU-CRISTO \par \
+QUE CONTIENE \par LOS ESCRITOS EVANGÉLICOS Y APOSTÓLICOS \par \
+ANTIGUA VERSION DE CIPRIANO DE VALERA \par REVISADA \par \
+Con arreglo al original griego. \par MADRID \par \
+SE HALLA EN EL DEPÓSITO CENTRAL DE LA SOCIEDAD BÍBLICA B. Y E. \par \
+Calle de Preciados, número 46. \par 1884 \par EL SANTO EVANGELIO \par DE \par \
+NUESTRO SEÑOR JESU-CRISTO \par SEGUN \par SAN MATEO. \par\par \pard \
+ Thank you to Bill Kincaid for making this work available. \
+This New Testament text (Valera 1858) was downloaded from The Word of God in \
+Spanish: Valera 1909 web site. (http://www.west.ga.net/~ForHim/word.html) This text is not \
+copyrighted, you are free to distribute it as you wish. We only ask out of respect for the \
+work we invested in bringing you this text (Finding, scanning, and proofing.), that you \
+leave this notice and the following introduction ([see the file intro.rtf]) in any copies \
+that you might make publish on the Internet. If you have any questions or comments please \
+contact: mnj@acnet.net \par\par \
+ Este texto del Nuevo Testamento (Valera 1858) fue bajado del la pagina de \
+web: La Palabra de Dios en Español: Valera 1909. (http://www.west.ga.net/~ForHim/word.html) \
+ Este texto no tiene derechos reservados, puedes distribuirlo como quieres. Solamente \
+pedimos que por respeto del trabajo que invertimos en dándote este texto (Encontrando, \
+escaneando, y corrigiendo.), que dejes esta noticia y la siguiente introducción \
+(FILE: intro.rtf) en cualquier copia que publicas sobre el Internet. Si tienes cualquier \
+pregunta o comentario por favor escribe a: mnj@acnet.net.
+
+
+[MHC]
+DataPath=../../../../modules/comments/rawcom/mhc/
+ModDrv=RawCom
+Description=Matthew Henry's Commentary on the Whole Bible
+About=\qc Matthew Henry's \par Concise Commentary on the Whole Bible \par\par \
+Public Domain--Copy Freely. \par\par\pard \
+ This text matches the printed edition as published by Moody Press, 28th printing, \
+no Copyright displayed. ISBN: 0-8024-5190-X. This text was created from an existing \
+electronic copy, with roughly 1200 errors corrected. The current files can be \
+found at: \par\par \
+ The Bible Foundation, \par \
+ http://www.bf.org \par\par \
+ If any errors are located, please notify me at the above BBS, or at: \par\par \
+ Mark Fuller \par \
+ 1129 E. Loyola Dr. \par \
+ Tempe, Az. 85282 \par \
+ (602) 829-8542
+
+
+
+[RWP]
+DataPath=../../../../modules/comments/rawcom/rwp/
+ModDrv=RawCom
+Description=Robertson's Word Pictures
+About=\qc -=+* see the files 'about.txt', 'title.pg', 'rwp.int', 'read.me', and \
+'correct.txt' for more details *+=- \par\par \
+ Robertson's \par Word Pictures in the \par New Testament \par\par \
+A.T. Robertson, A.M., D.D., LL. D., Litt.D. \par\par\pard \
+Vol 1,2,3,4 Public Domain -- Copy Freely \par\par Volume 5 (c) 1932. \par \
+Renewal 1960 Broadman Press. All rights reserved. \par Used by permission. \par \
+[Copyright expires Dec. 31, 2006.] \par\par Volume 6 (c) 1933. \par \
+Renewal 1960 Broadman Press. All rights reserved. \par Used by permission. \par \
+[Copyright expires Dec. 31, 2007.] \par\par \
++--------------- Copy Freely --------------+ \par\par \
+ The current files can be found at: \par\par \
+ The Bible Foundation, \par \
+ http://www.bf.org \par\par \
+ If any errors are located, please notify me at the above location, or at: \par\par \
+ Mark Fuller \par \
+ 1129 E. Loyola Dr. \par \
+ Tempe, Az. 85282 \par \
+ (602) 829-8542
+
+
+[Eastons]
+DataPath=../../../../modules/lexdict/rawld/eastons/eastons
+ModDrv=RawLD
+Description=Easton's Bible Dictionary
+About=\qc Easton's 1897 Bible Dictionary \par\par \
+Public Domain -- Copy Freely \par\par\pard \
+ These Dictionary topics are from M.G. Easton M.A., D.D., Illustrated Bible \
+Dictionary, Third Edition, published by Thomas Nelson, 1897. Due to the nature of etext, \
+the illustrated portions of the Dictionary have not been included. \par\par \
+ The most current and correct copies of these files can be obtained from the \
+following. If any errors are located, please ensure you have the latest files, and if so, \
+we would appreciate being informed of the error. \par\par \
+ The Bible Foundation \par \
+ http://www.bf.org \par\par \
+ Or by contacting: \par\par \
+ Mark Fuller \par \
+ 1129 East Loyola Drive \par \
+ Tempe, Arizona, 85282 \par \
+ 602-829-8542 (voice)
+
+[Vines]
+DataPath=../../../../modules/lexdict/rawld/vines/vines
+ModDrv=RawLD
+Description=Vines Bible Dictionary
+About=\qc Vine's Expository Dictionary \par of New Testament Words \par\par \
+Public Domain -- Copy Freely \par\par\pard \
+ These Dictionary topics are from W.E. Vine's M.A., Expository Dictionary of New Testament \
+Words published in 1940 and without copyright. \par\par \
+ The most current and correct copies of these files can be obtained from the \
+following. If any errors are located, please ensure you have the latest files, and if so, \
+we would appreciate being informed of the error. \par\par \
+ The Bible Foundation \par \
+ http://www.bf.org \par\par \
+ Or by contacting: \par\par \
+ Mark Fuller \par \
+ 1129 East Loyola Drive \par \
+ Tempe, Arizona, 85282 \par \
+ 602-829-8542 (voice)
+
+
+[Strongs Hebrew (OT)]
+DataPath=../../../../modules/lexdict/rawld/strongs/hebrew
+ModDrv=RawLD
+Description=Strong's / Englishman's Hebrew Bible Dictionary
+About=\qc Strong's / Englishman's Bible Dictionary \par\par \pard \
+This is a lexicon of Hebrew words keyed off of Strong's numbers.
+
+[Strongs Greek (NT)]
+DataPath=../../../../modules/lexdict/rawld/strongs/greek
+ModDrv=RawLD
+Description=Strong's / Englishman's Greek Bible Dictionary
+About=\qc Strong's / Englishman's Bible Dictionary \par\par \pard \
+This is a lexicon of Greek words keyed off of Strong's numbers.
+
+
+
+[WEB]
+DataPath=../../../../modules/texts/rawgbf/web/
+ModDrv=RawGBF
+Description=The World English Bible
+About= -=+* see the file 'info.txt' for more details *+=-\par\par \
+\qc The World English Bible (WEB) \par\par Public Domain \par\par \pard \
+ The World English Bible is a 1997 revision of the American Standard Version of the \
+Holy Bible, first published in 1901. It is in the Public Domain. Please feel free to copy \
+and distribute it freely. \par\par \
+ Thank you to Michael Paul Johnson for making this work available. For the latest \
+information, to report corrections, or for other correspondence: \par\par \
+ Michael Paul Johnson \par \
+ http://www.ebible.org/bible \par \
+ mpj@ebible.org
+
+
+[ORTHJBC]
+DataPath=../../../../modules/texts/rawtext/orthjbc/
+ModDrv=RawText
+Description=The Orthodox Jewish Brit Chadasha
+About= \qc THE ORTHODOX JEWISH BRIT CHADASHA \par\par \pard \
+ A translation from the original language without goyishe and non-frum \
+terminology. \par\par \
+(C)COPYRIGHT, 1996, ARTISTS FOR ISRAEL INTERNATIONAL \par \
+ALL RIGHTS RESERVED \par \
+USED BY PERMISSION \par\par \
+ Thank you to Dr. Phil Goble for making this work available. This work is NOT in \
+the public domain. Please honor all applicable copyright laws. Permission to distribute \
+this text in its present electronic format for personal use has been granted by the \
+copyright holder. \par\par \
+ Please direct all correspondence to: \par\par \
+ Artists for Israel International \par \
+ http://www.afii.org \par \
+ P. O. Box 2056 \par \
+ New York, NY 10163
+
+
+
+[N27U4]
+DataPath=../../../../modules/texts/rawtext/nu/
+ModDrv=RawText
+Font=Greek
+Description=Nestle Aland 27th Ed./ UBS 4th Ed. Greek Text
+About= \qc Thank you to Barbara Aland, Kurt Aland, Johannes Karavidopoulos, Carlo M. \
+Martini, and Bruce M. Metzger for bringing this work to us. \par\par \pard \
+GREEK.TTF Greek Regular Font (C) Peter J. Gentry & Andrew M. Fountain, 1993. All Rights \
+Reserved. Special thanks to the copyright holders for permission to use these fonts with \
+The SWORD Project for personal use. For a complete list of Greek / Hebrew Utilities or \
+inquiries for other use may be directed to: \par\par \
+ Peter J. Gentry \par \
+ 55 Ambercroft Blvd. \par \
+ Scarborough \par \
+ Ontario, Canada \par \
+ M1W 2Z6
+
+
+[KJV]
+DataPath=../../../../modules/texts/rawtext/kjv/
+ModDrv=RawText
+Description=King James Version of 1611
+About= -=+* see the file 'kjvpref.rtf' for more details *+=-\par\par \
+ This is the King James Version of the Holy Bible (also known as the Authorized \
+Version) in Rich Text Format (among others, italics and red included). The preface from \
+the translators is in KJVPREF.RTF. These files are in the Public Domain. \par\par \
+ May God bless you as you study His Word. \par \
+ Michael Paul Johnson \par \
+ Sysop, Colorado Catacombs BBS (303-772-1062) \par \
+ email: mpj@csn.net \par \
+ http://www.csn.net/~mpj
+
+
+
+
+[KJVSTR]
+DataPath=../../../../modules/texts/rawtext/kjvstr/
+ModDrv=RawText
+Description=King James Version of 1611 w/ Strongs Numbers
+About= This is the King James Version of the Holy Bible (also known as the Authorized \
+Version) with embedded Strong's Numbers. This makes useful for looking up the exact \
+original language word in a lexicon that is keyed off of Strong's numbers. \par\par \
+Special thanks to Larry Pierce for extensive work encorporating the embedded \
+Strong's numbers in this module. This feature is not in the public domain. \
+Permission to use this feature for personal use has been granted by the author. \par \
+Inquiries and comments may be directed to: \par\par \
+ Larry Pierce \par \
+ 103526.2724@compuserve.com \par \
+ http://www.online-bible.com
+
+[FrenchLSG]
+DataPath=../../../../modules/texts/rawgbf/frenchlsg/
+ModDrv=RawGBF
+GlobalOptionFilter=GBFStrongs
+Description=French 1910 Louis Segond Version
+About=The 1910 edition of the Louis Segond Bible is keyed to Strong's numbers. \
+All this material may be freely copied and shared with your friends. \
+If you wish to use this material for other purposes, please contact: \par\par \
+ Stg. Publishare \par \
+ c/o Transvaalstraat 5 \par \
+ 3312 EX DORDRECHT \par \
+ The Netherlands \par\par \
+to obtain the latest accurate copy. The Englishman Strong's numbers are \
+not in the public domain and any commercial use requires a licence.
+
+[NKJV]
+DataPath=../../../../modules/texts/rawtext/nkjv/
+ModDrv=RawText
+Version=1.2
+CipherKey=yomama
+History_1.1=changed text source to more reliable version
+Description=The New King James Version
+About=The New King James Version NKJV, copyright 1982 \par \
+Thomas Nelson, Inc. All rights reserved. Bible text from \par \
+the New King James Version is not to be reproduced in \par \
+copies or otherwise by any means except as permitted in \par \
+writing by Thomas Nelson, Inc.
diff --git a/apps/windoze/CBuilder4/BibleCS/newbmfilefrm.cpp b/apps/windoze/CBuilder4/BibleCS/newbmfilefrm.cpp
new file mode 100644
index 0000000..c611804
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/newbmfilefrm.cpp
@@ -0,0 +1,14 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "newbmfilefrm.h"
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TNewBMfrm *NewBMfrm;
+//---------------------------------------------------------------------------
+__fastcall TNewBMfrm::TNewBMfrm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//--------------------------------------------------------------------------- \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/newbmfilefrm.dfm b/apps/windoze/CBuilder4/BibleCS/newbmfilefrm.dfm
new file mode 100644
index 0000000..33d61d4
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/newbmfilefrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/newbmfilefrm.h b/apps/windoze/CBuilder4/BibleCS/newbmfilefrm.h
new file mode 100644
index 0000000..9b4c017
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/newbmfilefrm.h
@@ -0,0 +1,27 @@
+//---------------------------------------------------------------------------
+#ifndef newbmfilefrmH
+#define newbmfilefrmH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+//---------------------------------------------------------------------------
+class TNewBMfrm : public TForm
+{
+__published: // IDE-managed Components
+ TLabel *Label1;
+ TEdit *bmfile;
+ TEdit *bmtitle;
+ TLabel *Label2;
+ TButton *Button1;
+ TButton *Button2;
+private: // User declarations
+public: // User declarations
+ __fastcall TNewBMfrm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TNewBMfrm *NewBMfrm;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/optionfrm.cpp b/apps/windoze/CBuilder4/BibleCS/optionfrm.cpp
new file mode 100644
index 0000000..621c45f
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/optionfrm.cpp
@@ -0,0 +1,22 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "optionfrm.h"
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TOptionsfrm *Optionsfrm;
+//---------------------------------------------------------------------------
+__fastcall TOptionsfrm::TOptionsfrm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TOptionsfrm::ChooseColorbtnClick(TObject *Sender)
+{
+ ColorDialog1->Execute();
+ CurrentVSColor->Brush->Color = ColorDialog1->Color;
+}
+//---------------------------------------------------------------------------
+
+
diff --git a/apps/windoze/CBuilder4/BibleCS/optionfrm.dfm b/apps/windoze/CBuilder4/BibleCS/optionfrm.dfm
new file mode 100644
index 0000000..13859c6
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/optionfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/optionfrm.h b/apps/windoze/CBuilder4/BibleCS/optionfrm.h
new file mode 100644
index 0000000..f3e1d41
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/optionfrm.h
@@ -0,0 +1,47 @@
+//---------------------------------------------------------------------------
+#ifndef optionfrmH
+#define optionfrmH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ExtCtrls.hpp>
+#include <vcl\Dialogs.hpp>
+#include <ComCtrls.hpp>
+//---------------------------------------------------------------------------
+class TOptionsfrm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TGroupBox *GroupBox1;
+ TCheckBox *AutoBMPersonal;
+ TCheckBox *AutoBMOther;
+ TGroupBox *GroupBox2;
+ TCheckBox *AutoVSColor;
+ TShape *CurrentVSColor;
+ TColorDialog *ColorDialog1;
+ TButton *ChooseColorbtn;
+ TPanel *Panel2;
+ TButton *Button1;
+ TPanel *Panel3;
+ TButton *Button2;
+ TLabel *Label1;
+ TLabel *Label2;
+ TLabel *Label3;
+ TUpDown *UpDown1;
+ TEdit *fontSize;
+ TPanel *Panel4;
+ TGroupBox *GroupBox3;
+ TCheckBox *HintPopups;
+ void __fastcall ChooseColorbtnClick(TObject *Sender);
+
+private: // User declarations
+public: // User declarations
+ __fastcall TOptionsfrm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TOptionsfrm *Optionsfrm;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/options.conf b/apps/windoze/CBuilder4/BibleCS/options.conf
new file mode 100644
index 0000000..5b50f30
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/options.conf
@@ -0,0 +1,22 @@
+
+[Appearance]
+AutoVSColor=1
+CurrentVSColorBlue=255
+CurrentVSColorGreen=128
+CurrentVSColorRed=0
+FontSize=0
+
+[Bookmarks]
+AutoSaveOther=1
+AutoSavePersonal=1
+Directory=
+
+[CustomRanges]
+New Testament=mat - rev
+
+[Hints]
+On=1
+
+[System]
+MaxFiles=40
+
diff --git a/apps/windoze/CBuilder4/BibleCS/search.bmp b/apps/windoze/CBuilder4/BibleCS/search.bmp
new file mode 100644
index 0000000..ee693be
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/search.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/searchfrm.cpp b/apps/windoze/CBuilder4/BibleCS/searchfrm.cpp
new file mode 100644
index 0000000..afc45c0
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/searchfrm.cpp
@@ -0,0 +1,192 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "searchfrm.h"
+#include <listkey.h>
+#include "mainfrm.h"
+#include <regex.h>
+#include "RangeMaintFrm.h"
+
+
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TForm2 *Form2;
+//---------------------------------------------------------------------------
+__fastcall TForm2::TForm2(TComponent* Owner)
+ : TForm(Owner) {
+ pvrtf = new SWDispRTF(this);
+
+ pvrtf->Parent = plPreview;
+ pvrtf->Align = alClient;
+ pvrtf->ScrollBars = ssVertical;
+ pvrtf->ReadOnly = true;
+ SearchText->Align = alClient;
+// pvrtf->PopupMenu = PopupMenu2;
+
+// mod->Disp(*displays.insert(displays.begin(), new RTFDisp(newrtf)));
+// mod->SetKey(DefaultVSKey);
+// return 0;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm2::Button1Click(TObject *Sender)
+{
+// ModMap::iterator target;
+ class TWaitCursor {
+ public:
+ TWaitCursor() : oldc(Screen->Cursor) { Screen->Cursor = crHourGlass; }
+ ~TWaitCursor() { Screen->Cursor = oldc; }
+ private:
+ TCursor oldc;
+ } wait; // show hourglass
+
+ if (!SearchText->Text.Length())
+ return;
+
+
+ int index = SearchText->Items->IndexOf(SearchText->Text);
+ SearchText->Items->Insert(0, SearchText->Text);
+
+ if (index >= 0)
+ SearchText->Items->Delete(index+1);
+
+ SearchText->ItemIndex = 0;
+
+ Caption = "";
+
+ targetpc = Form1->PageControl1;
+
+ if ((Form1->ActiveControl == Form1->PageControl2) || (IsChild(Form1->PageControl2->Handle, Form1->ActiveControl->Handle)))
+ targetpc = Form1->PageControl2;
+ if ((Form1->ActiveControl == Form1->PageControl3) || (IsChild(Form1->PageControl3->Handle, Form1->ActiveControl->Handle)))
+ targetpc = Form1->PageControl3;
+
+
+ target = Form1->mainmgr->Modules.find(targetpc->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ Caption = Caption + "Searching [" + (*target).first.c_str() + "]...";
+ ListBox1->Clear();
+ int searchType;
+ switch (searchTypeGroup->ItemIndex) {
+ case 0: searchType = -2; break;
+ case 1: searchType = -1; break;
+ case 2: searchType = 0; break;
+ }
+ int searchOptions = (CheckBox2->Checked) ? 0 : REG_ICASE;
+ Button1->Caption = "Halt";
+ Button1->OnClick = TerminateSearch;
+ SWKey *scope = 0;
+ switch (scopeGroup->ItemIndex) {
+ case 2:
+ if (ComboBox1->ItemIndex < 0)
+ results = VerseKey().ParseVerseList(ComboBox1->Text.c_str(), "", true);
+ else {
+ TCustomRange *rs = (TCustomRange *)ComboBox1->Items->Objects[ComboBox1->ItemIndex];
+ results = VerseKey().ParseVerseList(rs->text.c_str(), "", true);
+ }
+ case 1: scope = &results; break;
+ }
+ searchThread = new TSearchThread(this, SearchText->Text.c_str(), searchType, searchOptions, scope);
+ }
+ else Caption = "Error finding target module";
+}
+
+
+void __fastcall TForm2::TerminateSearch(TObject *Sender)
+{
+ (*target).second->terminateSearch = true;
+}
+
+//---------------------------------------------------------------------------
+void __fastcall TForm2::ListBox1DblClick(TObject *Sender)
+{
+ if (targetpc == Form1->PageControl3) {
+ Form1->DictKeyEdit->Text = ListBox1->Items->Strings[ListBox1->ItemIndex].c_str();
+ }
+ else {
+ Form1->DefaultVSKey = ListBox1->Items->Strings[ListBox1->ItemIndex].c_str();
+ Form1->TextKeyChanged();
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm2::ListBox1Click(TObject *Sender)
+{
+ if (target != Form1->mainmgr->Modules.end()) {
+ SWKey *savekey = *(*target).second;
+ (*target).second->SetKey(ListBox1->Items->Strings[ListBox1->ItemIndex].c_str());
+ pvrtf->Display(*(*target).second);
+ (*target).second->SetKey(*savekey);
+ }
+}
+//---------------------------------------------------------------------------
+
+__fastcall TForm2::TSearchThread::TSearchThread(TForm2 *parent, string searchText, int searchType, int searchOptions, SWKey *scope, bool CreateSuspended)
+ : TThread(CreateSuspended)
+{
+ this->parent = parent;
+ this->searchText = searchText;
+ this->searchType = searchType;
+ this->searchOptions = searchOptions;
+ this->scope = scope;
+ Priority = tpNormal;
+ FreeOnTerminate = true;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm2::TSearchThread::FillListBox(void)
+{
+ for (results = TOP; !results.Error(); results++) {
+ parent->ListBox1->Items->Add((const char *)results);
+ }
+// ListBox1->Items->Pack(); // so Count is set correctly (per helpfile)
+ parent->Caption = "";
+ parent->Caption = parent->Caption + "Results from [" + (*(parent->target)).first.c_str() + "] (" + parent->ListBox1->Items->Count + ((parent->ListBox1->Items->Count == 1) ? " match)" : " matches)");
+ parent->Button1->Caption = "Search";
+ parent->Button1->OnClick = parent->Button1Click;
+}
+
+void __fastcall TForm2::TSearchThread::Execute()
+{
+ results = (*(parent->target)).second->Search(searchText.c_str(), searchType, searchOptions, scope);
+
+ Synchronize((TThreadMethod)&FillListBox);
+ parent->results = results;
+}
+
+
+
+
+void __fastcall TForm2::scopeGroupClick(TObject *Sender) {
+ bool enabled = (scopeGroup->ItemIndex == 2);
+
+ Button2->Enabled = enabled;
+ ComboBox1->Enabled = enabled;
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm2::Button2Click(TObject *Sender)
+{
+ RangeMaintForm->ShowModal();
+ populateRanges();
+}
+//---------------------------------------------------------------------------
+
+void TForm2::populateRanges() {
+ ConfigEntMap::iterator loop, end;
+ SWConfig config("./options.conf");
+ ComboBox1->Clear();
+ loop = config.Sections["CustomRanges"].begin();
+ end = config.Sections["CustomRanges"].end();
+ while (loop != end) {
+ TCustomRange *rs = new TCustomRange(loop->first.c_str(), loop->second.c_str());
+ ComboBox1->Items->AddObject(rs->name.c_str(), rs);
+ loop++;
+ }
+}
+
+
+void __fastcall TForm2::FormShow(TObject *Sender)
+{
+ populateRanges();
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder4/BibleCS/searchfrm.dfm b/apps/windoze/CBuilder4/BibleCS/searchfrm.dfm
new file mode 100644
index 0000000..de8802a
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/searchfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/searchfrm.h b/apps/windoze/CBuilder4/BibleCS/searchfrm.h
new file mode 100644
index 0000000..1d47379
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/searchfrm.h
@@ -0,0 +1,69 @@
+//---------------------------------------------------------------------------
+#ifndef searchH
+#define searchH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ExtCtrls.hpp>
+#include "mainfrm.h"
+#include <swmgr.h>
+//---------------------------------------------------------------------------
+class TForm2 : public TForm {
+ class TSearchThread;
+ friend class TSearchThread;
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TPanel *pnlResult;
+ TListBox *ListBox1;
+ TPanel *Panel3;
+ TPanel *plPreview;
+ TRadioGroup *searchTypeGroup;
+ TGroupBox *GroupBox1;
+ TCheckBox *CheckBox2;
+ TPanel *Panel4;
+ TButton *Button1;
+ TSplitter *Splitter1;
+ TPanel *pnlScope;
+ TComboBox *SearchText;
+ TComboBox *ComboBox1;
+ TButton *Button2;
+ TPanel *Panel2;
+ TRadioGroup *scopeGroup;
+ void __fastcall Button1Click(TObject *Sender);
+ void __fastcall TerminateSearch(TObject *Sender);
+ void __fastcall ListBox1DblClick(TObject *Sender);
+ void __fastcall ListBox1Click(TObject *Sender);
+ void __fastcall scopeGroupClick(TObject *Sender);
+ void __fastcall Button2Click(TObject *Sender);
+ void __fastcall FormShow(TObject *Sender);
+private: // User declarations
+ class TSearchThread : public TThread {
+ ListKey results;
+ string searchText;
+ int searchType;
+ int searchOptions;
+ SWKey *scope;
+ TForm2 *parent;
+ protected:
+ void __fastcall Execute();
+ public:
+ __fastcall TSearchThread(TForm2 *parent, string searchText, int searchType, int searchOptions, SWKey *scope = 0, bool CreateSuspended = false);
+ void __fastcall FillListBox(void);
+ } *searchThread;
+ SWDispRTF *pvrtf;
+ ListKey results;
+ void populateRanges();
+public: // User declarations
+ ModMap::iterator target;
+ TPageControl *targetpc;
+// AnsiString CapText;
+
+ __fastcall TForm2(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TForm2 *Form2;
+//---------------------------------------------------------------------------
+#endif
+
diff --git a/apps/windoze/CBuilder4/BibleCS/sword.bpr b/apps/windoze/CBuilder4/BibleCS/sword.bpr
new file mode 100644
index 0000000..f8049e7
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/sword.bpr
@@ -0,0 +1,201 @@
+# ---------------------------------------------------------------------------
+!if !$d(BCB)
+BCB = $(MAKEDIR)\..
+!endif
+
+# ---------------------------------------------------------------------------
+# IDE SECTION
+# ---------------------------------------------------------------------------
+# The following section of the project makefile is managed by the BCB IDE.
+# It is recommended to use the IDE to change any of the values in this
+# section.
+# ---------------------------------------------------------------------------
+
+VERSION = BCB.04.04
+# ---------------------------------------------------------------------------
+PROJECT = sword.exe
+OBJFILES = sword.obj mainfrm.obj AboutBoxfrm.obj bookmarkfrm.obj newbmfilefrm.obj \
+ optionfrm.obj searchfrm.obj biblecsmgr.obj ModInstForm.obj vrslstfrm.obj \
+ editentryfrm.obj versesel.obj RangeMaintFrm.obj
+RESFILES = sword.res
+RESDEPEN = $(RESFILES) mainfrm.dfm AboutBoxfrm.dfm bookmarkfrm.dfm newbmfilefrm.dfm \
+ optionfrm.dfm searchfrm.dfm ModInstForm.dfm vrslstfrm.dfm editentryfrm.dfm \
+ versesel.dfm RangeMaintFrm.dfm
+LIBFILES = swordlib.lib
+LIBRARIES = vcljpg40.lib nmfast40.lib vcldb40.lib vclx40.lib vcl40.lib
+SPARELIBS = vcl40.lib vclx40.lib vcldb40.lib nmfast40.lib vcljpg40.lib
+DEFFILE =
+PACKAGES = vclx40.bpi vcl40.bpi vcldb40.bpi vcldbx40.bpi ibsmp40.bpi bcbsmp40.bpi \
+ dclocx40.bpi qrpt40.bpi teeui40.bpi vclsmp40.bpi teedb40.bpi tee40.bpi \
+ dss40.bpi nmfast40.bpi vclmid40.bpi
+# ---------------------------------------------------------------------------
+PATHCPP = .;
+PATHASM = .;
+PATHPAS = .;
+PATHRC = .;
+DEBUGLIBPATH = $(BCB)\lib\debug
+RELEASELIBPATH = $(BCB)\lib\release
+SYSDEFINES = NO_STRICT
+USERDEFINES =
+# ---------------------------------------------------------------------------
+CFLAG1 = -I"..\..\..\..\..\..\..\Program Files\Borland\CBuilder4\Projects";"..\..\..\..\..\..\..\program files\borland\cbuilder3\projects";..\..\..\..\include;$(BCB)\include;$(BCB)\include\vcl \
+ -O2 -w -Ve -a8 -4 -k- -vi -D$(SYSDEFINES);$(USERDEFINES) -c -b- -w-par -w-inl \
+ -Vx -tW -tWM
+CFLAG2 =
+CFLAG3 =
+PFLAGS = -U"..\..\..\..\..\..\..\Program Files\Borland\CBuilder4\Projects";"..\..\..\..\..\..\..\program files\borland\cbuilder3\projects";..\..\..\..\..\..\..\borland\cbuilder3\lib\release;$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) \
+ -I"..\..\..\..\..\..\..\Program Files\Borland\CBuilder4\Projects";"..\..\..\..\..\..\..\program files\borland\cbuilder3\projects";..\..\..\..\include;$(BCB)\include;$(BCB)\include\vcl \
+ -$Y- -$L- -$D- -v -M -JPHNE
+RFLAGS = -i"..\..\..\..\..\..\..\Program Files\Borland\CBuilder4\Projects";"..\..\..\..\..\..\..\program files\borland\cbuilder3\projects";..\..\..\..\include;$(BCB)\include;$(BCB)\include\vcl
+AFLAGS = /i"..\..\..\..\..\..\..\program files\borland\cbuilder3\projects" \
+ /i..\..\..\..\include /i$(BCB)\include /i$(BCB)\include\vcl /mx /w2 /zn \
+ /dUSEPACKAGES
+LFLAGS = -L"..\..\..\..\..\..\..\Program Files\Borland\CBuilder4\Projects";"..\..\..\..\..\..\..\program files\borland\cbuilder3\projects";..\..\..\..\..\..\..\borland\cbuilder3\lib\release;$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) \
+ -aa -Tpe -x -Gn
+IFLAGS =
+# ---------------------------------------------------------------------------
+ALLOBJ = c0w32.obj $(OBJFILES)
+ALLRES = $(RESFILES)
+ALLLIB = $(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib
+# ---------------------------------------------------------------------------
+!ifdef IDEOPTIONS
+
+[Version Info]
+IncludeVerInfo=1
+AutoIncBuild=1
+MajorVer=1
+MinorVer=4
+Release=7
+Build=0
+Debug=0
+PreRelease=1
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=CrossWire Software & Bible Society
+FileDescription=Windows 32bit User Interface to The SWORD Project
+FileVersion=1.4.7.0
+InternalName=biblecs
+LegalCopyright=(c) 1999 CrossWire Bible Society under the terms of the GNU General Public License
+LegalTrademarks=
+OriginalFilename=
+ProductName=The SWORD Project
+ProductVersion=1.4.7
+Comments=Seek Him and you will find Him
+
+[HistoryLists\hlIncludePath]
+Count=3
+Item0=..\..\..\..\..\..\..\program files\borland\cbuilder3\projects;..\..\..\..\include;$(BCB)\include;$(BCB)\include\vcl
+Item1=..\..\..\..\include;$(BCB)\include;$(BCB)\include\vcl
+Item2=c:\usr\troy\src\sword\include;$(BCB)\include;$(BCB)\include\vcl
+
+[HistoryLists\hlLibraryPath]
+Count=4
+Item0=..\..\..\..\..\..\..\program files\borland\cbuilder3\projects;..\..\..\..\..\..\..\borland\cbuilder3\lib\release;$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..\..\..\..\..\..\..\program files\borland\cbuilder3\projects;d:\borland\cbuilder3\lib\release;$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib
+Item2=d:\borland\cbuilder3\lib\release;$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib
+Item3=$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=USEPACKAGES
+Item1=_RTLDLL;USEPACKAGES
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+InMemoryExe=0
+ShowInfoMsgs=0
+
+!endif
+
+# ---------------------------------------------------------------------------
+# MAKE SECTION
+# ---------------------------------------------------------------------------
+# This section of the project file is not used by the BCB IDE. It is for
+# the benefit of building from the command-line using the MAKE utility.
+# ---------------------------------------------------------------------------
+
+.autodepend
+# ---------------------------------------------------------------------------
+!if !$d(BCC32)
+BCC32 = bcc32
+!endif
+
+!if !$d(DCC32)
+DCC32 = dcc32
+!endif
+
+!if !$d(TASM32)
+TASM32 = tasm32
+!endif
+
+!if !$d(LINKER)
+LINKER = ilink32
+!endif
+
+!if !$d(BRCC32)
+BRCC32 = brcc32
+!endif
+# ---------------------------------------------------------------------------
+!if $d(PATHCPP)
+.PATH.CPP = $(PATHCPP)
+.PATH.C = $(PATHCPP)
+!endif
+
+!if $d(PATHPAS)
+.PATH.PAS = $(PATHPAS)
+!endif
+
+!if $d(PATHASM)
+.PATH.ASM = $(PATHASM)
+!endif
+
+!if $d(PATHRC)
+.PATH.RC = $(PATHRC)
+!endif
+# ---------------------------------------------------------------------------
+$(PROJECT): $(OBJFILES) $(RESDEPEN) $(DEFFILE)
+ $(BCB)\BIN\$(LINKER) @&&!
+ $(LFLAGS) $(IFLAGS) +
+ $(ALLOBJ), +
+ $(PROJECT),, +
+ $(ALLLIB), +
+ $(DEFFILE), +
+ $(ALLRES)
+!
+# ---------------------------------------------------------------------------
+.pas.hpp:
+ $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
+
+.pas.obj:
+ $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
+
+.cpp.obj:
+ $(BCB)\BIN\$(BCC32) $(CFLAG1) $(CFLAG2) $(CFLAG3) -n$(@D) {$< }
+
+.c.obj:
+ $(BCB)\BIN\$(BCC32) $(CFLAG1) $(CFLAG2) $(CFLAG3) -n$(@D) {$< }
+
+.asm.obj:
+ $(BCB)\BIN\$(TASM32) $(AFLAGS) $<, $@
+
+.rc.res:
+ $(BCB)\BIN\$(BRCC32) $(RFLAGS) -fo$@ $<
+# ---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/BibleCS/sword.cpp b/apps/windoze/CBuilder4/BibleCS/sword.cpp
new file mode 100644
index 0000000..b4743d0
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/sword.cpp
@@ -0,0 +1,41 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+USERES("sword.res");
+USEFORM("mainfrm.cpp", Form1);
+USEFORM("AboutBoxfrm.cpp", AboutBox);
+USEFORM("bookmarkfrm.cpp", Bookmarksfrm);
+USEFORM("newbmfilefrm.cpp", NewBMfrm);
+USEFORM("optionfrm.cpp", Optionsfrm);
+USEFORM("searchfrm.cpp", Form2);
+USEUNIT("biblecsmgr.cpp");
+USEFORM("ModInstForm.cpp", ModInstFrm);
+USEFORM("vrslstfrm.cpp", VerseListFrm);
+USEFORM("editentryfrm.cpp", EditEntry);
+USEFORM("versesel.cpp", VerseSelFrm);
+USELIB("swordlib.lib");
+USEFORM("RangeMaintFrm.cpp", RangeMaintForm);
+//---------------------------------------------------------------------------
+WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
+ try {
+ Application->Initialize();
+ Application->Title = "The SWORD Project";
+ Application->CreateForm(__classid(TForm1), &Form1);
+ Application->CreateForm(__classid(TAboutBox), &AboutBox);
+ Application->CreateForm(__classid(TBookmarksfrm), &Bookmarksfrm);
+ Application->CreateForm(__classid(TNewBMfrm), &NewBMfrm);
+ Application->CreateForm(__classid(TOptionsfrm), &Optionsfrm);
+ Application->CreateForm(__classid(TForm2), &Form2);
+ Application->CreateForm(__classid(TModInstFrm), &ModInstFrm);
+ Application->CreateForm(__classid(TVerseListFrm), &VerseListFrm);
+ Application->CreateForm(__classid(TEditEntry), &EditEntry);
+ Application->CreateForm(__classid(TVerseSelFrm), &VerseSelFrm);
+ Application->CreateForm(__classid(TRangeMaintForm), &RangeMaintForm);
+ Application->Run();
+ }
+ catch (Exception &exception) {
+ Application->ShowException(&exception);
+ }
+ return 0;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/BibleCS/sword.ico b/apps/windoze/CBuilder4/BibleCS/sword.ico
new file mode 100644
index 0000000..694fbb1
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/sword.ico
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/sword.res b/apps/windoze/CBuilder4/BibleCS/sword.res
new file mode 100644
index 0000000..2aafbdf
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/sword.res
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/swordlib.bpr b/apps/windoze/CBuilder4/BibleCS/swordlib.bpr
new file mode 100644
index 0000000..cd9d1d3
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/swordlib.bpr
@@ -0,0 +1,208 @@
+# ---------------------------------------------------------------------------
+!if !$d(BCB)
+BCB = $(MAKEDIR)\..
+!endif
+
+# ---------------------------------------------------------------------------
+# IDE SECTION
+# ---------------------------------------------------------------------------
+# The following section of the project makefile is managed by the BCB IDE.
+# It is recommended to use the IDE to change any of the values in this
+# section.
+# ---------------------------------------------------------------------------
+
+VERSION = BCB.04.04
+# ---------------------------------------------------------------------------
+PROJECT = swordlib.lib
+OBJFILES = swordlib.obj ..\..\..\..\src\keys\versekey.obj ..\..\..\..\src\keys\swkey.obj \
+ ..\..\..\..\src\keys\listkey.obj ..\..\..\..\src\keys\strkey.obj \
+ ..\..\..\..\src\mgr\swmgr.obj ..\..\..\..\src\mgr\swconfig.obj \
+ ..\..\..\..\src\modules\comments\rawcom\rawcom.obj \
+ ..\..\..\..\src\modules\comments\swcom.obj \
+ ..\..\..\..\src\modules\common\rawverse.obj \
+ ..\..\..\..\src\modules\common\rawstr.obj \
+ ..\..\..\..\src\modules\filters\rwprtf.obj \
+ ..\..\..\..\src\modules\filters\gbfrtf.obj \
+ ..\..\..\..\src\modules\filters\gbfplain.obj \
+ ..\..\..\..\src\modules\lexdict\rawld\rawld.obj \
+ ..\..\..\..\src\modules\lexdict\swld.obj \
+ ..\..\..\..\src\modules\texts\rawgbf\rawgbf.obj \
+ ..\..\..\..\src\modules\texts\rawtext\rawtext.obj \
+ ..\..\..\..\src\modules\texts\swtext.obj ..\..\..\..\src\modules\swmodule.obj \
+ ..\..\tbdisp.obj ..\..\swdisprtfchap.obj ..\..\swwinlog.obj ..\..\swdisprtf.obj \
+ ..\..\..\..\src\modules\comments\hrefcom\hrefcom.obj \
+ ..\..\..\..\src\mgr\filemgr.obj \
+ ..\..\..\..\src\modules\comments\rawfiles\rawfiles.obj \
+ ..\..\..\..\src\utilfuns\utilstr.obj ..\..\..\..\src\utilfuns\utilconf.obj \
+ ..\..\..\..\src\utilfuns\Greek2Greek.obj ..\..\..\..\src\utilfuns\regex.obj \
+ ..\..\..\..\src\frontend\swlog.obj ..\..\..\..\src\frontend\swdisp.obj \
+ ..\..\..\..\src\modules\filters\gbfstrongs.obj \
+ ..\..\..\..\src\modules\filters\gbffootnotes.obj \
+ ..\..\..\..\src\modules\filters\cipherfil.obj \
+ ..\..\..\..\src\modules\common\sapphire.obj \
+ ..\..\..\..\src\modules\common\swcipher.obj
+LIBFILES =
+RESDEPEN = $(RESFILES)
+RESFILES =
+LIBRARIES = nmfast40.lib vclx40.lib vcl40.lib
+SPARELIBS = vcl40.lib vclx40.lib nmfast40.lib
+DEFFILE =
+PACKAGES =
+# ---------------------------------------------------------------------------
+PATHCPP = .;..\..\..\..\src\keys;..\..\..\..\src\mgr;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\common;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts;..\..\..\..\src\modules;..\..;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\utilfuns;..\..\..\..\src\frontend
+PATHASM = .;
+PATHPAS = .;
+PATHRC = .;
+SYSDEFINES = NO_STRICT;_NO_VCL
+USERDEFINES =
+# ---------------------------------------------------------------------------
+CFLAG1 = -I..\..;..\..\..\..\src\frontend;..\..\..;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl \
+ -O2 -Hc -H=$(BCB)\lib\vcl40.csm -w -Ve -a8 -4 -k- -vi \
+ -D$(SYSDEFINES);$(USERDEFINES) -c -b- -w-par -w-inl -Vx -g0 -tWM
+CFLAG2 =
+CFLAG3 =
+PFLAGS = -U..\..\..\..\src\modules\common;$(DEBUGLIBPATH) \
+ -I..\..;..\..\..\..\src\frontend;..\..\..;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl \
+ -$Y- -$L- -$D- -v -M -JPHNE
+AFLAGS = /i..\.. /i..\..\..\..\src\frontend /i..\..\.. /i..\..\..\..\utilfuns \
+ /i..\..\..\framework /i..\..\..\..\src\modules\comments\rawfiles \
+ /i..\..\..\..\src\modules\comments\hrefcom /i..\..\..\..\include \
+ /i..\..\..\..\frontend /i..\..\..\..\src\utilfuns /i..\..\..\..\src\modules \
+ /i..\..\..\..\src\modules\texts /i..\..\..\..\src\modules\texts\rawtext \
+ /i..\..\..\..\src\modules\texts\rawgbf /i..\..\..\..\src\modules\lexdict \
+ /i..\..\..\..\src\modules\lexdict\rawld /i..\..\..\..\src\modules\filters \
+ /i..\..\..\..\src\modules\common /i..\..\..\..\src\modules\comments \
+ /i..\..\..\..\src\modules\comments\rawcom /i..\..\..\..\src\mgr \
+ /i..\..\..\..\src\keys /i$(BCB)\include /i$(BCB)\include\vcl /mx /w2 /zn \
+ /d_NO_VCL
+RFLAGS = -i..\..;..\..\..\..\src\frontend;..\..\..;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+LFLAGS = /P64
+IFLAGS =
+# ---------------------------------------------------------------------------
+ALLOBJ = $(OBJFILES)
+ALLLIB =
+# ---------------------------------------------------------------------------
+!ifdef IDEOPTIONS
+
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+Count=10
+Item0=..\..;..\..\..\..\src\frontend;..\..\..;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item1=..\..;..\..\..\..\src\frontend;..\..\..\..\apps;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\windoze;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item2=..\..\..\..\src\frontend;..\..\..\..\apps;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\windoze;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item3=..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\windoze;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item4=..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\windoze;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item5=..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\windoze;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item6=..\..\..\..\include;..\..\..\..\frontend;..\..\..\windoze;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item7=..\..\..\..\frontend;..\..\..\windoze;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item8=c:\usr\troy\src\sword\include;c:\usr\troy\src\sword\frontend;c:\usr\troy\src\sword\frontend\windoze;c:\usr\troy\src\sword\utilfuns;c:\usr\troy\src\sword\modules;c:\usr\troy\src\sword\modules\texts;c:\usr\troy\src\sword\modules\texts\rawtext;c:\usr\troy\src\sword\modules\texts\rawgbf;c:\usr\troy\src\sword\modules\lexdict;c:\usr\troy\src\sword\modules\lexdict\rawld;c:\usr\troy\src\sword\modules\filters;c:\usr\troy\src\sword\modules\common;c:\usr\troy\src\sword\modules\comments;c:\usr\troy\src\sword\modules\comments\rawcom;c:\usr\troy\src\sword\mgr;c:\usr\troy\src\sword\keys;$(BCB)\include;$(BCB)\include\vcl
+Item9=c:\usr\src\sword\include;c:\usr\troy\src\sword\frontend;c:\usr\troy\src\sword\frontend\windoze;c:\usr\troy\src\sword\utilfuns;c:\usr\troy\src\sword\modules;c:\usr\troy\src\sword\modules\texts;c:\usr\troy\src\sword\modules\texts\rawtext;c:\usr\troy\src\sword\modules\texts\rawgbf;c:\usr\troy\src\sword\modules\lexdict;c:\usr\troy\src\sword\modules\lexdict\rawld;c:\usr\troy\src\sword\modules\filters;c:\usr\troy\src\sword\modules\common;c:\usr\troy\src\sword\modules\comments;c:\usr\troy\src\sword\modules\comments\rawcom;c:\usr\troy\src\sword\mgr;c:\usr\troy\src\sword\keys;$(BCB)\include;$(BCB)\include\vcl
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=1
+Item0=_NO_VCL
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+InMemoryExe=0
+ShowInfoMsgs=0
+
+!endif
+
+# ---------------------------------------------------------------------------
+# MAKE SECTION
+# ---------------------------------------------------------------------------
+# This section of the project makefile is not used by the BCB IDE. It is for
+# the benefit of building from the command-line using the MAKE utility.
+# ---------------------------------------------------------------------------
+
+.autodepend
+# ---------------------------------------------------------------------------
+!if !$d(BCC32)
+BCC32 = bcc32
+!endif
+
+!if !$d(DCC32)
+DCC32 = dcc32
+!endif
+
+!if !$d(TASM32)
+TASM32 = tasm32
+!endif
+
+!if !$d(LINKER)
+LINKER = TLib
+!endif
+# ---------------------------------------------------------------------------
+!if $d(PATHCPP)
+.PATH.CPP = $(PATHCPP)
+.PATH.C = $(PATHCPP)
+!endif
+
+!if $d(PATHPAS)
+.PATH.PAS = $(PATHPAS)
+!endif
+
+!if $d(PATHASM)
+.PATH.ASM = $(PATHASM)
+!endif
+# ---------------------------------------------------------------------------
+$(PROJECT): $(OBJFILES)
+ $(BCB)\BIN\$(LINKER) /u $@ @&&!
+ $(LFLAGS) $?
+!
+# ---------------------------------------------------------------------------
+.pas.hpp:
+ $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
+
+.pas.obj:
+ $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
+
+.cpp.obj:
+ $(BCB)\BIN\$(BCC32) $(CFLAG1) $(CFLAG2) $(CFLAG3) -n$(@D) {$< }
+
+.c.obj:
+ $(BCB)\BIN\$(BCC32) $(CFLAG1) $(CFLAG2) $(CFLAG3) -n$(@D) {$< }
+
+.asm.obj:
+ $(BCB)\BIN\$(TASM32) $(AFLAGS) $<, $@
+# ---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/BibleCS/swordlib.cpp b/apps/windoze/CBuilder4/BibleCS/swordlib.cpp
new file mode 100644
index 0000000..8aad358
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/swordlib.cpp
@@ -0,0 +1,45 @@
+//---------------------------------------------------------------------------
+#include <condefs.h>
+#pragma hdrstop
+USEUNIT("..\..\..\..\src\keys\versekey.cpp");
+USEUNIT("..\..\..\..\src\keys\swkey.cpp");
+USEUNIT("..\..\..\..\src\keys\listkey.cpp");
+USEUNIT("..\..\..\..\src\keys\strkey.cpp");
+USEUNIT("..\..\..\..\src\mgr\swmgr.cpp");
+USEUNIT("..\..\..\..\src\mgr\swconfig.cpp");
+USEUNIT("..\..\..\..\src\modules\comments\rawcom\rawcom.cpp");
+USEUNIT("..\..\..\..\src\modules\comments\swcom.cpp");
+USEUNIT("..\..\..\..\src\modules\common\rawverse.cpp");
+USEUNIT("..\..\..\..\src\modules\common\rawstr.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\rwprtf.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\gbfrtf.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\gbfplain.cpp");
+USEUNIT("..\..\..\..\src\modules\lexdict\rawld\rawld.cpp");
+USEUNIT("..\..\..\..\src\modules\lexdict\swld.cpp");
+USEUNIT("..\..\..\..\src\modules\texts\rawgbf\rawgbf.cpp");
+USEUNIT("..\..\..\..\src\modules\texts\rawtext\rawtext.cpp");
+USEUNIT("..\..\..\..\src\modules\texts\swtext.cpp");
+USEUNIT("..\..\..\..\src\modules\swmodule.cpp");
+USEUNIT("..\..\tbdisp.cpp");
+USEUNIT("..\..\swdisprtfchap.cpp");
+USEUNIT("..\..\swwinlog.cpp");
+USEUNIT("..\..\swdisprtf.cpp");
+USEUNIT("..\..\..\..\src\modules\comments\hrefcom\hrefcom.cpp");
+USEUNIT("..\..\..\..\src\mgr\filemgr.cpp");
+USEUNIT("..\..\..\..\src\modules\comments\rawfiles\rawfiles.cpp");
+USEUNIT("..\..\..\..\src\utilfuns\utilstr.cpp");
+USEUNIT("..\..\..\..\src\utilfuns\utilconf.cpp");
+USEUNIT("..\..\..\..\src\utilfuns\Greek2Greek.cpp");
+USEUNIT("..\..\..\..\src\utilfuns\regex.c");
+USEUNIT("..\..\..\..\src\frontend\swlog.cpp");
+USEUNIT("..\..\..\..\src\frontend\swdisp.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\gbfstrongs.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\gbffootnotes.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\cipherfil.cpp");
+USEUNIT("..\..\..\..\src\modules\common\sapphire.cpp");
+USEUNIT("..\..\..\..\src\modules\common\swcipher.cpp");
+//---------------------------------------------------------------------------
+#define Library
+
+// To add a file to the library use the Project menu 'Add to Project'.
+
diff --git a/apps/windoze/CBuilder4/BibleCS/swordprj.bpg b/apps/windoze/CBuilder4/BibleCS/swordprj.bpg
new file mode 100644
index 0000000..44add94
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/swordprj.bpg
@@ -0,0 +1,24 @@
+#------------------------------------------------------------------------------
+VERSION = BWS.01
+#------------------------------------------------------------------------------
+!ifndef ROOT
+ROOT = $(MAKEDIR)\..
+!endif
+#------------------------------------------------------------------------------
+MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$**
+DCC = $(ROOT)\bin\dcc32.exe $**
+BRCC = $(ROOT)\bin\brcc32.exe $**
+#------------------------------------------------------------------------------
+PROJECTS = swordlib sword
+#------------------------------------------------------------------------------
+default: sword
+#------------------------------------------------------------------------------
+
+
+swordlib: swordlib.bpr
+ $(MAKE)
+
+sword: sword.bpr
+ $(MAKE)
+
+
diff --git a/apps/windoze/CBuilder4/BibleCS/versesel.cpp b/apps/windoze/CBuilder4/BibleCS/versesel.cpp
new file mode 100644
index 0000000..8788580
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/versesel.cpp
@@ -0,0 +1,22 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "versesel.h"
+#include <versekey.h>
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TVerseSelFrm *VerseSelFrm;
+//---------------------------------------------------------------------------
+__fastcall TVerseSelFrm::TVerseSelFrm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TVerseSelFrm::Edit1Change(TObject *Sender)
+{
+ VerseKey trykey = Edit1->Text.c_str();
+ Panel2->Caption = (const char *)trykey;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/BibleCS/versesel.dfm b/apps/windoze/CBuilder4/BibleCS/versesel.dfm
new file mode 100644
index 0000000..ddc4857
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/versesel.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/versesel.h b/apps/windoze/CBuilder4/BibleCS/versesel.h
new file mode 100644
index 0000000..b4c1981
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/versesel.h
@@ -0,0 +1,27 @@
+//---------------------------------------------------------------------------
+#ifndef verseselH
+#define verseselH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+//---------------------------------------------------------------------------
+class TVerseSelFrm : public TForm
+{
+__published: // IDE-managed Components
+ TEdit *Edit1;
+ TPanel *Panel2;
+ TPanel *Panel1;
+ TButton *Button1;
+ TButton *Button2;
+ void __fastcall Edit1Change(TObject *Sender);
+private: // User declarations
+public: // User declarations
+ __fastcall TVerseSelFrm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TVerseSelFrm *VerseSelFrm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/BibleCS/vrslstfrm.cpp b/apps/windoze/CBuilder4/BibleCS/vrslstfrm.cpp
new file mode 100644
index 0000000..0528c7f
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/vrslstfrm.cpp
@@ -0,0 +1,48 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "vrslstfrm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TVerseListFrm *VerseListFrm;
+//---------------------------------------------------------------------------
+__fastcall TVerseListFrm::TVerseListFrm(TComponent* Owner, ListKey &iVerseList)
+ : TForm(Owner), verseList(iVerseList) {
+ pvrtf = new SWDispRTF(this);
+
+ pvrtf->Parent = plPreview;
+ pvrtf->Align = alClient;
+ pvrtf->ScrollBars = ssVertical;
+ pvrtf->ReadOnly = true;
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TVerseListFrm::ListBox1Click(TObject *Sender) {
+ ModMap::iterator target;
+ target = Form1->mainmgr->Modules.find(Form1->PageControl1->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ SWKey *savekey = *(*target).second;
+ (*target).second->SetKey(ListBox1->Items->Strings[ListBox1->ItemIndex].c_str());
+ pvrtf->Display(*(*target).second);
+ (*target).second->SetKey(*savekey);
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TVerseListFrm::ListBox1DblClick(TObject *Sender)
+{
+ Form1->DefaultVSKey = ListBox1->Items->Strings[ListBox1->ItemIndex].c_str();
+ Form1->TextKeyChanged();
+}
+//---------------------------------------------------------------------------
+void __fastcall TVerseListFrm::FormShow(TObject *Sender)
+{
+ for (verseList = TOP; (!verseList.Error()); verseList++)
+ ListBox1->Items->Add((const char *)verseList);
+}
+//---------------------------------------------------------------------------
+
+
+
diff --git a/apps/windoze/CBuilder4/BibleCS/vrslstfrm.dfm b/apps/windoze/CBuilder4/BibleCS/vrslstfrm.dfm
new file mode 100644
index 0000000..0e923ed
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/vrslstfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/vrslstfrm.h b/apps/windoze/CBuilder4/BibleCS/vrslstfrm.h
new file mode 100644
index 0000000..7af64b9
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/vrslstfrm.h
@@ -0,0 +1,29 @@
+//---------------------------------------------------------------------------
+#ifndef vrslstfrmH
+#define vrslstfrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+#include "mainfrm.h"
+//---------------------------------------------------------------------------
+class TVerseListFrm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *plPreview;
+ TListBox *ListBox1;
+ void __fastcall ListBox1Click(TObject *Sender);
+ void __fastcall ListBox1DblClick(TObject *Sender);
+ void __fastcall FormShow(TObject *Sender);
+private: // User declarations
+ SWDispRTF *pvrtf;
+ ListKey &verseList;
+public: // User declarations
+ __fastcall TVerseListFrm(TComponent* Owner, ListKey &iVerseList);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TVerseListFrm *VerseListFrm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/BibleCS/wtbsa.conf b/apps/windoze/CBuilder4/BibleCS/wtbsa.conf
new file mode 100644
index 0000000..ff69dc7
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/wtbsa.conf
@@ -0,0 +1,20 @@
+[ROOT]
+WTBSA=What the Bible Says About...
+
+[WTBSA]
+Mormons=Mormonism
+Calvan=Calvanism
+
+[Mormons]
+Verse=I Peter 2:8
+
+[Calvan]
+Verse=James 1:19
+TotalDep=Total Depravity of Man
+UncondEl=Unconditional Election
+LimAt=Limited Atonement
+IrrGrace=Irresistable Grace
+PersSt=Perseverence of the Saints
+
+[TotalDep]
+Verse=Romans 1:1
diff --git a/apps/windoze/CBuilder4/InstallMgr/FTPDownload.cpp b/apps/windoze/CBuilder4/InstallMgr/FTPDownload.cpp
new file mode 100644
index 0000000..eb74177
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/FTPDownload.cpp
@@ -0,0 +1,29 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "FTPDownload.h"
+#pragma package(smart_init)
+//---------------------------------------------------------------------------
+// Important: Methods and properties of objects in VCL can only be
+// used in a method called using Synchronize, for example:
+//
+// Synchronize(UpdateCaption);
+//
+// where UpdateCaption could look like:
+//
+// void __fastcall FTPDownload::UpdateCaption()
+// {
+// Form1->Caption = "Updated in a thread";
+// }
+//---------------------------------------------------------------------------
+__fastcall FTPDownload::FTPDownload(bool CreateSuspended)
+ : TThread(CreateSuspended)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall FTPDownload::Execute()
+{
+ //---- Place thread code here ----
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/InstallMgr/FTPDownload.h b/apps/windoze/CBuilder4/InstallMgr/FTPDownload.h
new file mode 100644
index 0000000..4ad9e01
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/FTPDownload.h
@@ -0,0 +1,16 @@
+//---------------------------------------------------------------------------
+#ifndef FTPDownloadH
+#define FTPDownloadH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+//---------------------------------------------------------------------------
+class FTPDownload : public TThread
+{
+private:
+protected:
+ void __fastcall Execute();
+public:
+ __fastcall FTPDownload(bool CreateSuspended);
+};
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/InstallMgr/InfoFrm.cpp b/apps/windoze/CBuilder4/InstallMgr/InfoFrm.cpp
new file mode 100644
index 0000000..a75b7b2
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/InfoFrm.cpp
@@ -0,0 +1,33 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "InfoFrm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TInfoForm *InfoForm;
+//---------------------------------------------------------------------------
+__fastcall TInfoForm::TInfoForm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TInfoForm::FormShow(TObject *Sender)
+{
+ AnsiString abouttext = "";
+ TMemoryStream *RTFStream = new TMemoryStream();
+
+ abouttext = abouttext + "{\\fs20\\cf0 " + info.c_str() + " }";
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(abouttext.c_str(), abouttext.Length());
+ RTFStream->Position = 0;
+ InfoText->Lines->LoadFromStream(RTFStream);
+ delete RTFStream;
+}
+//---------------------------------------------------------------------------
+void __fastcall TInfoForm::SpeedButton1Click(TObject *Sender)
+{
+ ModalResult = mrOk;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/InstallMgr/InfoFrm.dfm b/apps/windoze/CBuilder4/InstallMgr/InfoFrm.dfm
new file mode 100644
index 0000000..065b0c2
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/InfoFrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/InstallMgr/InfoFrm.h b/apps/windoze/CBuilder4/InstallMgr/InfoFrm.h
new file mode 100644
index 0000000..9bbeef6
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/InfoFrm.h
@@ -0,0 +1,32 @@
+//---------------------------------------------------------------------------
+#ifndef InfoFrmH
+#define InfoFrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <Buttons.hpp>
+#include <ComCtrls.hpp>
+#include <ExtCtrls.hpp>
+#include <string>
+
+//---------------------------------------------------------------------------
+class TInfoForm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TPanel *Panel2;
+ TRichEdit *InfoText;
+ TSpeedButton *SpeedButton1;
+ void __fastcall FormShow(TObject *Sender);
+ void __fastcall SpeedButton1Click(TObject *Sender);
+private: // User declarations
+public: // User declarations
+ std::string info;
+ __fastcall TInfoForm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TInfoForm *InfoForm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/InstallMgr/InstallMgr.bpg b/apps/windoze/CBuilder4/InstallMgr/InstallMgr.bpg
new file mode 100644
index 0000000..bad1593
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/InstallMgr.bpg
@@ -0,0 +1,23 @@
+#------------------------------------------------------------------------------
+VERSION = BWS.01
+#------------------------------------------------------------------------------
+!ifndef ROOT
+ROOT = $(MAKEDIR)\..
+!endif
+#------------------------------------------------------------------------------
+MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$**
+DCC = $(ROOT)\bin\dcc32.exe $**
+BRCC = $(ROOT)\bin\brcc32.exe $**
+#------------------------------------------------------------------------------
+PROJECTS = swordlib.lib InstallMgr.exe
+#------------------------------------------------------------------------------
+default: $(PROJECTS)
+#------------------------------------------------------------------------------
+
+InstallMgr.exe: InstallMgr.bpr
+ $(MAKE)
+
+swordlib.lib: ..\BibleCS\swordlib.bpr
+ $(MAKE)
+
+
diff --git a/apps/windoze/CBuilder4/InstallMgr/InstallMgr.bpr b/apps/windoze/CBuilder4/InstallMgr/InstallMgr.bpr
new file mode 100644
index 0000000..93e3047
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/InstallMgr.bpr
@@ -0,0 +1,202 @@
+# ---------------------------------------------------------------------------
+!if !$d(BCB)
+BCB = $(MAKEDIR)\..
+!endif
+
+# ---------------------------------------------------------------------------
+# IDE SECTION
+# ---------------------------------------------------------------------------
+# The following section of the project makefile is managed by the BCB IDE.
+# It is recommended to use the IDE to change any of the values in this
+# section.
+# ---------------------------------------------------------------------------
+
+VERSION = BCB.04.04
+# ---------------------------------------------------------------------------
+PROJECT = InstallMgr.exe
+OBJFILES = InstallMgr.obj MainFrm.obj StatusFrm.obj RemoteMntFrm.obj InfoFrm.obj \
+ cipherfrm.obj UninstallFrm.obj
+RESFILES = InstallMgr.res
+RESDEPEN = $(RESFILES) MainFrm.dfm StatusFrm.dfm RemoteMntFrm.dfm InfoFrm.dfm \
+ cipherfrm.dfm UninstallFrm.dfm
+LIBFILES = ..\BibleCS\swordlib.lib
+LIBRARIES = nmfast40.lib Vclx40.lib Vcl40.lib
+SPARELIBS = Vcl40.lib Vclx40.lib nmfast40.lib
+PACKAGES = Vcl40.bpi Vclx40.bpi vcljpg40.bpi bcbsmp40.bpi Qrpt40.bpi Vcldb40.bpi \
+ ibsmp40.bpi vcldbx40.bpi TeeUI40.bpi teedb40.bpi tee40.bpi nmfast40.bpi \
+ dclocx40.bpi
+DEFFILE =
+# ---------------------------------------------------------------------------
+PATHCPP = .;
+PATHASM = .;
+PATHPAS = .;
+PATHRC = .;
+DEBUGLIBPATH = $(BCB)\lib\debug
+RELEASELIBPATH = $(BCB)\lib\release
+USERDEFINES =
+SYSDEFINES = NO_STRICT
+# ---------------------------------------------------------------------------
+CFLAG1 = -I..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include \
+ -O2 -Hc -H=$(BCB)\lib\vcl40.csm -w -Ve -a8 -k- -vi -c -b- -w-par -w-inl -Vx -tW \
+ -tWM -D$(SYSDEFINES);$(USERDEFINES)
+PFLAGS = -U..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) \
+ -I..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include \
+ -$Y- -$L- -$D- -v -JPHNE -M
+RFLAGS = -i..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
+AFLAGS = /i..\BibleCS /i..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr \
+ /i$(BCB)\include /i$(BCB)\include\vcl /i..\..\..\..\include /mx /w2 /zn
+LFLAGS = -L..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) \
+ -aa -Tpe -x -Gn
+# ---------------------------------------------------------------------------
+ALLOBJ = c0w32.obj sysinit.obj $(OBJFILES)
+ALLRES = $(RESFILES)
+ALLLIB = $(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib
+# ---------------------------------------------------------------------------
+!ifdef IDEOPTIONS
+
+[Version Info]
+IncludeVerInfo=1
+AutoIncBuild=0
+MajorVer=1
+MinorVer=4
+Release=5
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=CrossWire Bible Society
+FileDescription=SWORD Installation Manager
+FileVersion=1.4.5.0
+InternalName=InstallMgr
+LegalCopyright=GNU GPL 1999
+LegalTrademarks=
+OriginalFilename=
+ProductName=The SWORD Project
+ProductVersion=1.4.5
+Comments=Seek Jesus who exchanges temporary for eternal
+
+[HistoryLists\hlIncludePath]
+Count=2
+Item0=..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
+Item1=..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
+
+[HistoryLists\hlLibraryPath]
+Count=2
+Item0=..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlRunParameters]
+Count=1
+Item0=-uninstall
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+InMemoryExe=0
+ShowInfoMsgs=0
+
+!endif
+
+# ---------------------------------------------------------------------------
+# MAKE SECTION
+# ---------------------------------------------------------------------------
+# This section of the project file is not used by the BCB IDE. It is for
+# the benefit of building from the command-line using the MAKE utility.
+# ---------------------------------------------------------------------------
+
+.autodepend
+# ---------------------------------------------------------------------------
+!if !$d(BCC32)
+BCC32 = bcc32
+!endif
+
+!if !$d(CPP32)
+CPP32 = cpp32
+!endif
+
+!if !$d(DCC32)
+DCC32 = dcc32
+!endif
+
+!if !$d(TASM32)
+TASM32 = tasm32
+!endif
+
+!if !$d(LINKER)
+LINKER = ilink32
+!endif
+
+!if !$d(BRCC32)
+BRCC32 = brcc32
+!endif
+
+# ---------------------------------------------------------------------------
+!if $d(PATHCPP)
+.PATH.CPP = $(PATHCPP)
+.PATH.C = $(PATHCPP)
+!endif
+
+!if $d(PATHPAS)
+.PATH.PAS = $(PATHPAS)
+!endif
+
+!if $d(PATHASM)
+.PATH.ASM = $(PATHASM)
+!endif
+
+!if $d(PATHRC)
+.PATH.RC = $(PATHRC)
+!endif
+# ---------------------------------------------------------------------------
+$(PROJECT): $(OBJFILES) $(RESDEPEN) $(DEFFILE)
+ $(BCB)\BIN\$(LINKER) @&&!
+ $(LFLAGS) +
+ $(ALLOBJ), +
+ $(PROJECT),, +
+ $(ALLLIB), +
+ $(DEFFILE), +
+ $(ALLRES)
+!
+# ---------------------------------------------------------------------------
+.pas.hpp:
+ $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
+
+.pas.obj:
+ $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
+
+.cpp.obj:
+ $(BCB)\BIN\$(BCC32) $(CFLAG1) -n$(@D) {$< }
+
+.c.obj:
+ $(BCB)\BIN\$(BCC32) $(CFLAG1) -n$(@D) {$< }
+
+.c.i:
+ $(BCB)\BIN\$(CPP32) $(CFLAG1) -n. {$< }
+
+.cpp.i:
+ $(BCB)\BIN\$(CPP32) $(CFLAG1) -n. {$< }
+
+.asm.obj:
+ $(BCB)\BIN\$(TASM32) $(AFLAGS) $<, $@
+
+.rc.res:
+ $(BCB)\BIN\$(BRCC32) $(RFLAGS) -fo$@ $<
+# ---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/InstallMgr/InstallMgr.conf b/apps/windoze/CBuilder4/InstallMgr/InstallMgr.conf
new file mode 100644
index 0000000..f217e61
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/InstallMgr.conf
@@ -0,0 +1,5 @@
+
+[Sources]
+FTPSource=CrossWire Bible Society|ftp.crosswire.org|/pub/sword/raw/
+LocalPath=C:\sword
+
diff --git a/apps/windoze/CBuilder4/InstallMgr/InstallMgr.cpp b/apps/windoze/CBuilder4/InstallMgr/InstallMgr.cpp
new file mode 100644
index 0000000..1d6907e
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/InstallMgr.cpp
@@ -0,0 +1,33 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+USERES("InstallMgr.res");
+USEFORM("MainFrm.cpp", MainForm);
+USELIB("..\BibleCS\swordlib.lib");
+USEFORM("StatusFrm.cpp", StatusForm);
+USEFORM("RemoteMntFrm.cpp", RemoteMntForm);
+USEFORM("InfoFrm.cpp", InfoForm);
+USEFORM("cipherfrm.cpp", CipherForm);
+USEFORM("UninstallFrm.cpp", UninstallForm);
+//---------------------------------------------------------------------------
+WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
+{
+ try
+ {
+ Application->Initialize();
+ Application->Title = "Install Manager";
+ Application->CreateForm(__classid(TMainForm), &MainForm);
+ Application->CreateForm(__classid(TStatusForm), &StatusForm);
+ Application->CreateForm(__classid(TRemoteMntForm), &RemoteMntForm);
+ Application->CreateForm(__classid(TInfoForm), &InfoForm);
+ Application->CreateForm(__classid(TCipherForm), &CipherForm);
+ Application->CreateForm(__classid(TUninstallForm), &UninstallForm);
+ Application->Run();
+ }
+ catch (Exception &exception)
+ {
+ Application->ShowException(&exception);
+ }
+ return 0;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/InstallMgr/InstallMgr.res b/apps/windoze/CBuilder4/InstallMgr/InstallMgr.res
new file mode 100644
index 0000000..f65507c
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/InstallMgr.res
Binary files differ
diff --git a/apps/windoze/CBuilder4/InstallMgr/MainFrm.cpp b/apps/windoze/CBuilder4/InstallMgr/MainFrm.cpp
new file mode 100644
index 0000000..55eb8fb
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/MainFrm.cpp
@@ -0,0 +1,1021 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "MainFrm.h"
+#include "StatusFrm.h"
+#include "RemoteMntFrm.h"
+#include "InfoFrm.h"
+#include "cipherfrm.h"
+#include "UninstallFrm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+
+#include <swwinlog.h>
+#include <shellapi.h>
+#include <dirent.h>
+#include <fcntl.h>
+#include <io.h>
+#include <sys/stat.h>
+#include <dir.h>
+
+TMainForm *MainForm;
+
+
+VersionInfo::VersionInfo(const char *version) {
+ char *buf = new char[ strlen(version) + 1 ];
+ char *tok;
+ major = minor = minor2 = minor3 = 0;
+
+ strcpy(buf, version);
+ tok = strtok(buf, ".");
+ if (tok)
+ major = atoi(tok);
+ tok = strtok(0, ".");
+ if (tok)
+ minor = atoi(tok);
+ tok = strtok(0, ".");
+ if (tok)
+ minor2 = atoi(tok);
+ tok = strtok(0, ".");
+ if (tok)
+ minor3 = atoi(tok);
+ delete [] buf;
+}
+
+
+int VersionInfo::compare(const VersionInfo &vi) const {
+ if (major == vi.major)
+ if (minor == vi.minor)
+ if (minor2 == vi.minor2)
+ if (minor3 == vi.minor3)
+ return 0;
+ else return minor3 - vi.minor3;
+ else return minor2 - vi.minor2;
+ else return minor - vi.minor;
+ else return major - vi.major;
+}
+
+
+__fastcall InstallSourceTab::InstallSourceTab(TComponent *Owner, const char *confEnt, const char *type) : TControl(Owner) {
+ char *buf = new char [ strlen(confEnt) + 1 ];
+
+ strcpy(buf, confEnt);
+
+ Caption = strtok(buf, "|");
+ Source = strtok(0, "|");
+ Directory = strtok(0, "|");
+ delete [] buf;
+ Type = type;
+ mgr = 0;
+}
+
+__fastcall InstallSourceTab::~InstallSourceTab() {
+ if (mgr)
+ delete mgr;
+}
+
+__fastcall TMainForm::TMainForm(TComponent* Owner)
+ : TForm(Owner)
+{
+ manager = new SWMgr();
+ installConf = new SWConfig("./InstallMgr.conf");
+ localMgr = 0;
+}
+
+
+__fastcall TMainForm::~TMainForm()
+{
+ delete manager;
+ delete installConf;
+ if (localMgr)
+ delete localMgr;
+}
+
+
+void __fastcall TMainForm::FormCreate(TObject *Sender) {
+
+ refreshPageControl();
+
+ if (SWLog::systemlog)
+ delete SWLog::systemlog;
+ SWLog::systemlog = new SWWinLog(this->Handle); // set the system logger to our MSWindows specific SWLog class
+
+ fillInstallTree();
+ fillSourceTree(getLocalDir(), localTree);
+}
+
+
+void TMainForm::refreshPageControl()
+{
+ SectionMap::iterator sources;
+ ConfigEntMap::iterator sourceBegin;
+ ConfigEntMap::iterator sourceEnd;
+
+ while (PageControl1->PageCount > 1) {
+ delete PageControl1->Pages[1];
+ }
+
+ sources = installConf->Sections.find("Sources");
+
+ if (sources != installConf->Sections.end()) {
+ sourceBegin = sources->second.lower_bound("FTPSource");
+ sourceEnd = sources->second.upper_bound("FTPSource");
+
+ if (sourceBegin != sourceEnd) {
+ while (sourceBegin != sourceEnd) {
+ addSource(new InstallSourceTab(this, sourceBegin->second.c_str(), "FTP"));
+ sourceBegin++;
+ }
+ }
+ }
+}
+
+
+void TMainForm::addSource(InstallSourceTab *ist)
+{
+ TTabSheet *newtab = new TTabSheet(this);
+ TTreeView *newtree = new TTreeView(this);
+ TSpeedButton *newbutton = new TSpeedButton(this);
+ TPanel *newpanel = new TPanel(this);
+ char buf[512];
+ SectionMap::iterator sit;
+
+ newtab->Caption = ist->Caption.c_str();
+ newtab->Hint = ist->Source.c_str();
+ newtab->ShowHint = true;
+ newtab->PageControl = PageControl1;
+ ist->Parent = newtab;
+ ist->tree = newtree;
+ newpanel->Parent = newtab;
+ newpanel->Align = alTop;
+ newpanel->BevelOuter = bvNone;
+ newpanel->BevelInner = bvNone;
+ newpanel->Height = 25;
+ newbutton->Parent = newpanel;
+ newbutton->Caption = "Refresh from Remote Source";
+ newbutton->Width = 175;
+ newbutton->OnClick = RefreshRemoteSource;
+ newbutton->Flat = true;
+ newbutton->Glyph = SpeedButton2->Glyph;
+ newtree->Parent = newtab;
+ newtree->Align = alClient;
+ newtree->ReadOnly = true;
+ newtree->OnDblClick = localTreeDblClick;
+ newtree->Images = ImageList1;
+ newtree->StateImages = ImageList2;
+ string parent = "./sources/" + ist->Source + "/file";
+ createParent(parent.c_str());
+ parent = "./sources/" + ist->Source;
+ fillSourceTree(parent.c_str(), newtree);
+}
+
+
+const char *TMainForm::getLocalDir()
+{
+ ConfigEntMap::iterator entry;
+
+ entry = installConf->Sections["Sources"].find("LocalPath");
+ if (entry == installConf->Sections["Sources"].end()) {
+ installConf->Sections["Sources"].insert(ConfigEntMap::value_type("LocalPath", "d:/sword"));
+ entry = installConf->Sections["Sources"].find("LocalPath");
+ }
+ return entry->second.c_str();
+
+}
+
+
+void TMainForm::setLocalDir(const char *idir)
+{
+ installConf->Sections["Sources"].erase("LocalPath"); installConf->Sections["Sources"].insert(ConfigEntMap::value_type("LocalPath", idir));
+}
+
+
+//---------------------------------------------------------------------------
+void __fastcall TMainForm::LocalPath1Click(TObject *Sender)
+{
+ localPathDlg->Title = "Select a file in the directory to choose";
+ localPathDlg->InitialDir = getLocalDir();
+ if (localPathDlg->Execute()) {
+ char *buf = new char [ strlen(localPathDlg->FileName.c_str()) + 1 ];
+
+ strcpy(buf, localPathDlg->FileName.c_str());
+ int end = strlen(buf) - 1;
+ while (end) {
+ if ((buf[end] == '/') || (buf[end] == '\\'))
+ break;
+ end--;
+ }
+ buf[end+1] = 0;
+ setLocalDir(buf);
+ delete [] buf;
+ }
+
+ installConf->Save();
+ fillSourceTree(getLocalDir(), localTree);
+}
+//---------------------------------------------------------------------------
+
+void TMainForm::fillInstallTree()
+{
+ ModMap::iterator mods;
+ TTreeNode *node;
+ string nodeName;
+
+ installTree->Items->Clear();
+
+ if (!manager->configPath)
+ return;
+
+ for (mods = manager->Modules.begin(); mods != manager->Modules.end(); mods++) {
+ for (node = installTree->Items->GetFirstNode(); node; node = node->getNextSibling()) {
+ if (!strcmp(node->Text.c_str(), mods->second->Type())) {
+ break;
+ }
+ }
+ if (!node) { // Add Section
+ if (!strncmp(mods->second->Type(), "Bibl", 4)) // If Bibles, put first in list
+ node = installTree->Items->AddChildFirst(0, mods->second->Type());
+ else node = installTree->Items->AddChild(0, mods->second->Type());
+ }
+ nodeName = "[";
+ nodeName += mods->second->Name();
+ nodeName += "] ";
+ nodeName += mods->second->Description();
+ node = installTree->Items->AddChildObject(node, nodeName.c_str(), mods->second->Name());
+ }
+}
+
+
+void TMainForm::fillSourceTree(const char *sourceConf, TTreeView *tree)
+{
+ ModMap::iterator mods;
+ TTreeNode *node;
+ SectionMap::iterator sections, targetSection;
+ ConfigEntMap::iterator entry;
+ string secName;
+ const char * modDesc;
+ string nodeName;
+ string targetVersion;
+ string sourceVersion;
+ bool cipher;
+
+ SWMgr *mgr;
+
+ if (tree == localTree) {
+ if (localMgr)
+ delete localMgr;
+ mgr = localMgr = new SWMgr(sourceConf);
+ }
+ else {
+ InstallSourceTab *ist = (InstallSourceTab *) MainForm->PageControl1->ActivePage->Controls[0];
+ if (ist->mgr)
+ delete ist->mgr;
+ mgr = ist->mgr = new SWMgr(sourceConf);
+ }
+
+ tree->Items->Clear();
+
+ if (!mgr->configPath)
+ return;
+
+ for (sections = mgr->config->Sections.begin(); sections != mgr->config->Sections.end(); sections++) {
+
+ cipher = false;
+
+ if (!strcmp(sections->first.c_str(), "Globals")) // skip [Globals]
+ continue;
+
+ mods = mgr->Modules.find(sections->first.c_str());
+ if (mods != mgr->Modules.end())
+ secName = mods->second->Type();
+ else {
+ secName = "Other";
+ }
+ entry = sections->second.find("Description");
+ if (entry != sections->second.end())
+ modDesc = entry->second.c_str();
+ else modDesc = "";
+
+
+ targetVersion = "0.0";
+ sourceVersion = "1.0";
+
+ entry = sections->second.find("CipherKey");
+ if (entry != sections->second.end())
+ cipher = true;
+
+ entry = sections->second.find("Version");
+ if (entry != sections->second.end())
+ sourceVersion = entry->second.c_str();
+
+ targetSection = manager->config->Sections.find(sections->first);
+ if (targetSection != manager->config->Sections.end()) {
+ targetVersion = "1.0";
+ entry = targetSection->second.find("Version");
+ if (entry != targetSection->second.end())
+ targetVersion = entry->second;
+ }
+
+ if (VersionInfo(sourceVersion.c_str()) > VersionInfo(targetVersion.c_str())) {
+
+
+ for (node = tree->Items->GetFirstNode(); node; node = node->getNextSibling()) {
+ if (!strcmp(node->Text.c_str(), secName.c_str())) {
+ break;
+ }
+ }
+
+ if (!node) { // Add Section
+ if (!strncmp(secName.c_str(), "Bibl", 4)) // If Bibles, put first in list
+ node = tree->Items->AddChildFirst(0, secName.c_str());
+ else node = tree->Items->AddChild(0, secName.c_str());
+ node->ImageIndex = 0;
+ }
+ nodeName = "[" + sections->first + "] " + modDesc;
+ node = tree->Items->AddChildObject(node, nodeName.c_str(), (void *) sections->first.c_str());
+ if (VersionInfo(targetVersion.c_str()) < VersionInfo("1.0")) {
+ node->ImageIndex = 1;
+ node->SelectedIndex = 1;
+ }
+ else {
+ node->ImageIndex = 2;
+ node->SelectedIndex = 2;
+ }
+ if (cipher) {
+ node->ImageIndex += 2;
+ node->SelectedIndex += 2;
+ }
+ node->StateIndex = 0;
+ }
+ }
+}
+
+
+void __fastcall TMainForm::Button5Click(TObject *Sender)
+{
+ TTreeView *tree;
+ for (int i = 0; i < PageControl1->ActivePage->ControlCount; i++) {
+ if (PageControl1->ActivePage->Controls[i]->ClassNameIs("TTreeView")) {
+ tree = (TTreeView*)(PageControl1->ActivePage->Controls[i]);
+ break;
+ }
+ }
+ TTreeNode *node = tree->Selected;
+ if (node) {
+ if (node->Parent) {
+ if (node->StateIndex == 1)
+ node->StateIndex = 0; //node->StateIndex;
+ else node->StateIndex = 1;
+ tree->Repaint();
+ }
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TMainForm::localTreeDblClick(TObject *Sender)
+{
+ Button5Click(Sender);
+}
+//---------------------------------------------------------------------------
+
+int TMainForm::selectAll(TTreeView *tree, bool sel)
+{
+ TTreeNode *node;
+ TTreeNode *node2;
+ int retCount = 0;
+
+ for (node = tree->Items->GetFirstNode(); node; node = node->getNextSibling()) {
+ for (node2 = node->getFirstChild(); node2; node2 = node2->getNextSibling()) {
+ if (node2->StateIndex == 1) {
+ if (!sel) {
+ node2->StateIndex = 0; //node2->StateIndex;
+ retCount++;
+ }
+ }
+ else {
+ if (sel) {
+ node2->StateIndex = 1;
+ retCount++;
+ }
+ }
+ }
+ }
+ return retCount;
+}
+
+
+void __fastcall TMainForm::Button6Click(TObject *Sender) // SELECT ALL
+{
+ TTreeView *tree;
+ for (int i = 0; i < PageControl1->ActivePage->ControlCount; i++) {
+ if (PageControl1->ActivePage->Controls[i]->ClassNameIs("TTreeView")) {
+ tree = (TTreeView*)(PageControl1->ActivePage->Controls[i]);
+ break;
+ }
+ }
+ if (!selectAll(tree, true))
+ selectAll(tree, false);
+ tree->Repaint();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TMainForm::Image1Click(TObject *Sender)
+{
+ ShellExecute(this->Handle, "open", "http://www.crosswire.org", NULL, NULL, SW_SHOWNORMAL);
+
+}
+//---------------------------------------------------------------------------
+
+
+int TMainForm::removeModule(const char *modName)
+{
+ SectionMap::iterator module;
+ ConfigEntMap::iterator fileBegin;
+ ConfigEntMap::iterator fileEnd, entry;
+
+ module = manager->config->Sections.find(modName);
+
+ if (module != manager->config->Sections.end()) {
+ entry = module->second.find("CipherKey");
+ if (entry != module->second.end())
+ CipherForm->cipherEdit->Text = entry->second.c_str();
+
+ fileBegin = module->second.lower_bound("File");
+ fileEnd = module->second.upper_bound("File");
+
+ if (fileBegin != fileEnd) { // remove each file
+ while (fileBegin != fileEnd) {
+ //remove file
+ remove(fileBegin->second.c_str());
+ fileBegin++;
+ }
+ }
+ else { //remove all files in DataPath directory
+
+ DIR *dir;
+ struct dirent *ent;
+ ConfigEntMap::iterator entry;
+ string modDir;
+ string modFile;
+
+ entry = module->second.find("DataPath");
+ if (entry != module->second.end()) {
+ modDir = entry->second.c_str();
+ entry = module->second.find("ModDrv");
+ if (entry != module->second.end()) {
+ if (!strcmp(entry->second.c_str(), "RawLD")) {
+ char *buf = new char [ strlen(modDir.c_str()) + 1 ];
+
+ strcpy(buf, modDir.c_str());
+ int end = strlen(buf) - 1;
+ while (end) {
+ if (buf[end] == '/')
+ break;
+ end--;
+ }
+ buf[end] = 0;
+ modDir = buf;
+ delete [] buf;
+ }
+ }
+
+ if (dir = opendir(modDir.c_str())) {
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, ".")) && (strcmp(ent->d_name, ".."))) {
+ modFile = modDir;
+ modFile += "/";
+ modFile += ent->d_name;
+ remove(modFile.c_str());
+ }
+ }
+ closedir(dir);
+ }
+ if (dir = opendir(manager->configPath)) { // find and remove .conf file
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, ".")) && (strcmp(ent->d_name, ".."))) {
+ modFile = manager->configPath;
+ modFile += "/";
+ modFile += ent->d_name;
+ SWConfig *config = new SWConfig(modFile.c_str());
+ if (config->Sections.find(modName) != config->Sections.end()) {
+ delete config;
+ remove(modFile.c_str());
+ }
+ else delete config;
+ }
+ }
+ closedir(dir);
+ }
+ }
+ }
+ return 0;
+ }
+ return 1;
+}
+
+
+int TMainForm::createParent(const char *pName)
+{
+ char *buf = new char [ strlen(pName) + 1 ];
+ int retCode;
+
+ strcpy(buf, pName);
+ int end = strlen(buf) - 1;
+ while (end) {
+ if (buf[end] == '/')
+ break;
+ end--;
+ }
+ buf[end] = 0;
+ if (!strlen(buf))
+ return -1;
+
+ if ((retCode = mkdir(buf))) {
+ createParent(buf);
+ retCode = mkdir(buf);
+ }
+ delete [] buf;
+ return retCode;
+}
+
+
+int TMainForm::createPathAndFile(const char *fName)
+{
+ int fd;
+
+ fd = open(fName, O_CREAT|O_WRONLY|O_BINARY, S_IREAD|S_IWRITE);
+ if (fd < 1) {
+ createParent(fName);
+ fd = open(fName, O_CREAT|O_WRONLY|O_BINARY, S_IREAD|S_IWRITE);
+ }
+ return fd;
+}
+
+
+int TMainForm::copyFileToCWD(const char *sourceDir, const char *fName)
+{
+ string sourcePath = sourceDir;
+ sourcePath += fName;
+
+ return copyFile(sourcePath.c_str(), fName);
+}
+
+
+int TMainForm::copyFile(const char *sourceFile, const char *targetFile)
+{
+ int sfd, dfd, len;
+ char buf[4096];
+
+ if ((sfd = open(sourceFile, O_RDONLY|O_BINARY)) < 1)
+ return -1;
+ if ((dfd = createPathAndFile(targetFile)) < 1)
+ return -1;
+
+ do {
+ len = read(sfd, buf, 4096);
+ write(dfd, buf, len);
+ }
+ while(len == 4096);
+ close(dfd);
+ close(sfd);
+
+ return 0;
+}
+
+
+int TMainForm::installModule(const char *modName, InstallSourceTab *ist)
+{
+ SectionMap::iterator module, section;
+ ConfigEntMap::iterator fileBegin;
+ ConfigEntMap::iterator fileEnd;
+ ConfigEntMap::iterator entry;
+ string sourceDir;
+ string buffer;
+ bool aborted = false;
+ bool cipher = false;
+
+ if (ist)
+ sourceDir = "./sources/" + ist->Source;
+ else sourceDir = getLocalDir();
+
+ SWMgr mgr(sourceDir.c_str());
+
+ module = mgr.config->Sections.find(modName);
+
+ if (module != mgr.config->Sections.end()) {
+
+ entry = module->second.find("CipherKey");
+ if (entry != module->second.end())
+ cipher = true;
+
+ fileEnd = module->second.upper_bound("File");
+ fileBegin = module->second.lower_bound("File");
+
+ if (fileBegin != fileEnd) { // copy each file
+ if (ist) {
+ while (fileBegin != fileEnd) { // ftp each file first
+ buffer = sourceDir + "/" + fileBegin->second;
+ if (FTPCopy(ist, fileBegin->second.c_str(), buffer.c_str())) {
+ aborted = true;
+ break; // user aborted
+ }
+ fileBegin++;
+ }
+ fileBegin = module->second.lower_bound("File");
+ }
+
+ if (!aborted) {
+ // DO THE INSTALL
+ while (fileBegin != fileEnd) {
+ copyFileToCWD(sourceDir.c_str(), fileBegin->second.c_str());
+ fileBegin++;
+ }
+ }
+ //---------------
+
+ if (ist) {
+ fileBegin = module->second.lower_bound("File");
+ while (fileBegin != fileEnd) { // delete each tmp ftp file
+ buffer = sourceDir + "/" + fileBegin->second;
+ remove(buffer.c_str());
+ fileBegin++;
+ }
+ }
+ }
+ else { //copy all files in DataPath directory
+ DIR *dir;
+ struct dirent *ent;
+ ConfigEntMap::iterator entry;
+ string modDir;
+ string modFile;
+ string sourceOrig = sourceDir;
+
+ entry = module->second.find("DataPath");
+ if (entry != module->second.end()) {
+ modDir = entry->second.c_str();
+ entry = module->second.find("ModDrv");
+ if (entry != module->second.end()) {
+ if (!strcmp(entry->second.c_str(), "RawLD")) {
+ char *buf = new char [ strlen(modDir.c_str()) + 1 ];
+
+ strcpy(buf, modDir.c_str());
+ int end = strlen(buf) - 1;
+ while (end) {
+ if (buf[end] == '/')
+ break;
+ end--;
+ }
+ buf[end] = 0;
+ modDir = buf;
+ delete [] buf;
+ }
+ }
+
+ if (ist) {
+ buffer = sourceDir + "/" + modDir;
+ if (FTPCopy(ist, modDir.c_str(), buffer.c_str(), true)) {
+ aborted = true; // user aborted
+ }
+ }
+ sourceDir += "/";
+ sourceDir += modDir;
+ if (!aborted) {
+ if (dir = opendir(sourceDir.c_str())) {
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, ".")) && (strcmp(ent->d_name, ".."))) {
+ modFile = modDir;
+ modFile += "/";
+ modFile += ent->d_name;
+ copyFileToCWD(sourceOrig.c_str(), modFile.c_str());
+ }
+ }
+ closedir(dir);
+ }
+ }
+ if (ist) { // delete tmp ftp files
+ if (dir = opendir(sourceDir.c_str())) {
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, ".")) && (strcmp(ent->d_name, ".."))) {
+ modFile = sourceOrig + "/" + modDir;
+ modFile += "/";
+ modFile += ent->d_name;
+ remove(modFile.c_str());
+ }
+ }
+ closedir(dir);
+ }
+ }
+ sourceDir = sourceOrig;
+ sourceDir += "/mods.d/";
+ if (!aborted) {
+ if (dir = opendir(sourceDir.c_str())) { // find and copy .conf file
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, ".")) && (strcmp(ent->d_name, ".."))) {
+ modFile = sourceDir;
+ modFile += ent->d_name;
+ SWConfig *config = new SWConfig(modFile.c_str());
+ if (config->Sections.find(modName) != config->Sections.end()) {
+ delete config;
+ string targetFile = "./mods.d/";
+ targetFile += ent->d_name;
+ copyFile(modFile.c_str(), targetFile.c_str());
+ if (cipher) {
+ CipherForm->modName = modName;
+ CipherForm->confFile = targetFile;
+ CipherForm->ShowModal();
+ }
+ }
+ else delete config;
+ }
+ }
+ closedir(dir);
+ }
+ }
+ }
+ }
+ return (aborted) ? -1 : 0;
+ }
+ return 1;
+}
+
+
+void TMainForm::fillAllSourceTrees()
+{
+ fillSourceTree(getLocalDir(), localTree);
+ for (int i = 1; i < PageControl1->PageCount; i++) {
+ InstallSourceTab *ist = (InstallSourceTab *) MainForm->PageControl1->Pages[i]->Controls[0];
+ string parent = "./sources/" + ist->Source;
+ fillSourceTree(parent.c_str(), ist->tree);
+ }
+}
+
+
+void __fastcall TMainForm::Button4Click(TObject *Sender) // REMOVE MODULE
+{
+ TTreeNode *node = installTree->Selected;
+ if (node) {
+ if (node->Parent) {
+ removeModule((const char *)node->Data);
+ delete manager;
+ manager = new SWMgr();
+ fillInstallTree();
+ fillAllSourceTrees();
+ }
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TMainForm::Button2Click(TObject *Sender) // INSTALL
+{
+ TTreeNode *node;
+ int count = 0;
+ int abort = 0;
+
+ class TWaitCursor {
+ public:
+ TWaitCursor() : oldc(Screen->Cursor) { Screen->Cursor = crHourGlass; }
+ ~TWaitCursor() { Screen->Cursor = oldc; }
+ private:
+ TCursor oldc;
+ } wait; // show hourglass
+
+ TTreeView *tree;
+ for (int i = 0; i < PageControl1->ActivePage->ControlCount; i++) {
+ if (PageControl1->ActivePage->Controls[i]->ClassNameIs("TTreeView")) {
+ tree = (TTreeView*)(PageControl1->ActivePage->Controls[i]);
+ break;
+ }
+ }
+
+ for (node = tree->Items->GetFirstNode(); node; node = node->GetNext()) {
+ if (node->StateIndex == 1)
+ count++;
+ } // do true progress bar
+
+ if (!count) return; // if nothing is selected, do nothing
+
+ progressBar->Max = count;
+ progressBar->Position = 0;
+
+ for (node = tree->Items->GetFirstNode(); node; node = node->GetNext()) {
+ if (node->StateIndex == 1) { // if selected for install
+ CipherForm->cipherEdit->Text = "";
+ if ((node->ImageIndex == 2) || (node->ImageIndex == 4)) { // if this is an upgrade
+ removeModule((const char *)node->Data);
+ }
+ // install module
+ statusBar->Caption = "Installing: " + node->Text + "...";
+ statusBar->Repaint();
+ if (tree == localTree)
+ abort = installModule((const char *)node->Data);
+ else abort = installModule((const char *)node->Data, (InstallSourceTab *) PageControl1->ActivePage->Controls[0]);
+ if (abort)
+ break;
+ progressBar->Position++;
+ }
+ }
+ delete manager;
+ manager = new SWMgr();
+ fillInstallTree();
+ fillAllSourceTrees();
+ statusBar->Caption = "";
+ progressBar->Position = 0;
+}
+
+
+int TMainForm::FTPCopy(InstallSourceTab *ist, const char *src, const char *dest, bool dirTransfer)
+{
+ StatusForm->ist = ist;
+ StatusForm->src = src;
+ StatusForm->dest = dest;
+ StatusForm->dirTransfer = dirTransfer;
+
+ Application->ProcessMessages();
+ if (StatusForm->ShowModal() == mrCancel)
+ return -1;
+ else return 0;
+}
+
+
+void __fastcall TMainForm::RefreshRemoteSource(TObject *Sender)
+{
+ InstallSourceTab *ist = (InstallSourceTab *) MainForm->PageControl1->ActivePage->Controls[0];
+ DIR *dir;
+ struct dirent *ent;
+ ConfigEntMap::iterator entry;
+ string modDir;
+ string modFile;
+ string target = "./sources/";
+ target += ist->Source.c_str();
+ target += "/mods.d";
+
+ if (dir = opendir(target.c_str())) {
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, ".")) && (strcmp(ent->d_name, ".."))) {
+ modFile = target;
+ modFile += "/";
+ modFile += ent->d_name;
+ remove(modFile.c_str());
+ }
+ }
+ closedir(dir);
+ }
+
+
+ FTPCopy(ist, "mods.d", target.c_str(), true);
+
+ target = "./sources/";
+ target += ist->Source.c_str();
+
+ fillSourceTree(target.c_str(), ist->tree);
+}
+
+
+
+void __fastcall TMainForm::SpeedButton1Click(TObject *Sender)
+{
+ InfoForm->Caption = "W A R N I N G";
+ InfoForm->info = "\\qc {\\b \\fs20 -=+* WARNING *+=- -=+* WARNING *+=-}\\par\\par\\pard ";
+ InfoForm->info += "Although Install Manager provides a convenient way for installing and upgrading SWORD components, it also uses a systematic method for accessing sites which gives packet sniffers a target to lock into for singling out users. \\par\\par ";
+ InfoForm->info += "\\b\\qc IF YOU LIVE IN A PERSECUTED COUNTRY AND DO NOT WISH TO RISK DETECTION, YOU SHOULD *NOT* USE INSTALL MANAGER'S REMOTE SOURCE FEATURES.";
+ InfoForm->ShowModal();
+ if (RemoteMntForm->ShowModal() == mrOk) {
+ delete installConf;
+ installConf = new SWConfig("./InstallMgr.conf");
+
+ refreshPageControl();
+ }
+}
+
+void __fastcall TMainForm::SpeedButton5Click(TObject *Sender)
+{
+ TTreeView *tree;
+ InstallSourceTab *ist = 0;
+ SectionMap::iterator module;
+ ConfigEntMap::iterator entry, entryEnd;
+ string sourceDir;
+
+ if (PageControl1->ActivePage != PageControl1->Pages[0]) {
+ ist = (InstallSourceTab *) PageControl1->ActivePage->Controls[0];
+ tree = ist->tree;
+ }
+ else tree = localTree;
+
+ TTreeNode *node = tree->Selected;
+ if (node) {
+ if (node->Parent) {
+ if (ist)
+ sourceDir = "./sources/" + ist->Source;
+ else sourceDir = getLocalDir();
+ SWMgr *mgr = new SWMgr(sourceDir.c_str());
+
+ module = mgr->config->Sections.find((const char *)node->Data);
+
+ if (module != mgr->config->Sections.end()) {
+ string targetVersion = "0.0";
+ string sourceVersion = "1.0";
+ SectionMap::iterator targetSection;
+
+ entry = module->second.find("Version");
+ if (entry != module->second.end())
+ sourceVersion = entry->second.c_str();
+
+ targetSection = manager->config->Sections.find(module->first);
+ if (targetSection != manager->config->Sections.end()) {
+ targetVersion = "1.0";
+ entry = targetSection->second.find("Version");
+ if (entry != targetSection->second.end())
+ targetVersion = entry->second;
+ }
+ if (VersionInfo(targetVersion.c_str()) < VersionInfo("1.0")) {
+ InfoForm->info = "\\pard{\\b * Additional Module Available for Install. } \\par ";
+ }
+ else {
+ InfoForm->info = "\\pard{\\b + Upgraded Module Available for Install.}\\par\\tab Current Version: \\tab " + targetVersion + " \\par\\tab Upgrade Version:\\tab " + sourceVersion + " \\par ";
+ bool changes = false;
+ for (entry = module->second.begin(); entry != module->second.end(); entry++) {
+ if (!strncmp(entry->first.c_str(), "History_", 8)) {
+ if (VersionInfo(&entry->first.c_str()[8]) > VersionInfo(targetVersion.c_str())) {
+ if (!changes) {
+ changes = true;
+ InfoForm->info += "\\par{\\b Changes: }\\par ";
+ }
+ InfoForm->info += "\\tab ";
+ InfoForm->info += entry->second.c_str();
+ InfoForm->info += "\\par ";
+ }
+ }
+ }
+ }
+
+ entry = module->second.find("About");
+ if (entry != module->second.end()) {
+ InfoForm->info += "\\par{\\b About: } \\par\\par ";
+ InfoForm->info += entry->second.c_str();
+ }
+ InfoForm->Caption = "Module Information";
+ InfoForm->ShowModal();
+ }
+ delete mgr;
+ }
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TMainForm::Exit1Click(TObject *Sender)
+{
+ Close();
+}
+//---------------------------------------------------------------------------
+
+
+void TMainForm::deleteAllModules() {
+
+ SWMgr *mgr = new SWMgr();
+
+
+ int count = mgr->Modules.size();
+
+ if (!count)
+ return;
+
+ UninstallForm->Show();
+ UninstallForm->ProgressBar1->Max = count;
+ UninstallForm->ProgressBar1->Position = 0;
+
+ ModMap::iterator it;
+ for (it = mgr->Modules.begin(); it != mgr->Modules.end(); it++) {
+ string label = "Uninstalling: [";
+ label += it->second->Name();
+ label += "] ";
+ label += it->second->Description();
+ UninstallForm->Label1->Caption = label.c_str();
+ UninstallForm->Label1->Repaint();
+ removeModule(it->second->Name());
+ UninstallForm->ProgressBar1->Position = UninstallForm->ProgressBar1->Position + 1;
+ UninstallForm->ProgressBar1->Repaint();
+ }
+ delete mgr;
+ UninstallForm->Hide();
+ return;
+}
+void __fastcall TMainForm::FormShow(TObject *Sender)
+{
+ for (int i=0;i<=ParamCount();i++) {
+ if (LowerCase(ParamStr(i)) == "-uninstall") {
+ deleteAllModules();
+ Application->Terminate();
+ }
+ }
+
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder4/InstallMgr/MainFrm.dfm b/apps/windoze/CBuilder4/InstallMgr/MainFrm.dfm
new file mode 100644
index 0000000..9dd6502
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/MainFrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/InstallMgr/MainFrm.h b/apps/windoze/CBuilder4/InstallMgr/MainFrm.h
new file mode 100644
index 0000000..a6f7cd8
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/MainFrm.h
@@ -0,0 +1,139 @@
+//---------------------------------------------------------------------------
+#ifndef MainFrmH
+#define MainFrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <Dialogs.hpp>
+#include <Menus.hpp>
+#include <ExtCtrls.hpp>
+#include <MPlayer.hpp>
+#include <Graphics.hpp>
+#include <ComCtrls.hpp>
+#include <swmgr.h>
+#include <ImgList.hpp>
+#include <Buttons.hpp>
+#include <NMFtp.hpp>
+#include <NMHttp.hpp>
+#include <Psock.hpp>
+
+
+class VersionInfo {
+ public:
+ int major, minor, minor2, minor3;
+
+ VersionInfo(const char *version);
+ int compare(const VersionInfo &vi) const;
+ bool operator>(const VersionInfo &vi) const {return (compare(vi) > 0);}
+ bool operator<(const VersionInfo &vi) const {return (compare(vi) < 0);}
+ bool operator==(const VersionInfo &vi) const {return (compare(vi) == 0);}
+};
+
+
+class InstallSourceTab : public TControl {
+public:
+ __fastcall InstallSourceTab(TComponent *Owner, const char *confEnt, const char *type);
+ __fastcall ~InstallSourceTab();
+ string Type;
+ string Source;
+ string Directory;
+ string Caption;
+ TTreeView *tree;
+ SWMgr *mgr;
+};
+
+
+//---------------------------------------------------------------------------
+class TMainForm : public TForm
+{
+ class TWebThread;
+ friend class TWebThread;
+__published: // IDE-managed Components
+ TMainMenu *MainMenu1;
+ TMenuItem *File1;
+ TMenuItem *Exit1;
+ TMenuItem *Option1;
+ TMenuItem *LocalPath1;
+ TOpenDialog *localPathDlg;
+ TPanel *Panel1;
+ TMediaPlayer *MediaPlayer1;
+ TImage *Image1;
+ TPanel *pnlAvailable;
+ TPanel *pnlInstalled;
+ TSplitter *Splitter1;
+ TPanel *Panel2;
+ TPanel *Panel5;
+ TPageControl *PageControl1;
+ TTabSheet *TabSheet1;
+ TTreeView *localTree;
+ TPanel *Panel8;
+ TPanel *Panel7;
+ TPanel *Panel6;
+ TTreeView *installTree;
+ TTimer *Timer1;
+ TLabel *Label1;
+ TImageList *ImageList1;
+ TPanel *Panel3;
+ TImageList *ImageList2;
+ TPanel *statusBar;
+ TPanel *Panel4;
+ TProgressBar *progressBar;
+ TSpeedButton *SpeedButton2;
+ TImage *Image2;
+ TLabel *Label2;
+ TMenuItem *ManageRemoteSources1;
+ TSpeedButton *SpeedButton1;
+ TSpeedButton *SpeedButton3;
+ TSpeedButton *SpeedButton4;
+ TSpeedButton *SpeedButton5;
+ TSpeedButton *SpeedButton6;
+ TSpeedButton *SpeedButton7;
+ void __fastcall LocalPath1Click(TObject *Sender);
+ void __fastcall FormCreate(TObject *Sender);
+ void __fastcall Button5Click(TObject *Sender);
+ void __fastcall localTreeDblClick(TObject *Sender);
+ void __fastcall Button6Click(TObject *Sender);
+ void __fastcall Image1Click(TObject *Sender);
+ void __fastcall Button4Click(TObject *Sender);
+ void __fastcall Button2Click(TObject *Sender);
+ void __fastcall SpeedButton1Click(TObject *Sender);
+ void __fastcall SpeedButton5Click(TObject *Sender);
+ void __fastcall Exit1Click(TObject *Sender);
+ void __fastcall FormShow(TObject *Sender);
+
+private: // User declarations
+
+ SWMgr *manager;
+ SWConfig *installConf;
+ const char *getLocalDir();
+ void setLocalDir(const char *idir);
+ void refreshPageControl();
+ void addSource(InstallSourceTab *ist);
+ void fillAllSourceTrees();
+ void deleteAllModules();
+
+public: // User declarations
+ __fastcall TMainForm(TComponent* Owner);
+ __fastcall ~TMainForm();
+ void __fastcall RefreshRemoteSource(TObject *Sender);
+ int selectAll(TTreeView *tree, bool sel);
+ int removeModule(const char *modName);
+ int installModule(const char *modName, InstallSourceTab *ist = 0);
+ static int createParent(const char *pName);
+ int createPathAndFile(const char *fName);
+ int copyFile(const char *sourceFile, const char *targetFile);
+ int copyFileToCWD(const char *sourceDir, const char *fName);
+ int FTPCopy(InstallSourceTab *ist, const char *src, const char *dest, bool dirTransfer = false);
+ SWMgr *localMgr;
+
+protected:
+ virtual void fillInstallTree();
+ virtual void fillSourceTree(const char *sourceConf, TTreeView *tree);
+};
+
+//---------------------------------------------------------------------------
+extern PACKAGE TMainForm *MainForm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/InstallMgr/RemoteMntFrm.cpp b/apps/windoze/CBuilder4/InstallMgr/RemoteMntFrm.cpp
new file mode 100644
index 0000000..a6b04b3
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/RemoteMntFrm.cpp
@@ -0,0 +1,145 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "RemoteMntFrm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+
+TRemoteMntForm *RemoteMntForm;
+
+
+class TRemoteSource : public TObject {
+public:
+ string name;
+ string machine;
+ string dir;
+ TRemoteSource(const char *confEnt) {
+ char *buf = new char [ strlen(confEnt) + 1 ];
+
+ strcpy(buf, confEnt);
+
+ name = strtok(buf, "|");
+ machine = strtok(0, "|");
+ dir = strtok(0, "|");
+ delete [] buf;
+ }
+ string getConfEnt() {
+ return name +"|" + machine + "|" + dir;
+ }
+};
+
+
+//---------------------------------------------------------------------------
+__fastcall TRemoteMntForm::TRemoteMntForm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TRemoteMntForm::FormShow(TObject *Sender)
+{
+ ConfigEntMap::iterator loop, end;
+ config = new SWConfig("./InstallMgr.conf");
+ ListBox1->Clear();
+ loop = config->Sections["Sources"].lower_bound("FTPSource");
+ end = config->Sections["Sources"].upper_bound("FTPSource");
+ while (loop != end) {
+ TRemoteSource *rs = new TRemoteSource(loop->second.c_str());
+ ListBox1->Items->AddObject(rs->name.c_str(), rs);
+ loop++;
+ }
+ ListBox1->ItemIndex = 0;
+ ListBox1Click(0);
+}
+//---------------------------------------------------------------------------
+void __fastcall TRemoteMntForm::FormClose(TObject *Sender,
+ TCloseAction &Action)
+{
+ delete config;
+}
+
+
+void __fastcall TRemoteMntForm::SpeedButton4Click(TObject *Sender)
+{
+ ModalResult = mrCancel;
+}
+
+
+void __fastcall TRemoteMntForm::ListBox1Click(TObject *Sender)
+{
+ if (ListBox1->ItemIndex >= 0) {
+ TRemoteSource *rs = (TRemoteSource *)ListBox1->Items->Objects[ListBox1->ItemIndex];
+
+ NameEdit->Text = rs->name.c_str();
+ MachineEdit->Text = rs->machine.c_str();
+ DirEdit->Text = rs->dir.c_str();
+ }
+ else {
+ NameEdit->Text = "";
+ MachineEdit->Text = "";
+ DirEdit->Text = "";
+ }
+}
+
+
+void __fastcall TRemoteMntForm::NameEditChange(TObject *Sender)
+{
+ if (ListBox1->ItemIndex < 0)
+ return;
+ TRemoteSource *rs = (TRemoteSource *)ListBox1->Items->Objects[ListBox1->ItemIndex];
+ rs->name = NameEdit->Text.c_str();
+ ListBox1->Items->Strings[ListBox1->ItemIndex] = rs->name.c_str();
+}
+
+
+void __fastcall TRemoteMntForm::MachineEditChange(TObject *Sender)
+{
+ if (ListBox1->ItemIndex < 0)
+ return;
+ TRemoteSource *rs = (TRemoteSource *)ListBox1->Items->Objects[ListBox1->ItemIndex];
+ rs->machine = MachineEdit->Text.c_str();
+}
+
+
+void __fastcall TRemoteMntForm::DirEditChange(TObject *Sender)
+{
+ if (ListBox1->ItemIndex < 0)
+ return;
+ TRemoteSource *rs = (TRemoteSource *)ListBox1->Items->Objects[ListBox1->ItemIndex];
+ rs->dir = DirEdit->Text.c_str();
+}
+
+void __fastcall TRemoteMntForm::SpeedButton2Click(TObject *Sender)
+{
+ if (ListBox1->ItemIndex < 0)
+ return;
+ int delItem = ListBox1->ItemIndex;
+ ListBox1->Items->Delete(delItem);
+ ListBox1->ItemIndex = (delItem < ListBox1->Items->Count) ? delItem : delItem - 1;
+ ListBox1Click(0);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TRemoteMntForm::SpeedButton1Click(TObject *Sender)
+{
+ TRemoteSource *rs = new TRemoteSource("[New Remote Site]|ftp.domain.org|/pub/sword/");
+ ListBox1->ItemIndex = ListBox1->Items->AddObject(rs->name.c_str(), rs);
+
+ ListBox1Click(0);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TRemoteMntForm::SpeedButton3Click(TObject *Sender)
+{
+ TRemoteSource *rs;
+ config->Sections["Sources"].erase("FTPSource");
+ for (int i = 0; i < ListBox1->Items->Count; i++) {
+ rs = (TRemoteSource *)ListBox1->Items->Objects[i];
+ config->Sections["Sources"].insert(ConfigEntMap::value_type("FTPSource", rs->getConfEnt().c_str()));
+ }
+ config->Save();
+ ModalResult = mrOk;
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder4/InstallMgr/RemoteMntFrm.dfm b/apps/windoze/CBuilder4/InstallMgr/RemoteMntFrm.dfm
new file mode 100644
index 0000000..965036c
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/RemoteMntFrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/InstallMgr/RemoteMntFrm.h b/apps/windoze/CBuilder4/InstallMgr/RemoteMntFrm.h
new file mode 100644
index 0000000..81060e1
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/RemoteMntFrm.h
@@ -0,0 +1,49 @@
+//---------------------------------------------------------------------------
+#ifndef RemoteMntFrmH
+#define RemoteMntFrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <Buttons.hpp>
+#include <ExtCtrls.hpp>
+#include <swconfig.h>
+//---------------------------------------------------------------------------
+class TRemoteMntForm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TPanel *Panel2;
+ TPanel *Panel3;
+ TListBox *ListBox1;
+ TSpeedButton *SpeedButton1;
+ TSpeedButton *SpeedButton2;
+ TEdit *NameEdit;
+ TEdit *MachineEdit;
+ TEdit *DirEdit;
+ TPanel *Panel4;
+ TSpeedButton *SpeedButton3;
+ TSpeedButton *SpeedButton4;
+ TLabel *Label1;
+ TLabel *Label2;
+ TLabel *Label3;
+ void __fastcall FormShow(TObject *Sender);
+ void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
+ void __fastcall NameEditChange(TObject *Sender);
+ void __fastcall SpeedButton4Click(TObject *Sender);
+ void __fastcall ListBox1Click(TObject *Sender);
+ void __fastcall MachineEditChange(TObject *Sender);
+ void __fastcall DirEditChange(TObject *Sender);
+ void __fastcall SpeedButton2Click(TObject *Sender);
+ void __fastcall SpeedButton1Click(TObject *Sender);
+ void __fastcall SpeedButton3Click(TObject *Sender);
+private: // User declarations
+ SWConfig *config;
+public: // User declarations
+ __fastcall TRemoteMntForm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TRemoteMntForm *RemoteMntForm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/InstallMgr/StatusFrm.cpp b/apps/windoze/CBuilder4/InstallMgr/StatusFrm.cpp
new file mode 100644
index 0000000..36911d2
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/StatusFrm.cpp
@@ -0,0 +1,175 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "StatusFrm.h"
+#include "MainFrm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TStatusForm *StatusForm;
+//---------------------------------------------------------------------------
+__fastcall TStatusForm::TStatusForm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TStatusForm::FormShow(TObject *Sender)
+{
+ abort = false;
+ ftpThread = new TFTPThread(ist, src.c_str(), dest.c_str(), dirTransfer, true);
+ ftpThread->OnTerminate = Cleanup;
+ ftpThread->Resume();
+}
+//---------------------------------------------------------------------------
+__fastcall TStatusForm::TFTPThread::TFTPThread(InstallSourceTab *iist, const char *isrc, const char *idest, bool idirTransfer, bool CreateSuspended)
+ : TThread(CreateSuspended)
+{
+ ist = iist;
+ src = isrc;
+ dest = idest;
+ dirTransfer = idirTransfer;
+ Priority = tpNormal;
+ FreeOnTerminate = true;
+ Synchronize((TThreadMethod)&CreateFTPObject);
+}
+
+__fastcall TStatusForm::TFTPThread::~TFTPThread()
+{
+ delete FTPLink;
+}
+
+
+void __fastcall TStatusForm::TFTPThread::Execute()
+{
+ Synchronize((TThreadMethod)&PreConnect);
+ FTPLink->OnPacketRecvd = FTPLinkPacketRecvd;
+ FTPLink->ParseList = true;
+ FTPLink->Host = ist->Source.c_str();
+ FTPLink->Port = 21;
+ FTPLink->UserID = "ftp";
+ FTPLink->Password = "installmgr@user.com";
+
+ try {
+ FTPLink->Connect();
+ FTPLink->Mode(MODE_IMAGE);
+ FTPLink->ChangeDir(ist->Directory.c_str());
+ }
+ catch(...) {
+ StatusForm->Button1Click(0); // abort thread
+ }
+
+ if (!Terminated) {
+ if (dirTransfer) {
+ FTPLink->ChangeDir(src.c_str());
+ fileList.clear();
+ FTPLink->List();
+ int fileCount = FTPLink->FTPDirectoryList->name->Count;
+ for (int i = 0; i < fileCount; i++) {
+ if (FTPLink->FTPDirectoryList->Attribute->Strings[i].c_str()[0] != 'd') {
+ buffer = dest + "/" + FTPLink->FTPDirectoryList->name->Strings[i].c_str();
+ buffer2 = "Downloading (";
+ buffer2 += IntToStr(i+1).c_str();
+ buffer2 += " of ";
+ buffer2 += IntToStr(fileCount).c_str();
+ buffer2 += "): ";
+ buffer2 += FTPLink->FTPDirectoryList->name->Strings[i].c_str();
+ // SWLog::systemlog->LogInformation("%s", buffer.c_str());
+ TMainForm::createParent(buffer.c_str()); // make sure parent directory exists
+ Synchronize((TThreadMethod)&PreDownload1);
+ try {
+ FTPLink->Download(FTPLink->FTPDirectoryList->name->Strings[i].c_str(), buffer.c_str());
+ }
+ catch(...) {}
+ if (Terminated)
+ break;
+ }
+ }
+
+ }
+ else {
+ Synchronize((TThreadMethod)&PreDownload2);
+ FTPLink->Download(src.c_str(), dest.c_str());
+ }
+ try {
+ FTPLink->Disconnect();
+ }
+ catch(...){}
+ }
+}
+
+
+void __fastcall TStatusForm::TFTPThread::FTPLinkPacketRecvd(TObject *Sender)
+{
+ Synchronize((TThreadMethod)&UpdateBytes);
+}
+
+
+void __fastcall TStatusForm::TFTPThread::UpdateBytes(void)
+{
+ StatusForm->statusBar->Caption = IntToStr(FTPLink->BytesRecvd) + " bytes out of " + IntToStr(FTPLink->BytesTotal) + " transferred (" + IntToStr((int)((float)(FTPLink->BytesRecvd + 1) / (float)(FTPLink->BytesTotal + 1) * 100)) + "%)";
+ StatusForm->statusBar->Repaint();
+}
+
+
+void __fastcall TStatusForm::TFTPThread::CreateFTPObject(void)
+{
+ FTPLink = new TNMFTP(0);
+}
+
+
+void __fastcall TStatusForm::TFTPThread::PreConnect(void)
+{
+ buffer = "Connecting to server at ";
+ buffer += ist->Source.c_str();
+ buffer += "...";
+ StatusForm->actionBar->Caption = buffer.c_str();
+ StatusForm->statusBar->Caption = "";
+ StatusForm->Repaint();
+}
+
+
+void __fastcall TStatusForm::TFTPThread::PreDownload1(void)
+{
+// SWLog::systemlog->LogInformation("Creating parent dir: %s", buffer.c_str());
+// SWLog::systemlog->LogInformation("Return: %d", ret);
+ StatusForm->actionBar->Caption = buffer2.c_str();
+ StatusForm->statusBar->Caption = "";
+ StatusForm->Repaint();
+}
+
+
+void __fastcall TStatusForm::TFTPThread::PreDownload2(void)
+{
+ buffer = "Downloading: ";
+ buffer += src.c_str();
+ StatusForm->actionBar->Caption = buffer.c_str();
+ StatusForm->statusBar->Caption = "";
+ StatusForm->Repaint();
+ MainForm->createParent(dest.c_str()); // make sure parent directory exists
+}
+
+
+void __fastcall TStatusForm::Cleanup(TObject *Sender)
+//void __fastcall TStatusForm::TFTPThread::Cleanup()
+{
+ if (abort)
+ StatusForm->ModalResult = mrCancel;
+ else StatusForm->ModalResult = mrOk;
+// StatusForm->Close();
+}
+
+void __fastcall TStatusForm::FormClose(TObject *Sender, TCloseAction &Action)
+{
+ MainForm->SetFocus();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TStatusForm::Button1Click(TObject *Sender)
+{
+ abort = true;
+ ftpThread->Terminate();
+ ftpThread->FTPLink->Abort();
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder4/InstallMgr/StatusFrm.dfm b/apps/windoze/CBuilder4/InstallMgr/StatusFrm.dfm
new file mode 100644
index 0000000..2075523
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/StatusFrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/InstallMgr/StatusFrm.h b/apps/windoze/CBuilder4/InstallMgr/StatusFrm.h
new file mode 100644
index 0000000..fdf7800
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/StatusFrm.h
@@ -0,0 +1,61 @@
+//---------------------------------------------------------------------------
+#ifndef StatusFrmH
+#define StatusFrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+#include <NMFtp.hpp>
+#include "MainFrm.h"
+//---------------------------------------------------------------------------
+class TStatusForm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TPanel *Panel2;
+ TButton *Button1;
+ TPanel *statusBar;
+ TPanel *Panel3;
+ TPanel *actionBar;
+ void __fastcall FormShow(TObject *Sender);
+ void __fastcall Cleanup(TObject *Sender);
+ void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
+ void __fastcall Button1Click(TObject *Sender);
+private: // User declarations
+ class TFTPThread : public TThread {
+ bool abort;
+ InstallSourceTab *ist;
+ string src;
+ string dest;
+ string buffer;
+ string buffer2;
+ bool dirTransfer;
+ protected:
+ void __fastcall Execute();
+ public:
+ TNMFTP *FTPLink;
+ list<string> fileList;
+ __fastcall TFTPThread(InstallSourceTab *iist, const char *isrc, const char *idest, bool idirTransfer = false, bool CreateSuspended = false);
+ __fastcall TFTPThread::~TFTPThread();
+ void __fastcall FTPLinkPacketRecvd(TObject *Sender);
+ void __fastcall CreateFTPObject(void);
+ void __fastcall UpdateBytes(void);
+ void __fastcall PreConnect(void);
+ void __fastcall PreDownload1(void);
+ void __fastcall PreDownload2(void);
+// void __fastcall Cleanup(void);
+ } *ftpThread;
+public: // User declarations
+ InstallSourceTab *ist;
+ string src;
+ string dest;
+ bool dirTransfer;
+ bool abort;
+ __fastcall TStatusForm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TStatusForm *StatusForm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/InstallMgr/arrow2r.bmp b/apps/windoze/CBuilder4/InstallMgr/arrow2r.bmp
new file mode 100644
index 0000000..8d5713f
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/arrow2r.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/InstallMgr/arrow3u.bmp b/apps/windoze/CBuilder4/InstallMgr/arrow3u.bmp
new file mode 100644
index 0000000..a1c4068
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/arrow3u.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/InstallMgr/back.bmp b/apps/windoze/CBuilder4/InstallMgr/back.bmp
new file mode 100644
index 0000000..966e157
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/back.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/InstallMgr/bookshut.bmp b/apps/windoze/CBuilder4/InstallMgr/bookshut.bmp
new file mode 100644
index 0000000..5389910
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/bookshut.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/InstallMgr/bulblk.bmp b/apps/windoze/CBuilder4/InstallMgr/bulblk.bmp
new file mode 100644
index 0000000..0da70ab
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/bulblk.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/InstallMgr/bulbon.bmp b/apps/windoze/CBuilder4/InstallMgr/bulbon.bmp
new file mode 100644
index 0000000..61c7e5b
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/bulbon.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/InstallMgr/check.bmp b/apps/windoze/CBuilder4/InstallMgr/check.bmp
new file mode 100644
index 0000000..09307a9
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/check.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/InstallMgr/cipherfrm.cpp b/apps/windoze/CBuilder4/InstallMgr/cipherfrm.cpp
new file mode 100644
index 0000000..5b77797
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/cipherfrm.cpp
@@ -0,0 +1,67 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "cipherfrm.h"
+#include <swmgr.h>
+#include <swconfig.h>
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TCipherForm *CipherForm;
+//---------------------------------------------------------------------------
+__fastcall TCipherForm::TCipherForm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TCipherForm::Button2Click(TObject *Sender)
+{
+ SectionMap::iterator section;
+ ConfigEntMap::iterator entry;
+ SWConfig *modconf = new SWConfig(confFile.c_str());
+ string tmpBuf;
+
+ section = modconf->Sections.find(modName);
+ if (section != modconf->Sections.end()) {
+ entry = section->second.find("CipherKey");
+ if (entry != section->second.end()) {
+ entry->second = CipherForm->cipherEdit->Text.c_str();
+ modconf->Save();
+ delete modconf; // close file
+ modconf = 0;
+ SWMgr *mgr = new SWMgr();
+ SWModule *mod = mgr->Modules[modName];
+ mod->SetKey("Ipet 2:12");
+ tmpBuf = mod->StripText();
+ mod->SetKey("gen 1:10");
+ tmpBuf += "\r\n\r\n";
+ tmpBuf += mod->StripText();
+ Memo1->Text = tmpBuf.c_str();
+ delete mgr;
+ }
+ }
+ if (modconf)
+ delete modconf;
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TCipherForm::FormShow(TObject *Sender)
+{
+ string tmpCaption;
+ tmpCaption = "Cipher Key: [";
+ tmpCaption += modName;
+ tmpCaption += "]";
+ Caption = tmpCaption.c_str();
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TCipherForm::FormClose(TObject *Sender,
+ TCloseAction &Action)
+{
+ Memo1->Text = "";
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder4/InstallMgr/cipherfrm.dfm b/apps/windoze/CBuilder4/InstallMgr/cipherfrm.dfm
new file mode 100644
index 0000000..8758bdb
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/cipherfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/InstallMgr/cipherfrm.h b/apps/windoze/CBuilder4/InstallMgr/cipherfrm.h
new file mode 100644
index 0000000..4fcd722
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/cipherfrm.h
@@ -0,0 +1,36 @@
+//---------------------------------------------------------------------------
+#ifndef cipherfrmH
+#define cipherfrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+#include <string>
+//---------------------------------------------------------------------------
+class TCipherForm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TPanel *Panel2;
+ TPanel *Panel3;
+ TLabel *Label1;
+ TLabel *Label2;
+ TEdit *cipherEdit;
+ TMemo *Memo1;
+ TButton *Button1;
+ TButton *Button2;
+ void __fastcall Button2Click(TObject *Sender);
+ void __fastcall FormShow(TObject *Sender);
+ void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
+private: // User declarations
+public: // User declarations
+ std::string confFile;
+ std::string modName;
+ __fastcall TCipherForm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TCipherForm *CipherForm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/InstallMgr/delete.bmp b/apps/windoze/CBuilder4/InstallMgr/delete.bmp
new file mode 100644
index 0000000..d20cbf9
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/delete.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/InstallMgr/filenew.bmp b/apps/windoze/CBuilder4/InstallMgr/filenew.bmp
new file mode 100644
index 0000000..59fb3db
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/filenew.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/InstallMgr/floppy.bmp b/apps/windoze/CBuilder4/InstallMgr/floppy.bmp
new file mode 100644
index 0000000..5fbef0a
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/floppy.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/InstallMgr/globe.bmp b/apps/windoze/CBuilder4/InstallMgr/globe.bmp
new file mode 100644
index 0000000..e4b661d
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/globe.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/InstallMgr/insert.bmp b/apps/windoze/CBuilder4/InstallMgr/insert.bmp
new file mode 100644
index 0000000..7cc35c5
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/insert.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/InstallMgr/query.bmp b/apps/windoze/CBuilder4/InstallMgr/query.bmp
new file mode 100644
index 0000000..36cd506
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/query.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/InstallMgr/sword.bmp b/apps/windoze/CBuilder4/InstallMgr/sword.bmp
new file mode 100644
index 0000000..32c5606
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/sword.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/InstallMgr/trash.bmp b/apps/windoze/CBuilder4/InstallMgr/trash.bmp
new file mode 100644
index 0000000..effbab9
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/trash.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/InstallMgr/undo.bmp b/apps/windoze/CBuilder4/InstallMgr/undo.bmp
new file mode 100644
index 0000000..fc4fff6
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/undo.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/InstallMgr/upgdlk.bmp b/apps/windoze/CBuilder4/InstallMgr/upgdlk.bmp
new file mode 100644
index 0000000..4158452
--- /dev/null
+++ b/apps/windoze/CBuilder4/InstallMgr/upgdlk.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/UninstCust/CoolTools.bpr b/apps/windoze/CBuilder4/UninstCust/CoolTools.bpr
new file mode 100644
index 0000000..2d39a4e
--- /dev/null
+++ b/apps/windoze/CBuilder4/UninstCust/CoolTools.bpr
@@ -0,0 +1,191 @@
+# ---------------------------------------------------------------------------
+!if !$d(BCB)
+BCB = $(MAKEDIR)\..
+!endif
+
+# ---------------------------------------------------------------------------
+# IDE SECTION
+# ---------------------------------------------------------------------------
+# The following section of the project makefile is managed by the BCB IDE.
+# It is recommended to use the IDE to change any of the values in this
+# section.
+# ---------------------------------------------------------------------------
+
+VERSION = BCB.04.04
+# ---------------------------------------------------------------------------
+PROJECT = CoolTools.dll
+OBJFILES = CoolTools.obj
+RESFILES = CoolTools.res
+RESDEPEN = $(RESFILES)
+LIBFILES =
+LIBRARIES = Vcl40.lib
+SPARELIBS = Vcl40.lib
+PACKAGES = Vcl40.bpi Vclx40.bpi vcljpg40.bpi bcbsmp40.bpi Qrpt40.bpi Vcldb40.bpi \
+ ibsmp40.bpi vcldbx40.bpi TeeUI40.bpi teedb40.bpi tee40.bpi nmfast40.bpi \
+ dclocx40.bpi
+DEFFILE =
+# ---------------------------------------------------------------------------
+PATHCPP = .;
+PATHASM = .;
+PATHPAS = .;
+PATHRC = .;
+DEBUGLIBPATH = $(BCB)\lib\debug
+RELEASELIBPATH = $(BCB)\lib\release
+USERDEFINES =
+SYSDEFINES = NO_STRICT
+# ---------------------------------------------------------------------------
+CFLAG1 = -I$(BCB)\include;$(BCB)\include\vcl -WD -O2 -Hc -H=$(BCB)\lib\vcl40.csm -w -Ve \
+ -a8 -k- -vi- -c -b- -w-par -w-inl -Vx -tWM -D$(SYSDEFINES);$(USERDEFINES)
+PFLAGS = -U$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) \
+ -I$(BCB)\include;$(BCB)\include\vcl -$Y- -$L- -$D- -v -JPHNE -M
+RFLAGS = -i$(BCB)\include;$(BCB)\include\vcl
+AFLAGS = /i$(BCB)\include /i$(BCB)\include\vcl /mx /w2 /zn
+LFLAGS = -L$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) -aa -Tpd -x -Gn -Gi
+# ---------------------------------------------------------------------------
+ALLOBJ = c0d32.obj sysinit.obj $(OBJFILES)
+ALLRES = $(RESFILES)
+ALLLIB = $(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib
+# ---------------------------------------------------------------------------
+!ifdef IDEOPTIONS
+
+[Version Info]
+IncludeVerInfo=1
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=CrossWire Software
+FileDescription=Jody's Cool Tools
+FileVersion=1.0.0.0
+InternalName=CoolTools
+LegalCopyright=(c) Copyright 1999 CrossWire Software
+LegalTrademarks=
+OriginalFilename=
+ProductName=CoolTools
+ProductVersion=1.0.0.0
+Comments=Jody's Cool Tools
+Message=Seek Him and you will find Him -John 3:16; Romans 5:5-10; Philippians 2:5-11
+
+[HistoryLists\hlIncludePath]
+Count=1
+Item0=$(BCB)\include;$(BCB)\include\vcl
+
+[HistoryLists\hlLibraryPath]
+Count=1
+Item0=$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+InMemoryExe=0
+ShowInfoMsgs=0
+
+!endif
+
+# ---------------------------------------------------------------------------
+# MAKE SECTION
+# ---------------------------------------------------------------------------
+# This section of the project file is not used by the BCB IDE. It is for
+# the benefit of building from the command-line using the MAKE utility.
+# ---------------------------------------------------------------------------
+
+.autodepend
+# ---------------------------------------------------------------------------
+!if !$d(BCC32)
+BCC32 = bcc32
+!endif
+
+!if !$d(CPP32)
+CPP32 = cpp32
+!endif
+
+!if !$d(DCC32)
+DCC32 = dcc32
+!endif
+
+!if !$d(TASM32)
+TASM32 = tasm32
+!endif
+
+!if !$d(LINKER)
+LINKER = ilink32
+!endif
+
+!if !$d(BRCC32)
+BRCC32 = brcc32
+!endif
+
+# ---------------------------------------------------------------------------
+!if $d(PATHCPP)
+.PATH.CPP = $(PATHCPP)
+.PATH.C = $(PATHCPP)
+!endif
+
+!if $d(PATHPAS)
+.PATH.PAS = $(PATHPAS)
+!endif
+
+!if $d(PATHASM)
+.PATH.ASM = $(PATHASM)
+!endif
+
+!if $d(PATHRC)
+.PATH.RC = $(PATHRC)
+!endif
+# ---------------------------------------------------------------------------
+$(PROJECT): $(OBJFILES) $(RESDEPEN) $(DEFFILE)
+ $(BCB)\BIN\$(LINKER) @&&!
+ $(LFLAGS) +
+ $(ALLOBJ), +
+ $(PROJECT),, +
+ $(ALLLIB), +
+ $(DEFFILE), +
+ $(ALLRES)
+!
+# ---------------------------------------------------------------------------
+.pas.hpp:
+ $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
+
+.pas.obj:
+ $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
+
+.cpp.obj:
+ $(BCB)\BIN\$(BCC32) $(CFLAG1) -n$(@D) {$< }
+
+.c.obj:
+ $(BCB)\BIN\$(BCC32) $(CFLAG1) -n$(@D) {$< }
+
+.c.i:
+ $(BCB)\BIN\$(CPP32) $(CFLAG1) -n. {$< }
+
+.cpp.i:
+ $(BCB)\BIN\$(CPP32) $(CFLAG1) -n. {$< }
+
+.asm.obj:
+ $(BCB)\BIN\$(TASM32) $(AFLAGS) $<, $@
+
+.rc.res:
+ $(BCB)\BIN\$(BRCC32) $(RFLAGS) -fo$@ $<
+# ---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/UninstCust/CoolTools.cpp b/apps/windoze/CBuilder4/UninstCust/CoolTools.cpp
new file mode 100644
index 0000000..451aa35
--- /dev/null
+++ b/apps/windoze/CBuilder4/UninstCust/CoolTools.cpp
@@ -0,0 +1,55 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#include <dos.h>
+#pragma hdrstop
+//---------------------------------------------------------------------------
+// Important note about DLL memory management when your DLL uses the
+// static version of the RunTime Library:
+//
+// If your DLL exports any functions that pass String objects (or structs/
+// classes containing nested Strings) as parameter or function results,
+// you will need to add the library MEMMGR.LIB to both the DLL project and
+// any other projects that use the DLL. You will also need to use MEMMGR.LIB
+// if any other projects which use the DLL will be perfomring new or delete
+// operations on any non-TObject-derived classes which are exported from the
+// DLL. Adding MEMMGR.LIB to your project will change the DLL and its calling
+// EXE's to use the BORLNDMM.DLL as their memory manager. In these cases,
+// the file BORLNDMM.DLL should be deployed along with your DLL.
+//
+// To avoid using BORLNDMM.DLL, pass string information using "char *" or
+// ShortString parameters.
+//
+// If your DLL uses the dynamic version of the RTL, you do not need to
+// explicitly add MEMMGR.LIB as this will be done implicitly for you
+//---------------------------------------------------------------------------
+USERES("CoolTools.res");
+//---------------------------------------------------------------------------
+int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*)
+{
+ return 1;
+}
+//---------------------------------------------------------------------------
+extern "C" {
+
+DWORD APIENTRY __export launchAndWait(LPCSTR cmdLine, LPCSTR workDir) {
+ STARTUPINFO StartupInfo;
+ PROCESS_INFORMATION ProcessInformation;
+ DWORD ExitCode = -1;
+
+ GetStartupInfo(&StartupInfo);
+ if (CreateProcess(NULL, (char *)cmdLine, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, workDir, &StartupInfo, &ProcessInformation)) {
+ do {
+ _sleep(1);
+ GetExitCodeProcess(ProcessInformation.hProcess, &ExitCode);
+ } while (ExitCode == STILL_ACTIVE);
+ }
+ else {
+ LPVOID lpMsgBuf;
+ FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf, 0, NULL);
+ MessageBox(NULL, (const char *)lpMsgBuf, "Error", MB_OK|MB_ICONINFORMATION);
+ LocalFree(lpMsgBuf);
+ }
+ return ExitCode;
+}
+
+} \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/UninstCust/CoolTools.res b/apps/windoze/CBuilder4/UninstCust/CoolTools.res
new file mode 100644
index 0000000..89c703a
--- /dev/null
+++ b/apps/windoze/CBuilder4/UninstCust/CoolTools.res
Binary files differ
diff --git a/apps/windoze/CBuilder4/UninstCust/Project1.bpr b/apps/windoze/CBuilder4/UninstCust/Project1.bpr
new file mode 100644
index 0000000..b66358b
--- /dev/null
+++ b/apps/windoze/CBuilder4/UninstCust/Project1.bpr
@@ -0,0 +1,179 @@
+# ---------------------------------------------------------------------------
+!if !$d(BCB)
+BCB = $(MAKEDIR)\..
+!endif
+
+# ---------------------------------------------------------------------------
+# IDE SECTION
+# ---------------------------------------------------------------------------
+# The following section of the project makefile is managed by the BCB IDE.
+# It is recommended to use the IDE to change any of the values in this
+# section.
+# ---------------------------------------------------------------------------
+
+VERSION = BCB.04.04
+# ---------------------------------------------------------------------------
+PROJECT = Project1.exe
+OBJFILES = Project1.obj Unit1.obj
+RESFILES = Project1.res
+RESDEPEN = $(RESFILES) Unit1.dfm
+LIBFILES =
+LIBRARIES = Vcl40.lib
+SPARELIBS = Vcl40.lib
+PACKAGES = Vcl40.bpi Vclx40.bpi vcljpg40.bpi bcbsmp40.bpi Qrpt40.bpi Vcldb40.bpi \
+ ibsmp40.bpi vcldbx40.bpi TeeUI40.bpi teedb40.bpi tee40.bpi nmfast40.bpi \
+ dclocx40.bpi
+DEFFILE =
+# ---------------------------------------------------------------------------
+PATHCPP = .;
+PATHASM = .;
+PATHPAS = .;
+PATHRC = .;
+DEBUGLIBPATH = $(BCB)\lib\debug
+RELEASELIBPATH = $(BCB)\lib\release
+USERDEFINES =
+SYSDEFINES = NO_STRICT
+# ---------------------------------------------------------------------------
+CFLAG1 = -I$(BCB)\include;$(BCB)\include\vcl -Od -Hc -H=$(BCB)\lib\vcl40.csm -w -Ve -r- \
+ -a8 -k -y -v -vi- -c -b- -w-par -w-inl -Vx -tW -tWM \
+ -D$(SYSDEFINES);$(USERDEFINES)
+PFLAGS = -U$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) \
+ -I$(BCB)\include;$(BCB)\include\vcl -$YD -$W -$O- -v -JPHNE -M
+RFLAGS = -i$(BCB)\include;$(BCB)\include\vcl
+AFLAGS = /i$(BCB)\include /i$(BCB)\include\vcl /mx /w2 /zd
+LFLAGS = -L$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) -aa -Tpe -x -Gn
+# ---------------------------------------------------------------------------
+ALLOBJ = c0w32.obj sysinit.obj $(OBJFILES)
+ALLRES = $(RESFILES)
+ALLLIB = $(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib
+# ---------------------------------------------------------------------------
+!ifdef IDEOPTIONS
+
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+InMemoryExe=0
+ShowInfoMsgs=0
+
+!endif
+
+# ---------------------------------------------------------------------------
+# MAKE SECTION
+# ---------------------------------------------------------------------------
+# This section of the project file is not used by the BCB IDE. It is for
+# the benefit of building from the command-line using the MAKE utility.
+# ---------------------------------------------------------------------------
+
+.autodepend
+# ---------------------------------------------------------------------------
+!if !$d(BCC32)
+BCC32 = bcc32
+!endif
+
+!if !$d(CPP32)
+CPP32 = cpp32
+!endif
+
+!if !$d(DCC32)
+DCC32 = dcc32
+!endif
+
+!if !$d(TASM32)
+TASM32 = tasm32
+!endif
+
+!if !$d(LINKER)
+LINKER = ilink32
+!endif
+
+!if !$d(BRCC32)
+BRCC32 = brcc32
+!endif
+
+# ---------------------------------------------------------------------------
+!if $d(PATHCPP)
+.PATH.CPP = $(PATHCPP)
+.PATH.C = $(PATHCPP)
+!endif
+
+!if $d(PATHPAS)
+.PATH.PAS = $(PATHPAS)
+!endif
+
+!if $d(PATHASM)
+.PATH.ASM = $(PATHASM)
+!endif
+
+!if $d(PATHRC)
+.PATH.RC = $(PATHRC)
+!endif
+# ---------------------------------------------------------------------------
+$(PROJECT): $(OBJFILES) $(RESDEPEN) $(DEFFILE)
+ $(BCB)\BIN\$(LINKER) @&&!
+ $(LFLAGS) +
+ $(ALLOBJ), +
+ $(PROJECT),, +
+ $(ALLLIB), +
+ $(DEFFILE), +
+ $(ALLRES)
+!
+# ---------------------------------------------------------------------------
+.pas.hpp:
+ $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
+
+.pas.obj:
+ $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
+
+.cpp.obj:
+ $(BCB)\BIN\$(BCC32) $(CFLAG1) -n$(@D) {$< }
+
+.c.obj:
+ $(BCB)\BIN\$(BCC32) $(CFLAG1) -n$(@D) {$< }
+
+.c.i:
+ $(BCB)\BIN\$(CPP32) $(CFLAG1) -n. {$< }
+
+.cpp.i:
+ $(BCB)\BIN\$(CPP32) $(CFLAG1) -n. {$< }
+
+.asm.obj:
+ $(BCB)\BIN\$(TASM32) $(AFLAGS) $<, $@
+
+.rc.res:
+ $(BCB)\BIN\$(BRCC32) $(RFLAGS) -fo$@ $<
+# ---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/UninstCust/Project1.cpp b/apps/windoze/CBuilder4/UninstCust/Project1.cpp
new file mode 100644
index 0000000..550e6cf
--- /dev/null
+++ b/apps/windoze/CBuilder4/UninstCust/Project1.cpp
@@ -0,0 +1,21 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+USERES("Project1.res");
+USEFORM("Unit1.cpp", Form1);
+//---------------------------------------------------------------------------
+WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
+{
+ try
+ {
+ Application->Initialize();
+ Application->CreateForm(__classid(TForm1), &Form1);
+ Application->Run();
+ }
+ catch (Exception &exception)
+ {
+ Application->ShowException(&exception);
+ }
+ return 0;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/UninstCust/Project1.res b/apps/windoze/CBuilder4/UninstCust/Project1.res
new file mode 100644
index 0000000..32b522d
--- /dev/null
+++ b/apps/windoze/CBuilder4/UninstCust/Project1.res
Binary files differ
diff --git a/apps/windoze/CBuilder4/UninstCust/ProjectGroup1.bpg b/apps/windoze/CBuilder4/UninstCust/ProjectGroup1.bpg
new file mode 100644
index 0000000..a41533f
--- /dev/null
+++ b/apps/windoze/CBuilder4/UninstCust/ProjectGroup1.bpg
@@ -0,0 +1,26 @@
+#------------------------------------------------------------------------------
+VERSION = BWS.01
+#------------------------------------------------------------------------------
+!ifndef ROOT
+ROOT = $(MAKEDIR)\..
+!endif
+#------------------------------------------------------------------------------
+MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$**
+DCC = $(ROOT)\bin\dcc32.exe $**
+BRCC = $(ROOT)\bin\brcc32.exe $**
+#------------------------------------------------------------------------------
+PROJECTS = UninstCust.dll Project1.exe CoolTools.dll
+#------------------------------------------------------------------------------
+default: $(PROJECTS)
+#------------------------------------------------------------------------------
+
+UninstCust.dll: UninstCust.bpr
+ $(MAKE)
+
+Project1.exe: Project1.bpr
+ $(MAKE)
+
+CoolTools.dll: CoolTools.bpr
+ $(MAKE)
+
+
diff --git a/apps/windoze/CBuilder4/UninstCust/UninstCust.bpr b/apps/windoze/CBuilder4/UninstCust/UninstCust.bpr
new file mode 100644
index 0000000..25f3add
--- /dev/null
+++ b/apps/windoze/CBuilder4/UninstCust/UninstCust.bpr
@@ -0,0 +1,178 @@
+# ---------------------------------------------------------------------------
+!if !$d(BCB)
+BCB = $(MAKEDIR)\..
+!endif
+
+# ---------------------------------------------------------------------------
+# IDE SECTION
+# ---------------------------------------------------------------------------
+# The following section of the project makefile is managed by the BCB IDE.
+# It is recommended to use the IDE to change any of the values in this
+# section.
+# ---------------------------------------------------------------------------
+
+VERSION = BCB.04.04
+# ---------------------------------------------------------------------------
+PROJECT = UninstCust.dll
+OBJFILES = UninstCust.obj
+RESFILES = UninstCust.res
+RESDEPEN = $(RESFILES)
+LIBFILES =
+LIBRARIES = VCL40.lib
+SPARELIBS = VCL40.lib
+PACKAGES = VCL40.bpi VCLX40.bpi VCLJPG40.bpi bcbsmp40.bpi QRPT40.bpi VCLDB40.bpi \
+ ibsmp40.bpi VCLDBX40.bpi TEEUI40.bpi TEEDB40.bpi TEE40.bpi nmfast40.bpi \
+ dclocx40.bpi
+DEFFILE =
+# ---------------------------------------------------------------------------
+PATHCPP = .;
+PATHASM = .;
+PATHPAS = .;
+PATHRC = .;
+DEBUGLIBPATH = $(BCB)\lib\debug
+RELEASELIBPATH = $(BCB)\lib\release
+USERDEFINES =
+SYSDEFINES = NO_STRICT
+# ---------------------------------------------------------------------------
+CFLAG1 = -I$(BCB)\include;$(BCB)\include\vcl -WD -O2 -Hc -H=$(BCB)\lib\vcl40.csm -w -Ve \
+ -a8 -k- -vi- -c -b- -w-par -w-inl -Vx -tWM -D$(SYSDEFINES);$(USERDEFINES)
+PFLAGS = -U$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) \
+ -I$(BCB)\include;$(BCB)\include\vcl -$Y- -$L- -$D- -v -JPHNE -M
+RFLAGS = -i$(BCB)\include;$(BCB)\include\vcl
+AFLAGS = /i$(BCB)\include /i$(BCB)\include\vcl /mx /w2 /zn
+LFLAGS = -L$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) -aa -Tpd -x -Gn -Gi
+# ---------------------------------------------------------------------------
+ALLOBJ = c0d32.obj sysinit.obj $(OBJFILES)
+ALLRES = $(RESFILES)
+ALLLIB = $(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib
+# ---------------------------------------------------------------------------
+!ifdef IDEOPTIONS
+
+[Version Info]
+IncludeVerInfo=1
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=CrossWire Bible Society
+FileDescription=Uninstaller
+FileVersion=1.0.0.0
+InternalName=Uninstaller
+LegalCopyright=(c) Copyright CrossWire Bible Society
+LegalTrademarks=
+OriginalFilename=UninstCust.dll
+ProductName=Uninstaller
+ProductVersion=1.0.0.0
+Comments=Jesus is alone the One Who can and will fill your empty heart if you surrender to Him.
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+InMemoryExe=0
+ShowInfoMsgs=0
+
+!endif
+
+# ---------------------------------------------------------------------------
+# MAKE SECTION
+# ---------------------------------------------------------------------------
+# This section of the project file is not used by the BCB IDE. It is for
+# the benefit of building from the command-line using the MAKE utility.
+# ---------------------------------------------------------------------------
+
+.autodepend
+# ---------------------------------------------------------------------------
+!if !$d(BCC32)
+BCC32 = bcc32
+!endif
+
+!if !$d(CPP32)
+CPP32 = cpp32
+!endif
+
+!if !$d(DCC32)
+DCC32 = dcc32
+!endif
+
+!if !$d(TASM32)
+TASM32 = tasm32
+!endif
+
+!if !$d(LINKER)
+LINKER = ilink32
+!endif
+
+!if !$d(BRCC32)
+BRCC32 = brcc32
+!endif
+
+# ---------------------------------------------------------------------------
+!if $d(PATHCPP)
+.PATH.CPP = $(PATHCPP)
+.PATH.C = $(PATHCPP)
+!endif
+
+!if $d(PATHPAS)
+.PATH.PAS = $(PATHPAS)
+!endif
+
+!if $d(PATHASM)
+.PATH.ASM = $(PATHASM)
+!endif
+
+!if $d(PATHRC)
+.PATH.RC = $(PATHRC)
+!endif
+# ---------------------------------------------------------------------------
+$(PROJECT): $(OBJFILES) $(RESDEPEN) $(DEFFILE)
+ $(BCB)\BIN\$(LINKER) @&&!
+ $(LFLAGS) +
+ $(ALLOBJ), +
+ $(PROJECT),, +
+ $(ALLLIB), +
+ $(DEFFILE), +
+ $(ALLRES)
+!
+# ---------------------------------------------------------------------------
+.pas.hpp:
+ $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
+
+.pas.obj:
+ $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
+
+.cpp.obj:
+ $(BCB)\BIN\$(BCC32) $(CFLAG1) -n$(@D) {$< }
+
+.c.obj:
+ $(BCB)\BIN\$(BCC32) $(CFLAG1) -n$(@D) {$< }
+
+.c.i:
+ $(BCB)\BIN\$(CPP32) $(CFLAG1) -n. {$< }
+
+.cpp.i:
+ $(BCB)\BIN\$(CPP32) $(CFLAG1) -n. {$< }
+
+.asm.obj:
+ $(BCB)\BIN\$(TASM32) $(AFLAGS) $<, $@
+
+.rc.res:
+ $(BCB)\BIN\$(BRCC32) $(RFLAGS) -fo$@ $<
+# ---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/UninstCust/UninstCust.cpp b/apps/windoze/CBuilder4/UninstCust/UninstCust.cpp
new file mode 100644
index 0000000..04203f7
--- /dev/null
+++ b/apps/windoze/CBuilder4/UninstCust/UninstCust.cpp
@@ -0,0 +1,90 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+#include <dos.h>
+#include <stdlib.h>
+//---------------------------------------------------------------------------
+// Important note about DLL memory management when your DLL uses the
+// static version of the RunTime Library:
+//
+// If your DLL exports any functions that pass String objects (or structs/
+// classes containing nested Strings) as parameter or function results,
+// you will need to add the library MEMMGR.LIB to both the DLL project and
+// any other projects that use the DLL. You will also need to use MEMMGR.LIB
+// if any other projects which use the DLL will be perfomring new or delete
+// operations on any non-TObject-derived classes which are exported from the
+// DLL. Adding MEMMGR.LIB to your project will change the DLL and its calling
+// EXE's to use the BORLNDMM.DLL as their memory manager. In these cases,
+// the file BORLNDMM.DLL should be deployed along with your DLL.
+//
+// To avoid using BORLNDMM.DLL, pass string information using "char *" or
+// ShortString parameters.
+//
+// If your DLL uses the dynamic version of the RTL, you do not need to
+// explicitly add MEMMGR.LIB as this will be done implicitly for you
+//---------------------------------------------------------------------------
+USERES("UninstCust.res");
+//---------------------------------------------------------------------------
+int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*)
+{
+ return 1;
+}
+//---------------------------------------------------------------------------
+
+extern "C" {
+
+LONG APIENTRY __export UninstInitialize(HWND x, HINSTANCE y, long z) {
+ DWORD size;
+ char *path;
+ char *app;
+ DWORD type;
+ HKEY hKey;
+ STARTUPINFO StartupInfo;
+ PROCESS_INFORMATION ProcessInformation;
+ DWORD ExitCode;
+
+ if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\sword.exe\\", NULL, KEY_READ, &hKey) == ERROR_SUCCESS) {
+ RegQueryValueEx(hKey, "Path", NULL, &type, NULL, &size);
+ path = (char *) calloc(size+1, 1);
+ app = (char *) calloc(size+40, 1);
+ RegQueryValueEx(hKey, "Path", NULL, &type, path, &size);
+ strcpy(app, path);
+ strcat(app, "\\InstallMgr -uninstall");
+ GetStartupInfo(&StartupInfo);
+ if (CreateProcess(NULL, app, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, path, &StartupInfo, &ProcessInformation)) {
+ do {
+ _sleep(1);
+ GetExitCodeProcess(ProcessInformation.hProcess, &ExitCode);
+ } while (ExitCode == STILL_ACTIVE);
+ free(app);
+ free(path);
+ RegCloseKey(hKey);
+ }
+ else {
+
+ LPVOID lpMsgBuf;
+
+ FormatMessage(
+ FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
+ NULL,
+ GetLastError(),
+ MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
+ (LPTSTR) &lpMsgBuf,
+ 0,
+ NULL
+ );
+
+ // Display the string.
+ MessageBox( NULL, (const char *)lpMsgBuf, "GetLastError", MB_OK|MB_ICONINFORMATION );
+
+ // Free the buffer.
+ LocalFree( lpMsgBuf );
+
+ }
+
+ }
+}
+
+LONG APIENTRY __export UninstUnInitialize(HWND x, HINSTANCE y, long z) {
+}
+}
diff --git a/apps/windoze/CBuilder4/UninstCust/UninstCust.res b/apps/windoze/CBuilder4/UninstCust/UninstCust.res
new file mode 100644
index 0000000..6b49be6
--- /dev/null
+++ b/apps/windoze/CBuilder4/UninstCust/UninstCust.res
Binary files differ
diff --git a/apps/windoze/CBuilder4/UninstCust/Unit1.cpp b/apps/windoze/CBuilder4/UninstCust/Unit1.cpp
new file mode 100644
index 0000000..e17f0b8
--- /dev/null
+++ b/apps/windoze/CBuilder4/UninstCust/Unit1.cpp
@@ -0,0 +1,107 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "Unit1.h"
+#include <dos.h>
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TForm1 *Form1;
+//---------------------------------------------------------------------------
+__fastcall TForm1::TForm1(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::Button1Click(TObject *Sender)
+{
+ DWORD size;
+ char path[1024];
+ char app[1024];
+ DWORD type;
+ HKEY hKey;
+ STARTUPINFO StartupInfo;
+ PROCESS_INFORMATION ProcessInformation;
+
+ if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\sword.exe\\", NULL, KEY_READ, &hKey) == ERROR_SUCCESS) {
+// if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\sword.Exe", NULL, KEY_READ, &hKey) == ERROR_SUCCESS) {
+ RegQueryValueEx(hKey, "Path", NULL, &type, path, &size);
+ strcpy(app, path);
+ strcat(app, "\\InstallMgr");
+//SetCurrentDirectory(path);
+GetStartupInfo(&StartupInfo);
+CreateProcess(
+ NULL, // pointer to name of executable module
+ app, // pointer to command line string
+ NULL, // pointer to process security attributes
+ NULL, // pointer to thread security attributes
+ TRUE, // handle inheritance flag
+ NORMAL_PRIORITY_CLASS, // creation flags
+ NULL, // pointer to new environment block
+ path, // pointer to current directory name
+ &StartupInfo, // pointer to STARTUPINFO
+ &ProcessInformation // pointer to PROCESS_INFORMATION
+ );
+ RegCloseKey(hKey);
+
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::Button2Click(TObject *Sender)
+{
+ DWORD size;
+ char *path;
+ char *app;
+ DWORD type;
+ HKEY hKey;
+ STARTUPINFO StartupInfo;
+ PROCESS_INFORMATION ProcessInformation;
+ DWORD ExitCode;
+
+ if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\sword.exe\\", NULL, KEY_READ, &hKey) == ERROR_SUCCESS) {
+ RegQueryValueEx(hKey, "Path", NULL, &type, NULL, &size);
+ path = (char *) calloc(size+1, 1);
+ app = (char *) calloc(size+40, 1);
+ RegQueryValueEx(hKey, "Path", NULL, &type, path, &size);
+ strcpy(app, path);
+ strcat(app, "\\InstallMgr -uninstall");
+ GetStartupInfo(&StartupInfo);
+ if (CreateProcess(NULL, "app", NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, path, &StartupInfo, &ProcessInformation)) {
+// CreateProcess(NULL, app, NULL, NULL, TRUE, DEBUG_PROCESSNORMAL_PRIORITY_CLASS, NULL, path, &StartupInfo, &ProcessInformation);
+ do {
+ _sleep(1);
+ GetExitCodeProcess(ProcessInformation.hProcess, &ExitCode);
+ } while (ExitCode == STILL_ACTIVE);
+ free(app);
+ free(path);
+ RegCloseKey(hKey);
+ }
+ else {
+
+ LPVOID lpMsgBuf;
+
+ FormatMessage(
+ FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
+ NULL,
+ GetLastError(),
+ MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
+ (LPTSTR) &lpMsgBuf,
+ 0,
+ NULL
+ );
+
+ // Display the string.
+ MessageBox( NULL, (const char *)lpMsgBuf, "GetLastError", MB_OK|MB_ICONINFORMATION );
+
+ // Free the buffer.
+ LocalFree( lpMsgBuf );
+
+ }
+
+ }
+
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/UninstCust/Unit1.dfm b/apps/windoze/CBuilder4/UninstCust/Unit1.dfm
new file mode 100644
index 0000000..7723036
--- /dev/null
+++ b/apps/windoze/CBuilder4/UninstCust/Unit1.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/UninstCust/Unit1.h b/apps/windoze/CBuilder4/UninstCust/Unit1.h
new file mode 100644
index 0000000..37acbda
--- /dev/null
+++ b/apps/windoze/CBuilder4/UninstCust/Unit1.h
@@ -0,0 +1,25 @@
+//---------------------------------------------------------------------------
+#ifndef Unit1H
+#define Unit1H
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+//---------------------------------------------------------------------------
+class TForm1 : public TForm
+{
+__published: // IDE-managed Components
+ TButton *Button1;
+ TEdit *Edit1;
+ TButton *Button2;
+ void __fastcall Button1Click(TObject *Sender);
+ void __fastcall Button2Click(TObject *Sender);
+private: // User declarations
+public: // User declarations
+ __fastcall TForm1(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TForm1 *Form1;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/prototype/AboutBoxfrm.cpp b/apps/windoze/CBuilder4/prototype/AboutBoxfrm.cpp
new file mode 100644
index 0000000..39ca670
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/AboutBoxfrm.cpp
@@ -0,0 +1,85 @@
+//---------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "AboutBoxfrm.h"
+#include "mainfrm.h"
+//---------------------------------------------------------------------
+#pragma resource "*.dfm"
+TAboutBox *AboutBox;
+//---------------------------------------------------------------------
+__fastcall TAboutBox::TAboutBox(TComponent* AOwner)
+ : TForm(AOwner)
+{
+}
+//---------------------------------------------------------------------
+void __fastcall TAboutBox::FormShow(TObject *Sender)
+{
+ int i;
+ static char *modtypes[] = {"Biblical Texts", "Commentaries", "Lexicons / Dictionaries"};
+
+ AnsiString newtext, tmptext;
+ ModMap::iterator it;
+ SectionMap::iterator it2;
+ TMemoryStream *RTFStream = new TMemoryStream();
+
+ newtext = "{\\rtf1\\ansi{\\fonttbl{\\f4\\froman\\fcharset0\\fprq2 Times New Roman;}}{\\colortbl;\\red0\\green0\\blue255;\\red0\\green200\\blue50;}";
+ newtext += "\\pard\\qc\\cf2\\nowidctlpar{\\fs30\\b Installed Modules } \\par \\pard \\nowidctlpar \\cf0 ";
+
+ for (i = 0; i < 3; i++) {
+ newtext += "\\par {\\fs28\\b ";
+ newtext += modtypes[i];
+ newtext += " }\\par \\par ";
+ for (it = Form1->mainmgr->Modules.begin(); it != Form1->mainmgr->Modules.end(); it++) {
+ if (!strcmp((*it).second->Type(), modtypes[i])) {
+ it2 = Form1->mainmgr->config->Sections.find((*it).second->Name());
+ if (it2 != Form1->mainmgr->config->Sections.end()) {
+ newtext = newtext + "{\\fs24\\cf1\\b " + (*it).second->Name() + " }\t";
+ newtext = newtext + "{\\fs24\\i " + (*it).second->Description() + " } \\par ";
+ newtext = newtext + "{\\fs20\\cf0 " + (*it2).second["About"].c_str() + " }\\par \\par";
+ }
+ }
+ }
+ }
+ newtext += "{\\fs24 \\par }}";
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(newtext.c_str(), newtext.Length());
+ RTFStream->Position = 0;
+ ModulesAbout->Lines->LoadFromStream(RTFStream);
+
+ newtext = "{\\rtf1\\ansi{\\fonttbl{\\f4\\froman\\fcharset0\\fprq2 Times New Roman;}}{\\colortbl;\\red0\\green0\\blue255;\\red0\\green200\\blue50;}";
+ newtext += "\\fs20 Thanx to God for His GREAT MERCY and LOVE: Never did anyone have so much, give it up so completely, to humble Himself and die such a death, all for such an ENEMY as me. -Philippians 2:6-8; Romans 5:6-10 \\par\\par ";
+ newtext += "For the latest updates and info, visit us on the net at: \\par ";
+ newtext += "http://www.crosswire.org \\par\\par ";
+ newtext += "Send us feedback, bug reports, or patches/additions: \\par ";
+ newtext += "sword-feedback@crosswire.org \\par ";
+ newtext += "sword-bugs@crosswire.org \\par ";
+ newtext += "sword-patches@crosswire.org (please include unified diffs if possible (diff -u)) \\par\\par ";
+ newtext += "To be on our mailing list: \\par ";
+ newtext += "sword-list-info@crosswire.org \\par\\par ";
+ newtext += "This software is provided free for the study of God and His Word. You DO NOT NEED TO license or pay for this software. Please: copy it freely and distribute it to athiests in Russia :), post it on your favorite FTP site, write your own modules and features for it, include it on your lastest freeware CDROM, incorporate all the cool utility classes into a product of your own, write a tract module for the program and sneak it onto all of your co-workers' computers and blame it on a virus, make fun of your pastor for spending $400 dollars on a similar package, give it to your pastor who can't figure out how to use his $400 dollar package :) \\par\\par ";
+ newtext += "OK, if you still feel the need, you can help our organization out at: \\par\\par ";
+ newtext += "CrossWire Software & Bible Society \\par ";
+ newtext += "P. O. Box 2528 \\par ";
+ newtext += "Tempe, AZ 85280-2528 \\par\\par ";
+ newtext += "... but I must warn you, your contributions will probably just go toward paying my way through college, or to give me a little more time to spend on the project :) \\par\\par ";
+ newtext += "\tMay the peace of GOD consume your heart, \\par ";
+ newtext += "\t\tThe SWORD Project Development Team \\par ";
+ newtext += "_________________________________________ \\par ";
+ newtext += "Thanks be to God for all the wonderful people who have contributed in so many ways to make this project possible. These are just a few (I could not possibly name them all) who have directly contributed an abundance of their time and talents: \\par\\par ";
+ newtext += "All the people at The Outpost in Scottsdale for testing and suggestions; The Bible Foundation: Jerry Kingery, Jerry Hastings; Geoffrey W. Hastings; William Dicks; Everyone on b-greek@virginia.edu; Michael Paul Johnson; Roland Nygren; Bill Kincaid; Mark Fuller; Larry Pierce; Franklin Bratcher; Gregory Hall; Luis Cortes\\par \\par ";
+ newtext += "{\\i And the list goes on...} \\par \\par ";
+ newtext += "{\\fs24 \\par }}";
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(newtext.c_str(), newtext.Length());
+ RTFStream->Position = 0;
+ CreditAbout->Lines->LoadFromStream(RTFStream);
+ delete RTFStream;
+
+
+}
+//---------------------------------------------------------------------------
+
+
+
+
diff --git a/apps/windoze/CBuilder4/prototype/AboutBoxfrm.dfm b/apps/windoze/CBuilder4/prototype/AboutBoxfrm.dfm
new file mode 100644
index 0000000..4911690
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/AboutBoxfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/prototype/AboutBoxfrm.h b/apps/windoze/CBuilder4/prototype/AboutBoxfrm.h
new file mode 100644
index 0000000..77da4f8
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/AboutBoxfrm.h
@@ -0,0 +1,36 @@
+//----------------------------------------------------------------------------
+#ifndef AboutBoxfrmH
+#define AboutBoxfrmH
+//----------------------------------------------------------------------------
+#include <vcl\System.hpp>
+#include <vcl\Windows.hpp>
+#include <vcl\SysUtils.hpp>
+#include <vcl\Classes.hpp>
+#include <vcl\Graphics.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Buttons.hpp>
+#include <vcl\ExtCtrls.hpp>
+#include <vcl\ComCtrls.hpp>
+//----------------------------------------------------------------------------
+class TAboutBox : public TForm
+{
+__published:
+ TPanel *Panel1;
+ TImage *ProgramIcon;
+ TLabel *ProductName;
+ TLabel *Version;
+ TLabel *Copyright;
+ TButton *OKButton;
+ TRichEdit *CreditAbout;
+ TRichEdit *ModulesAbout;
+ void __fastcall FormShow(TObject *Sender);
+private:
+public:
+ virtual __fastcall TAboutBox(TComponent* AOwner);
+};
+//----------------------------------------------------------------------------
+extern TAboutBox *AboutBox;
+//----------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/prototype/AppBar.cpp b/apps/windoze/CBuilder4/prototype/AppBar.cpp
new file mode 100644
index 0000000..081364f
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/AppBar.cpp
@@ -0,0 +1,108 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "AppBar.h"
+#include "DockCanvas.h"
+#include "ModTabPanel.h"
+#include "biblecsmgr.h"
+#include "BookMarkPanel.h"
+#include "DeskTopNameForm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma link "MenuBar"
+#pragma resource "*.dfm"
+TAppBarFrm *AppBarFrm;
+//---------------------------------------------------------------------------
+__fastcall TAppBarFrm::TAppBarFrm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TAppBarFrm::FormCreate(TObject *Sender)
+{
+ ImageList1->Add(BackBtnImage->Picture->Bitmap, NULL);
+ ImageList1->Add(SearchBtnImage->Picture->Bitmap, NULL);
+ mainmgr = new BibleCSMGR(ModInstFrm);
+ activeDesktop = 0;
+}
+//---------------------------------------------------------------------------
+void __fastcall TAppBarFrm::SpeedButton2Click(TObject *Sender)
+{
+ if (activeDesktop) {
+ TModTabPanel *textTabs = new TModTabPanel(activeDesktop, mainmgr, "Biblical Texts");
+ textTabs->ManualDock(activeDesktop, NULL, alLeft);
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TAppBarFrm::SpeedButton5Click(TObject *Sender)
+{
+ if (activeDesktop) {
+ TBookMarkPanel *bookmarks = new TBookMarkPanel(activeDesktop);
+ bookmarks->ManualDock(activeDesktop, NULL, alLeft);
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TAppBarFrm::SpeedButton3Click(TObject *Sender)
+{
+ if (activeDesktop) {
+ TModTabPanel *textTabs = new TModTabPanel(activeDesktop, mainmgr, "Commentaries");
+ textTabs->ManualDock(activeDesktop, NULL, alLeft);
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TAppBarFrm::SpeedButton4Click(TObject *Sender)
+{
+ if (activeDesktop) {
+ TModTabPanel *textTabs = new TModTabPanel(activeDesktop, mainmgr, "Lexicons / Dictionaries");
+ textTabs->ManualDock(activeDesktop, NULL, alLeft);
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TAppBarFrm::TabControl1Change(TObject *Sender)
+{
+ int index = TabControl1->TabIndex;
+ if (index > -1) {
+ activeDesktop = ((TForm *)(TabControl1->Tabs->Objects[index]));
+ activeDesktop->Show();
+ }
+ else activeDesktop = 0;
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TAppBarFrm::SpeedButton1Click(TObject *Sender)
+{
+ DeskTopNameFrm->ShowModal();
+ activeDesktop = new TDockCanvasFrm(this);
+ activeDesktop->OnClose = FormClose;
+ activeDesktop->OnActivate = FormActivate;
+ activeDesktop->Caption = DeskTopNameFrm->desktopName->Text;
+ TabControl1->Tabs->AddObject(activeDesktop->Caption, activeDesktop);
+ if (activeDesktop->Top < (this->Top + this->Height))
+ activeDesktop->Top = this->Top + this->Height + 1;
+ activeDesktop->Show();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TAppBarFrm::FormClose(TObject *Sender,
+ TCloseAction &Action)
+{
+ int index = TabControl1->Tabs->IndexOfObject(Sender);
+ TabControl1->Tabs->Delete(index);
+ TabControl1->TabIndex = 0;
+ TabControl1Change(Sender);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TAppBarFrm::FormActivate(TObject *Sender)
+{
+ int index = TabControl1->Tabs->IndexOfObject(Sender);
+ TabControl1->TabIndex = index;
+ TabControl1Change(Sender);
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder4/prototype/AppBar.dfm b/apps/windoze/CBuilder4/prototype/AppBar.dfm
new file mode 100644
index 0000000..de0ee59
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/AppBar.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/prototype/AppBar.h b/apps/windoze/CBuilder4/prototype/AppBar.h
new file mode 100644
index 0000000..d3a9072
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/AppBar.h
@@ -0,0 +1,84 @@
+//---------------------------------------------------------------------------
+#ifndef AppBarH
+#define AppBarH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <Buttons.hpp>
+#include <ComCtrls.hpp>
+#include <ExtCtrls.hpp>
+#include <Graphics.hpp>
+#include <ToolWin.hpp>
+#include <Menus.hpp>
+#include <MenuBar.hpp>
+#include <ImgList.hpp>
+#include <DockCanvas.h>
+class SWMgr;
+//---------------------------------------------------------------------------
+class TAppBarFrm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TPanel *Panel2;
+ TTabControl *TabControl1;
+ TCoolBar *CoolBar1;
+ TImage *BackBtnImage;
+ TImage *SearchBtnImage;
+ TToolBar *ToolBar2;
+ TToolButton *ToolButton3;
+ TToolButton *ToolButton4;
+ TPanel *Panel3;
+ TSpeedButton *btnLookup;
+ TComboBox *cbBook;
+ TEdit *CHBox;
+ TUpDown *UpDown1;
+ TEdit *VSBox;
+ TUpDown *UpDown2;
+ TEdit *freeHandLookup;
+ TToolBar *ToolBar1;
+ TSpeedButton *Bookmarkbtn;
+ TPanel *pnlSpeed;
+ TCoolBar *CoolBar2;
+ TMainMenu *MainMenu2;
+ TMenuItem *File1;
+ TMenuItem *Options1;
+ TMenuItem *SaveLayout1;
+ TMenuItem *N1;
+ TMenuItem *Exit1;
+ TMenuItem *Edit2;
+ TMenuItem *Copy3;
+ TMenuItem *Search3;
+ TMenuItem *NewSearchWindow1;
+ TMenuItem *Help4;
+ TMenuItem *About1;
+ TMenuBar *MenuBar1;
+ TImageList *ImageList1;
+ TImage *Image2;
+ TImage *Image1;
+ TPanel *Panel4;
+ TSpeedButton *SpeedButton1;
+ TSpeedButton *SpeedButton2;
+ TSpeedButton *SpeedButton3;
+ TSpeedButton *SpeedButton4;
+ TSpeedButton *SpeedButton5;
+ void __fastcall FormCreate(TObject *Sender);
+ void __fastcall SpeedButton2Click(TObject *Sender);
+ void __fastcall SpeedButton5Click(TObject *Sender);
+ void __fastcall SpeedButton3Click(TObject *Sender);
+ void __fastcall SpeedButton4Click(TObject *Sender);
+ void __fastcall TabControl1Change(TObject *Sender);
+ void __fastcall SpeedButton1Click(TObject *Sender);
+ void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
+ void __fastcall FormActivate(TObject *Sender);
+private: // User declarations
+public: // User declarations
+ __fastcall TAppBarFrm(TComponent* Owner);
+ SWMgr *mainmgr;
+ TForm *activeDesktop;
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TAppBarFrm *AppBarFrm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/prototype/Bitmap1.bmp b/apps/windoze/CBuilder4/prototype/Bitmap1.bmp
new file mode 100644
index 0000000..cab8e28
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/Bitmap1.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/prototype/BookMarkPanel.cpp b/apps/windoze/CBuilder4/prototype/BookMarkPanel.cpp
new file mode 100644
index 0000000..2974d44
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/BookMarkPanel.cpp
@@ -0,0 +1,344 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "BookMarkPanel.h"
+#pragma package(smart_init)
+#include "newbmfilefrm.h"
+//#include <dir.h>
+#include <io.h>
+#include <dirent.h>
+#include <swconfig.h>
+//---------------------------------------------------------------------------
+// ValidCtrCheck is used to assure that the components created do not have
+// any pure virtual functions.
+//
+
+static inline void ValidCtrCheck(TBookMarkPanel *)
+{
+ new TBookMarkPanel(NULL);
+}
+//---------------------------------------------------------------------------
+__fastcall TBookMarkPanel::TBookMarkPanel(TComponent* Owner)
+ : TPanel(Owner)
+{
+ BMPopup = new TPopupMenu(this);
+ TMenuItem * newitem;
+ newitem = new TMenuItem(BMPopup);
+ newitem->Caption = "&Add Child";
+ newitem->OnClick = AddChild1Click;
+ BMPopup->Items->Add(newitem);
+ newitem = new TMenuItem(BMPopup);
+ newitem->Caption = "&Delete";
+ newitem->OnClick = Delete1Click;
+ BMPopup->Items->Add(newitem);
+ newitem = new TMenuItem(BMPopup);
+ newitem->Caption = "&Rename";
+ newitem->OnClick = Rename1Click;
+ BMPopup->Items->Add(newitem);
+ newitem = new TMenuItem(BMPopup);
+ newitem->Caption = "-";
+ BMPopup->Items->Add(newitem);
+ newitem = new TMenuItem(BMPopup);
+ newitem->Caption = "&New Bookmark File";
+ newitem->OnClick = NewBookmarkFile1Click;
+ BMPopup->Items->Add(newitem);
+}
+
+
+__fastcall TBookMarkPanel::~TBookMarkPanel()
+{
+ list <String *>::iterator it;
+
+ SaveBookmarks();
+
+ for (it = bmfiles.begin(); it != bmfiles.end(); it++)
+ delete *it;
+}
+
+
+void __fastcall TBookMarkPanel::CreateWnd() {
+
+ TPanel::CreateWnd();
+
+ SWConfig *bookmarks;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ TTreeNode *node;
+
+ DIR *dir;
+ struct dirent *ent;
+ string conffile;
+ bmdir = "";
+ SWConfig optionsconf("./options.conf");
+
+ bmtree->Items->Clear();
+
+ if ((sit = optionsconf.Sections.find("Bookmarks")) != optionsconf.Sections.end())
+ bmdir = ((eit = (*sit).second.find("Directory")) != (*sit).second.end()) ? (*eit).second : (string)"";
+
+// Add Personal Bookmarks first, or if they don't exist, ADD A BLANK BRANCH first in the tree
+// --------------------------------------------------------------------------
+
+ if (bmdir == "")
+ bmdir = "./bookmarks/";
+
+ if (access(bmdir.c_str(), 0)) { // directory does not exist
+ _mkdir(bmdir.c_str());
+ }
+
+ conffile = bmdir + "personal.conf";
+ bookmarks = new SWConfig(conffile.c_str());
+ if ((sit = bookmarks->Sections.find("ROOT")) != bookmarks->Sections.end()) {
+ if ((eit = (*sit).second.begin()) != (*sit).second.end()) {
+ node = bmtree->Items->AddObject(bmtree->Selected, (*eit).second.c_str(), *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ AddSection(bookmarks, bmtree, node, (*eit).first.c_str());
+ }
+ }
+ else bmtree->Items->AddObject(bmtree->Selected, "Personal Bookmarks", *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ delete bookmarks;
+// --------------------------------------------------------------------------
+
+// Add all other bookmark files ---------------------------------------------
+ if (dir = opendir(bmdir.c_str())) {
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, "personal.conf")) && (strcmp(ent->d_name, "."))&& (strcmp(ent->d_name, ".."))) {
+ conffile = bmdir;
+ conffile += ent->d_name;
+ bookmarks = new SWConfig(conffile.c_str());
+ if ((sit = bookmarks->Sections.find("ROOT")) != bookmarks->Sections.end()) {
+ if ((eit = (*sit).second.begin()) != (*sit).second.end()) { // Currently supports only ONE topsection per file because on save, each topsection designates which file to rewrite
+ node = bmtree->Items->AddObject(bmtree->Selected, (*eit).second.c_str(), *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ AddSection(bookmarks, bmtree, node, (*eit).first.c_str());
+ }
+ }
+ delete bookmarks;
+ }
+ }
+ closedir(dir);
+ }
+/*
+ SWConfig *bookmarks;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ TTreeNode *node;
+
+ DIR *dir;
+ struct dirent *ent;
+ string conffile;
+ bmdir = "";
+ SWConfig optionsconf("./options.conf");
+
+ this->DragMode = dmAutomatic;
+ this->DragKind = dkDock;
+ this->UseDockManager = true;
+
+ bmtree = new TTreeView(this);
+ bmtree->Parent = this;
+ bmtree->Align = alClient;
+ bmtree->DragMode = dmAutomatic;
+ bmtree->Indent = 19;
+ bmtree->PopupMenu = BMPopup;
+ bmtree->TabOrder = 0;
+ bmtree->OnDblClick = bmtreeDblClick;
+ bmtree->OnDragDrop = bmtreeDragDrop;
+ bmtree->OnDragOver = bmtreeDragOver;
+
+
+
+ bmtree->Items->Clear();
+
+ if ((sit = optionsconf.Sections.find("Bookmarks")) != optionsconf.Sections.end())
+ bmdir = (*sit).second["Directory"];
+
+// Add Personal Bookmarks first, or if they don't exist, ADD A BLANK BRANCH first in the tree
+// --------------------------------------------------------------------------
+
+ if (bmdir == "")
+ bmdir = "./bookmarks/";
+
+ if (access(bmdir.c_str(), 0)) { // directory does not exist
+ _mkdir(bmdir.c_str());
+ }
+
+ conffile = bmdir + "personal.conf";
+ bookmarks = new SWConfig(conffile);
+ if ((sit = bookmarks->Sections.find("ROOT")) != bookmarks->Sections.end()) {
+ if ((eit = (*sit).second.begin()) != (*sit).second.end()) {
+ node = bmtree->Items->AddObject(bmtree->Selected, (*eit).second.c_str(), *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ AddSection(bookmarks, bmtree, node, (*eit).first.c_str());
+ }
+ }
+ else bmtree->Items->AddObject(bmtree->Selected, "Personal Bookmarks", *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ delete bookmarks;
+// --------------------------------------------------------------------------
+
+// Add all other bookmark files ---------------------------------------------
+ if (dir = opendir(bmdir.c_str())) {
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, "personal.conf")) && (strcmp(ent->d_name, "."))&& (strcmp(ent->d_name, ".."))) {
+ conffile = bmdir;
+ conffile += ent->d_name;
+ bookmarks = new SWConfig(conffile);
+ if ((sit = bookmarks->Sections.find("ROOT")) != bookmarks->Sections.end()) {
+ if ((eit = (*sit).second.begin()) != (*sit).second.end()) { // Currently supports only ONE topsection per file because on save, each topsection designates which file to rewrite
+ node = bmtree->Items->AddObject(bmtree->Selected, (*eit).second.c_str(), *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ AddSection(bookmarks, bmtree, node, (*eit).first.c_str());
+ }
+ }
+ delete bookmarks;
+ }
+ }
+ closedir(dir);
+ }
+*/
+}
+
+
+void TBookMarkPanel::AddSection(SWConfig *config, TTreeView *tree, TTreeNode *parent, String section)
+{
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ TTreeNode *node;
+
+ if ((sit = config->Sections.find(section.c_str())) != config->Sections.end()) {
+ for (eit = (*sit).second.begin(); eit != (*sit).second.end(); eit++) {
+ node = tree->Items->AddChild(parent, (*eit).second.c_str());
+ AddSection(config, tree, node, (*eit).first.c_str());
+ }
+ }
+}
+
+
+void __fastcall TBookMarkPanel::bmtreeDragDrop(TObject *Sender, TObject *Source,
+ int X, int Y)
+{
+ bmtree->Selected->MoveTo(bmtree->DropTarget, naAddChildFirst);
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookMarkPanel::bmtreeDragOver(TObject *Sender, TObject *Source,
+ int X, int Y, TDragState State, bool &Accept)
+{
+ Accept = false;
+
+ if (String(Source->ClassName()) == "TTreeView") {
+ if (Source == bmtree) {
+ if (bmtree->Selected->Data) {
+ if (strcmp((*(String*)(bmtree->Selected->Data)).c_str(),(bmdir + "personal.conf").c_str())) {
+ Accept = true;
+ }
+ }
+ else Accept = true;
+ }
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookMarkPanel::bmtreeDblClick(TObject *Sender)
+{
+ if (!bmtree->Selected->getFirstChild()) {
+// Form1->DefaultVSKey = bmtree->Selected->Text.c_str();
+// Form1->TextKeyChanged();
+ }
+
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookMarkPanel::AddChild1Click(TObject *Sender)
+{
+ bmtree->Selected->Expand(false);
+ bmtree->Items->AddChildFirst(bmtree->Selected, "New Topic")->EditText();
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookMarkPanel::Delete1Click(TObject *Sender)
+{
+ if (bmtree->Selected->Data) {
+ if (strcmp((*(String*)(bmtree->Selected->Data)).c_str(),(bmdir + "personal.conf").c_str())) {
+ bmtree->Selected->Delete();
+ }
+ }
+ else bmtree->Selected->Delete();
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookMarkPanel::Rename1Click(TObject *Sender)
+{
+ bmtree->Selected->EditText();
+}
+//---------------------------------------------------------------------------
+
+void TBookMarkPanel::SaveBookmarks()
+{
+ TTreeNode *tree = 0;
+ SWConfig *bmconf;
+ ConfigEntMap emap;
+ SectionMap::iterator sit;
+ char buf[15];
+ bool personal, other;
+ list <String *>::iterator it;
+ string persfile;
+ SWConfig optionsconf("./options.conf");
+
+ if (bmtree->Items->Count)
+ tree = bmtree->Items->Item[0];
+
+ if ((sit = optionsconf.Sections.find("Bookmarks")) != optionsconf.Sections.end()) {
+ personal = (atoi((*(*sit).second.find("AutoSavePersonal")).second.c_str())) ? true:false;
+ other = (atoi((*(*sit).second.find("AutoSaveOther")).second.c_str())) ? true:false;
+ }
+
+ persfile = bmdir + "personal.conf";
+ for (it = bmfiles.begin(); it != bmfiles.end(); it++) { // delete all bookmark files before saving in case a top level was deleted
+ if (((!strcmp((*it)->c_str(), persfile.c_str())) && personal) || ((strcmp((*it)->c_str(), persfile.c_str())) && other))
+ unlink((*it)->c_str());
+ }
+
+ for (;tree;tree = tree->getNextSibling()) {
+ if (((*((String *)tree->Data) == persfile.c_str()) && personal) || ((*((String *)tree->Data) != persfile.c_str()) && other)) {
+ bmconf = new SWConfig(((String *)tree->Data)->c_str());
+ emap = bmconf->Sections["ROOT"];
+ sprintf(buf, "branch%d", tree->AbsoluteIndex);
+ emap.erase(buf); emap.insert(ConfigEntMap::value_type(buf, tree->Text.c_str()));
+ AddSectionToConf(bmconf, buf, tree);
+ bmconf->Sections["ROOT"] = emap;
+ bmconf->Save();
+ delete bmconf;
+ }
+ }
+}
+
+
+void TBookMarkPanel::AddSectionToConf(SWConfig *config, String section, TTreeNode *tree) {
+ ConfigEntMap sit;
+ char buf[15];
+
+ if (tree = tree->getFirstChild()) {
+ sit = config->Sections[section.c_str()];
+ for (; tree; tree = tree->getNextSibling()) {
+ sprintf(buf, "branch%d", tree->AbsoluteIndex);
+ sit.erase(buf); sit.insert(ConfigEntMap::value_type(buf, tree->Text.c_str()));
+ AddSectionToConf(config, buf, tree);
+ }
+ config->Sections[section.c_str()] = sit;
+ }
+}
+
+void __fastcall TBookMarkPanel::NewBookmarkFile1Click(TObject *Sender)
+{
+ if (NewBMfrm->ShowModal() == mrOk) {
+ bmtree->Items->AddObject(bmtree->Items->Item[0], NewBMfrm->bmtitle->Text, *bmfiles.insert(bmfiles.begin(), new String(String(bmdir.c_str()) + NewBMfrm->bmfile->Text + String(".conf"))));
+ }
+}
+
+
+
+//---------------------------------------------------------------------------
+namespace Bookmarkpanel
+{
+ void __fastcall PACKAGE Register()
+ {
+ TComponentClass classes[1] = {__classid(TBookMarkPanel)};
+ RegisterComponents("Samples", classes, 0);
+ }
+}
+//---------------------------------------------------------------------------
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/prototype/BookMarkPanel.h b/apps/windoze/CBuilder4/prototype/BookMarkPanel.h
new file mode 100644
index 0000000..c998b76
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/BookMarkPanel.h
@@ -0,0 +1,39 @@
+//---------------------------------------------------------------------------
+#ifndef BookMarkPanelH
+#define BookMarkPanelH
+//---------------------------------------------------------------------------
+#include <SysUtils.hpp>
+#include <Controls.hpp>
+#include <Classes.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+#include <swconfig.h>
+#include <list>
+//---------------------------------------------------------------------------
+class PACKAGE TBookMarkPanel : public TPanel
+{
+private:
+ void AddSection(SWConfig *config, TTreeView *tree, TTreeNode *parent, String section);
+ list <String *> bmfiles; // so we can delete each display we create
+protected:
+public:
+ __fastcall TBookMarkPanel(TComponent* Owner);
+ virtual __fastcall ~TBookMarkPanel();
+ virtual void __fastcall CreateWnd();
+ string bmdir;
+ void SaveBookmarks();
+ void AddSectionToConf(SWConfig *config, String section, TTreeNode *tree);
+__published:
+ TTreeView *bmtree;
+ TPopupMenu *BMPopup;
+ void __fastcall bmtreeDragDrop(TObject *Sender, TObject *Source, int X, int Y);
+ void __fastcall bmtreeDragOver(TObject *Sender, TObject *Source, int X, int Y,
+ TDragState State, bool &Accept);
+ void __fastcall bmtreeDblClick(TObject *Sender);
+ void __fastcall AddChild1Click(TObject *Sender);
+ void __fastcall Delete1Click(TObject *Sender);
+ void __fastcall Rename1Click(TObject *Sender);
+ void __fastcall NewBookmarkFile1Click(TObject *Sender);
+};
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/prototype/CommentPanel.cpp b/apps/windoze/CBuilder4/prototype/CommentPanel.cpp
new file mode 100644
index 0000000..dbf8adf
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/CommentPanel.cpp
@@ -0,0 +1,222 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#include <vcl/clipbrd.hpp>
+#pragma hdrstop
+
+#include "CommentPanel.h"
+#pragma package(smart_init)
+#include "swdisprtfchap.h"
+#include <swconfig.h>
+#include <swmodule.h>
+#include "Greek2Greek.h"
+#include <utilfuns.h>
+#include <swmgr.h>
+#include <shellapi.h>
+
+class RTFDisp : public SWDisplay {
+ SWDispRTF *edit;
+public:
+ RTFDisp(SWDispRTF *iedit) { edit = iedit; }
+ RTFDisp() {}
+ char Display(SWModule &imodule) {
+ edit->Display(imodule);
+ }
+};
+
+class DispExternal : public SWDisplay {
+public:
+ DispExternal() {}
+ char Display(SWModule &imodule) {
+ SHELLEXECUTEINFO info;
+ info.cbSize = sizeof(SHELLEXECUTEINFO);
+ info.fMask = SEE_MASK_NOCLOSEPROCESS; //SEE_MASK_CLASSNAME;
+ info.hwnd = GetFocus();
+ info.lpVerb = "open";
+ info.lpFile = (char *)imodule;
+ info.lpParameters = NULL;
+ info.lpDirectory = NULL;
+ info.nShow = 0;
+// info.lpClass = ".html";
+ ShellExecuteEx(&info);
+// ShellExecute(edit->Handle, "open", (char *)imodule, NULL, NULL, SW_SHOWNORMAL);
+ }
+};
+
+//---------------------------------------------------------------------------
+// ValidCtrCheck is used to assure that the components created do not have
+// any pure virtual functions.
+//
+
+static inline void ValidCtrCheck(TCommentPanel *)
+{
+ new TCommentPanel(NULL);
+}
+//---------------------------------------------------------------------------
+__fastcall TCommentPanel::TCommentPanel(TComponent* Owner, SWModule *mod, SWMgr *imgr)
+ : TPanel(Owner)
+{
+ module = mod;
+ mgr = imgr;
+ this->font = 0;
+ stdstr(&(this->font), font);
+ menu = new TPopupMenu(this);
+ menu->OnPopup = PopupMenuPopup;
+
+ TMenuItem * newitem;
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "&Copy";
+ newitem->Hint = "Copy text to clipboard";
+ newitem->Default = false;
+ newitem->OnClick = Copy1Click;
+ menu->Items->Add(newitem);
+ if (!strcmp(mod->Name(), "N27U4")) {
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "Copy as &B-Greek Transliteration";
+ newitem->Hint = "Copy text to clipboard as B-Greek Transliteration";
+ newitem->Default = false;
+ newitem->OnClick = CopyasBGreekTransliteration1Click;
+ menu->Items->Add(newitem);
+ }
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "Dictionary Lookup";
+ newitem->Hint = "Send text to dictionary key for lookup";
+ newitem->Default = false;
+ newitem->OnClick = DictionaryLookup1Click;
+ menu->Items->Add(newitem);
+}
+
+
+void __fastcall TCommentPanel::CreateWnd() {
+ TPanel::CreateWnd();
+
+ TWinControl *newrtf;
+
+ if (mgr->config->Sections[module->Name()]["ModDrv"] == "HREFCom") {
+// if (mainmgr->config->Sections[mod->Name()]["External"] == "1") {
+ newrtf = new TPanel(this);
+ ((TPanel *)newrtf)->Caption = "Syncronizing to External Viewer";
+ display = new DispExternal();
+ module->Disp(display);
+/*
+ }
+ else {
+ // newrtf = new THTML(this->Handle);
+ // newrtf = new SWDispRTF(this);
+ newrtf = HTML1;
+ newrtf->Visible = true;
+ mod->Disp(*displays.insert(displays.begin(), new HREFDisp((THTML *)newrtf)));
+ // mod->Disp(*displays.insert(displays.begin(), new RTFDisp((SWDispRTF *)newrtf)));
+ }
+*/
+ }
+ else {
+ newrtf = new SWDispRTF(this);
+ display = new RTFDisp((SWDispRTF *)newrtf);
+ module->Disp(display);
+ ((SWDispRTF *)newrtf)->ScrollBars = ssVertical;
+ ((SWDispRTF *)newrtf)->ReadOnly = true;
+ if (mgr->config->Sections[module->Name()]["ModDrv"] == "RawFiles") {
+// ((SWDispRTF *)newrtf)->PopupMenu = PopupMenu3;
+ ((SWDispRTF *)newrtf)->ExpandNewLine = false;
+ }
+// else ((SWDispRTF *)newrtf)->PopupMenu = PopupMenu2;
+ ((SWDispRTF *)newrtf)->OnMouseDown = RTFMouseDown;
+ }
+
+ newrtf->Parent = this;
+ newrtf->Align = alClient;
+
+// mod->SetKey(DefaultVSKey);
+// return 0;
+
+
+}
+__fastcall TCommentPanel::~TCommentPanel() {
+ delete display;
+ if (font)
+ delete font;
+}
+//---------------------------------------------------------------------------
+namespace Commentpanel
+{
+ void __fastcall PACKAGE Register()
+ {
+ TComponentClass classes[1] = {__classid(TCommentPanel)};
+ RegisterComponents("Samples", classes, 0);
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TCommentPanel::PopupMenuPopup(TObject *Sender)
+{
+}
+void TCommentPanel::BuildRTFHeader(char *buf, char *font, int max)
+{
+ char buf1[1024], buf2[1024];
+ SectionMap::iterator sit;
+
+ sprintf(buf1, "{\\rtf1\\ansi");
+ if (font)
+ sprintf(buf2, "{\\fonttbl{\\f0\\fdecor\\fprq2 %s;}{\\f1\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f2\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f3\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f4\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f7\\froman\\fcharset2\\fprq2 Symbol;}{\\f8\\froman\\fcharset2\\fprq2 Symbol;}}", font);
+ else sprintf(buf2, "{\\fonttbl{\\f0\\fdecor\\fprq2 Times New Roman;}{\\f1\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f7\\froman\\fcharset2\\fprq2 Symbol;}{\\f8\\froman\\fcharset2\\fprq2 Symbol;}}");
+ strcat(buf1, buf2);
+
+// if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+// sprintf(buf2, "{\\colortbl;\\red0\\green0\\blue255;\\red%d\\green%d\\blue%d;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red255\\green0\\blue0;}",
+// atoi((*sit).second["CurrentVSColorRed"].c_str()),
+// atoi((*sit).second["CurrentVSColorGreen"].c_str()),
+// atoi((*sit).second["CurrentVSColorBlue"].c_str()));
+// }
+// else
+ sprintf(buf2, "{\\colortbl;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red255\\green0\\blue0;}");
+ strcat(buf1, buf2);
+ memset(buf, 0, max);
+ strncpy(buf, buf1, max);
+}
+
+
+void __fastcall TCommentPanel::CopyasBGreekTransliteration1Click(TObject *Sender)
+{
+ char *retbuf;
+ int len;
+ TClipboard *clip = new TClipboard();
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ len = rtf->SelText.Length() * 2;
+ retbuf = new char [ len ];
+ if (!Greek2bGreek(retbuf, rtf->SelText.c_str(), len)) {
+ clip->SetTextBuf(retbuf);
+ }
+ delete clip;
+}
+
+void __fastcall TCommentPanel::Copy1Click(TObject *Sender)
+{
+ int wordstart;
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ if (!rtf->SelLength) {
+ for (wordstart = rtf->SelStart; (wordstart > -1)&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length() - 1) - rtf->SelStart - 1;
+ }
+ rtf->CopyToClipboard();
+}
+void __fastcall TCommentPanel::DictionaryLookup1Click(TObject *Sender)
+{
+ int wordstart;
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ if (!rtf->SelLength) {
+ for (wordstart = rtf->SelStart; (wordstart > -1)&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length() - 1) - rtf->SelStart - 1;
+ }
+// DictKeyEdit->Text = Trim(rtf->SelText);
+}
+void __fastcall TCommentPanel::RTFMouseDown(TObject *Sender, TMouseButton Button,
+ TShiftState Shift, int X, int Y)
+{
+ ((TWinControl *)Sender)->SetFocus();
+}
diff --git a/apps/windoze/CBuilder4/prototype/CommentPanel.h b/apps/windoze/CBuilder4/prototype/CommentPanel.h
new file mode 100644
index 0000000..6fa9145
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/CommentPanel.h
@@ -0,0 +1,39 @@
+//---------------------------------------------------------------------------
+#ifndef CommentPanelH
+#define CommentPanelH
+//---------------------------------------------------------------------------
+#include <SysUtils.hpp>
+#include <Controls.hpp>
+#include <Classes.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+class SWDisplay;
+class SWModule;
+class SWMgr;
+
+
+
+//---------------------------------------------------------------------------
+class PACKAGE TCommentPanel : public TPanel
+{
+private:
+protected:
+public:
+ __fastcall TCommentPanel(TComponent* Owner, SWModule *mod = 0, SWMgr *mgr = 0);
+ __fastcall virtual ~TCommentPanel();
+ SWDisplay *display;
+ SWModule *module;
+ SWMgr *mgr;
+ char *font;
+__published:
+ TPopupMenu *menu;
+ virtual void __fastcall CreateWnd();
+ void __fastcall PopupMenuPopup(TObject *Sender);
+ void __fastcall CopyasBGreekTransliteration1Click(TObject *Sender);
+ void __fastcall Copy1Click(TObject *Sender);
+ void __fastcall DictionaryLookup1Click(TObject *Sender);
+ void __fastcall RTFMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void BuildRTFHeader(char *buf, char *font, int max);
+};
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/prototype/DeskTopNameForm.cpp b/apps/windoze/CBuilder4/prototype/DeskTopNameForm.cpp
new file mode 100644
index 0000000..c3308b4
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/DeskTopNameForm.cpp
@@ -0,0 +1,15 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "DeskTopNameForm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TDeskTopNameFrm *DeskTopNameFrm;
+//---------------------------------------------------------------------------
+__fastcall TDeskTopNameFrm::TDeskTopNameFrm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/prototype/DeskTopNameForm.dfm b/apps/windoze/CBuilder4/prototype/DeskTopNameForm.dfm
new file mode 100644
index 0000000..e64f7bd
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/DeskTopNameForm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/prototype/DeskTopNameForm.h b/apps/windoze/CBuilder4/prototype/DeskTopNameForm.h
new file mode 100644
index 0000000..3ef1549
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/DeskTopNameForm.h
@@ -0,0 +1,27 @@
+//---------------------------------------------------------------------------
+#ifndef DeskTopNameFormH
+#define DeskTopNameFormH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ComCtrls.hpp>
+#include <ExtCtrls.hpp>
+//---------------------------------------------------------------------------
+class TDeskTopNameFrm : public TForm
+{
+__published: // IDE-managed Components
+ TLabel *Label1;
+ TPanel *Panel1;
+ TButton *Button1;
+ TPanel *Panel2;
+ TEdit *desktopName;
+private: // User declarations
+public: // User declarations
+ __fastcall TDeskTopNameFrm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TDeskTopNameFrm *DeskTopNameFrm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/prototype/LDPanel.cpp b/apps/windoze/CBuilder4/prototype/LDPanel.cpp
new file mode 100644
index 0000000..b93af95
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/LDPanel.cpp
@@ -0,0 +1,174 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#include <vcl/clipbrd.hpp>
+#pragma hdrstop
+
+#include "LDPanel.h"
+#pragma package(smart_init)
+#include "swdisprtfchap.h"
+#include <swconfig.h>
+#include <swmodule.h>
+#include "Greek2Greek.h"
+#include <utilfuns.h>
+#include <swmgr.h>
+
+class RTFDisp : public SWDisplay {
+ SWDispRTF *edit;
+public:
+ RTFDisp(SWDispRTF *iedit) { edit = iedit; }
+ RTFDisp() {}
+ char Display(SWModule &imodule) {
+ edit->Display(imodule);
+ }
+};
+
+//---------------------------------------------------------------------------
+// ValidCtrCheck is used to assure that the components created do not have
+// any pure virtual functions.
+//
+
+static inline void ValidCtrCheck(TLDPanel *)
+{
+ new TLDPanel(NULL);
+}
+//---------------------------------------------------------------------------
+__fastcall TLDPanel::TLDPanel(TComponent* Owner, SWModule *mod, SWMgr *imgr)
+ : TPanel(Owner)
+{
+ module = mod;
+ mgr = imgr;
+ this->font = 0;
+ stdstr(&(this->font), font);
+ menu = new TPopupMenu(this);
+ menu->OnPopup = PopupMenuPopup;
+
+ TMenuItem * newitem;
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "&Copy";
+ newitem->Hint = "Copy text to clipboard";
+ newitem->Default = false;
+ newitem->OnClick = Copy1Click;
+ menu->Items->Add(newitem);
+ if (!strcmp(mod->Name(), "N27U4")) {
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "Copy as &B-Greek Transliteration";
+ newitem->Hint = "Copy text to clipboard as B-Greek Transliteration";
+ newitem->Default = false;
+ newitem->OnClick = CopyasBGreekTransliteration1Click;
+ menu->Items->Add(newitem);
+ }
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "Dictionary Lookup";
+ newitem->Hint = "Send text to dictionary key for lookup";
+ newitem->Default = false;
+ newitem->OnClick = DictionaryLookup1Click;
+ menu->Items->Add(newitem);
+}
+
+
+void __fastcall TLDPanel::CreateWnd() {
+ TPanel::CreateWnd();
+
+ SWDispRTF *newrtf = new SWDispRTF(this);
+
+ newrtf->Parent = this;
+ newrtf->Align = alClient;
+ newrtf->ScrollBars = ssVertical;
+ newrtf->ReadOnly = true;
+// newrtf->PopupMenu = PopupMenu2;
+// newrtf->OnMouseDown = RTFMouseDown;
+ display = new RTFDisp(newrtf);
+ module->Disp(display);
+// mod->SetKey(DefaultStrKey);
+
+
+}
+__fastcall TLDPanel::~TLDPanel() {
+ delete display;
+ if (font)
+ delete font;
+}
+//---------------------------------------------------------------------------
+namespace Ldpanel
+{
+ void __fastcall PACKAGE Register()
+ {
+ TComponentClass classes[1] = {__classid(TLDPanel)};
+ RegisterComponents("Samples", classes, 0);
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TLDPanel::PopupMenuPopup(TObject *Sender)
+{
+}
+void TLDPanel::BuildRTFHeader(char *buf, char *font, int max)
+{
+ char buf1[1024], buf2[1024];
+ SectionMap::iterator sit;
+
+ sprintf(buf1, "{\\rtf1\\ansi");
+ if (font)
+ sprintf(buf2, "{\\fonttbl{\\f0\\fdecor\\fprq2 %s;}{\\f1\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f2\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f3\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f4\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f7\\froman\\fcharset2\\fprq2 Symbol;}{\\f8\\froman\\fcharset2\\fprq2 Symbol;}}", font);
+ else sprintf(buf2, "{\\fonttbl{\\f0\\fdecor\\fprq2 Times New Roman;}{\\f1\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f7\\froman\\fcharset2\\fprq2 Symbol;}{\\f8\\froman\\fcharset2\\fprq2 Symbol;}}");
+ strcat(buf1, buf2);
+
+// if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+// sprintf(buf2, "{\\colortbl;\\red0\\green0\\blue255;\\red%d\\green%d\\blue%d;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red255\\green0\\blue0;}",
+// atoi((*sit).second["CurrentVSColorRed"].c_str()),
+// atoi((*sit).second["CurrentVSColorGreen"].c_str()),
+// atoi((*sit).second["CurrentVSColorBlue"].c_str()));
+// }
+// else
+ sprintf(buf2, "{\\colortbl;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red255\\green0\\blue0;}");
+ strcat(buf1, buf2);
+ memset(buf, 0, max);
+ strncpy(buf, buf1, max);
+}
+
+
+void __fastcall TLDPanel::CopyasBGreekTransliteration1Click(TObject *Sender)
+{
+ char *retbuf;
+ int len;
+ TClipboard *clip = new TClipboard();
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ len = rtf->SelText.Length() * 2;
+ retbuf = new char [ len ];
+ if (!Greek2bGreek(retbuf, rtf->SelText.c_str(), len)) {
+ clip->SetTextBuf(retbuf);
+ }
+ delete clip;
+}
+
+void __fastcall TLDPanel::Copy1Click(TObject *Sender)
+{
+ int wordstart;
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ if (!rtf->SelLength) {
+ for (wordstart = rtf->SelStart; (wordstart > -1)&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length() - 1) - rtf->SelStart - 1;
+ }
+ rtf->CopyToClipboard();
+}
+void __fastcall TLDPanel::DictionaryLookup1Click(TObject *Sender)
+{
+ int wordstart;
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ if (!rtf->SelLength) {
+ for (wordstart = rtf->SelStart; (wordstart > -1)&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length() - 1) - rtf->SelStart - 1;
+ }
+// DictKeyEdit->Text = Trim(rtf->SelText);
+}
+void __fastcall TLDPanel::RTFMouseDown(TObject *Sender, TMouseButton Button,
+ TShiftState Shift, int X, int Y)
+{
+ ((TWinControl *)Sender)->SetFocus();
+}
diff --git a/apps/windoze/CBuilder4/prototype/LDPanel.h b/apps/windoze/CBuilder4/prototype/LDPanel.h
new file mode 100644
index 0000000..80dcdff
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/LDPanel.h
@@ -0,0 +1,39 @@
+//---------------------------------------------------------------------------
+#ifndef LDPanelH
+#define LDPanelH
+//---------------------------------------------------------------------------
+#include <SysUtils.hpp>
+#include <Controls.hpp>
+#include <Classes.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+class SWDisplay;
+class SWModule;
+class SWMgr;
+
+
+
+//---------------------------------------------------------------------------
+class PACKAGE TLDPanel : public TPanel
+{
+private:
+protected:
+public:
+ __fastcall TLDPanel(TComponent* Owner, SWModule *mod = 0, SWMgr *mgr = 0);
+ __fastcall virtual ~TLDPanel();
+ SWDisplay *display;
+ SWModule *module;
+ SWMgr *mgr;
+ char *font;
+__published:
+ TPopupMenu *menu;
+ virtual void __fastcall CreateWnd();
+ void __fastcall PopupMenuPopup(TObject *Sender);
+ void __fastcall CopyasBGreekTransliteration1Click(TObject *Sender);
+ void __fastcall Copy1Click(TObject *Sender);
+ void __fastcall DictionaryLookup1Click(TObject *Sender);
+ void __fastcall RTFMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void BuildRTFHeader(char *buf, char *font, int max);
+};
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/prototype/ModInstForm.cpp b/apps/windoze/CBuilder4/prototype/ModInstForm.cpp
new file mode 100644
index 0000000..1763817
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/ModInstForm.cpp
@@ -0,0 +1,14 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "ModInstForm.h"
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TModInstFrm *ModInstFrm;
+//---------------------------------------------------------------------------
+__fastcall TModInstFrm::TModInstFrm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//--------------------------------------------------------------------------- \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/prototype/ModInstForm.dfm b/apps/windoze/CBuilder4/prototype/ModInstForm.dfm
new file mode 100644
index 0000000..41ce498
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/ModInstForm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/prototype/ModInstForm.h b/apps/windoze/CBuilder4/prototype/ModInstForm.h
new file mode 100644
index 0000000..f0cb90a
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/ModInstForm.h
@@ -0,0 +1,27 @@
+//---------------------------------------------------------------------------
+#ifndef ModInstFormH
+#define ModInstFormH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ComCtrls.hpp>
+#include <vcl\ExtCtrls.hpp>
+//---------------------------------------------------------------------------
+class TModInstFrm : public TForm
+{
+__published: // IDE-managed Components
+ TRichEdit *AboutText;
+ TPanel *Panel1;
+ TButton *Button1;
+ TLabel *ModText;
+private: // User declarations
+public: // User declarations
+ __fastcall TModInstFrm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TModInstFrm *ModInstFrm;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/prototype/ModTabPanel.cpp b/apps/windoze/CBuilder4/prototype/ModTabPanel.cpp
new file mode 100644
index 0000000..0d39acf
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/ModTabPanel.cpp
@@ -0,0 +1,114 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "ModTabPanel.h"
+#pragma package(smart_init)
+#include <swmgr.h>
+#include "TextPanel.h"
+#include "CommentPanel.h"
+#include "LDPanel.h"
+//---------------------------------------------------------------------------
+// ValidCtrCheck is used to assure that the components created do not have
+// any pure virtual functions.
+//
+
+static inline void ValidCtrCheck(TModTabPanel *)
+{
+ new TModTabPanel(NULL);
+}
+//---------------------------------------------------------------------------
+__fastcall TModTabPanel::TModTabPanel(TComponent* Owner, SWMgr *mgr, char *modType)
+ : TPanel(Owner)
+{
+ this->mgr = mgr;
+ this->modType = modType;
+}
+
+void __fastcall TModTabPanel::CreateWnd() {
+ TPanel::CreateWnd();
+ ModMap::iterator it;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ char *font;
+ this->DragMode = dmAutomatic;
+ this->DragKind = dkDock;
+ this->UseDockManager = true;
+ pageControl = new TPageControl(this);
+ pageControl->Parent = this;
+ pageControl->Align = alClient;
+ pageControl->MultiLine = True;
+ pageControl->ParentFont = False;
+ pageControl->ParentShowHint = False;
+ pageControl->ShowHint = True;
+ pageControl->TabHeight = 14;
+ pageControl->TabOrder = 0;
+ pageControl->OnChange = PageControl1Change;
+ for (it = mgr->Modules.begin(); it != mgr->Modules.end(); it++) {
+ if ((!strcmp((*it).second->Type(), "Biblical Texts")) && (!strcmp(modType.c_str(), "Biblical Texts"))) {
+ font = 0;
+ if ((sit = mgr->config->Sections.find((*it).second->Name())) != mgr->config->Sections.end()) {
+ if ((eit = (*sit).second.find("Font")) != (*sit).second.end()) {
+ font = (char *)(*eit).second.c_str();
+ }
+ }
+ TTabSheet *newtab = new TTabSheet(this);
+ newtab->Caption = (*it).second->Name();
+ newtab->Hint = (*it).second->Description();
+ newtab->PageControl = pageControl;
+ TTextPanel *panel = new TTextPanel(this, (*it).second, font);
+ panel->Parent = newtab;
+ panel->Align = alClient;
+// CreateTextPane((*it).second, font);
+ }
+ if ((!strcmp((*it).second->Type(), "Commentaries")) && (!strcmp(modType.c_str(), "Commentaries"))) {
+ TTabSheet *newtab = new TTabSheet(this);
+ newtab->Caption = (*it).second->Name();
+ newtab->Hint = (*it).second->Description();
+ newtab->PageControl = pageControl;
+ TCommentPanel *panel = new TCommentPanel(this, (*it).second, mgr);
+ panel->Parent = newtab;
+ panel->Align = alClient;
+// CreateCommentPane((*it).second);
+ }
+ if ((!strcmp((*it).second->Type(), "Lexicons / Dictionaries")) && (!strcmp(modType.c_str(), "Lexicons / Dictionaries"))) {
+ TTabSheet *newtab = new TTabSheet(this);
+ newtab->Caption = (*it).second->Name();
+ newtab->Hint = (*it).second->Description();
+ newtab->PageControl = pageControl;
+ TLDPanel *panel = new TLDPanel(this, (*it).second, mgr);
+ panel->Parent = newtab;
+ panel->Align = alClient;
+// CreateLDPane((*it).second);
+ }
+ }
+}
+//---------------------------------------------------------------------------
+namespace Modtabpanel
+{
+ void __fastcall PACKAGE Register()
+ {
+ TComponentClass classes[1] = {__classid(TModTabPanel)};
+ RegisterComponents("Samples", classes, 0);
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TModTabPanel::PageControl1Change(TObject *Sender)
+{
+ RefreshActiveSheet();
+// Form1->ActiveControl = PageControl1;
+}
+
+
+void TModTabPanel::RefreshActiveSheet()
+{
+ ModMap::iterator it;
+
+ it = mgr->Modules.find(pageControl->ActivePage->Caption.c_str());
+ if (it != mgr->Modules.end()) {
+ (*it).second->Display();
+// if (logmodstate)
+// modstates.insert(modstates.begin(), new ModState(pc, pc->ActivePage, (*it).second->KeyText()));
+ }
+}
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/prototype/ModTabPanel.h b/apps/windoze/CBuilder4/prototype/ModTabPanel.h
new file mode 100644
index 0000000..9da8db2
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/ModTabPanel.h
@@ -0,0 +1,30 @@
+//---------------------------------------------------------------------------
+#ifndef ModTabPanelH
+#define ModTabPanelH
+//---------------------------------------------------------------------------
+#include <SysUtils.hpp>
+#include <Controls.hpp>
+#include <Classes.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+#include <string>
+
+class SWMgr;
+//---------------------------------------------------------------------------
+class PACKAGE TModTabPanel : public TPanel
+{
+private:
+protected:
+public:
+ SWMgr *mgr;
+ std::string modType;
+ __fastcall TModTabPanel(TComponent* Owner, SWMgr *mgr = 0, char *modtype = 0);
+ void RefreshActiveSheet();
+ virtual void __fastcall CreateWnd();
+
+__published:
+ TPageControl *pageControl;
+ void __fastcall PageControl1Change(TObject *Sender);
+};
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/prototype/TextPanel.cpp b/apps/windoze/CBuilder4/prototype/TextPanel.cpp
new file mode 100644
index 0000000..a534e12
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/TextPanel.cpp
@@ -0,0 +1,183 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#include <vcl/clipbrd.hpp>
+#pragma hdrstop
+
+#include "TextPanel.h"
+#pragma package(smart_init)
+#include "swdisprtfchap.h"
+#include <swconfig.h>
+#include <swmodule.h>
+#include "Greek2Greek.h"
+#include <utilfuns.h>
+
+class RTFDisp : public SWDisplay {
+ SWDispRTF *edit;
+public:
+ RTFDisp(SWDispRTF *iedit) { edit = iedit; }
+ RTFDisp() {}
+ char Display(SWModule &imodule) {
+ edit->Display(imodule);
+ }
+};
+
+
+//---------------------------------------------------------------------------
+// ValidCtrCheck is used to assure that the components created do not have
+// any pure virtual functions.
+//
+
+static inline void ValidCtrCheck(TTextPanel *)
+{
+ new TTextPanel(NULL);
+}
+//---------------------------------------------------------------------------
+__fastcall TTextPanel::TTextPanel(TComponent* Owner, SWModule *mod, char *font)
+ : TPanel(Owner)
+{
+ module = mod;
+ this->font = 0;
+ stdstr(&(this->font), font);
+ menu = new TPopupMenu(this);
+ menu->OnPopup = PopupMenuPopup;
+
+ TMenuItem * newitem;
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "&Copy";
+ newitem->Hint = "Copy text to clipboard";
+ newitem->Default = false;
+ newitem->OnClick = Copy1Click;
+ menu->Items->Add(newitem);
+ if (!strcmp(mod->Name(), "N27U4")) {
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "Copy as &B-Greek Transliteration";
+ newitem->Hint = "Copy text to clipboard as B-Greek Transliteration";
+ newitem->Default = false;
+ newitem->OnClick = CopyasBGreekTransliteration1Click;
+ menu->Items->Add(newitem);
+ }
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "Dictionary Lookup";
+ newitem->Hint = "Send text to dictionary key for lookup";
+ newitem->Default = false;
+ newitem->OnClick = DictionaryLookup1Click;
+ menu->Items->Add(newitem);
+}
+
+
+void __fastcall TTextPanel::CreateWnd() {
+ TPanel::CreateWnd();
+ SWDispRTFChap *newrtf = new SWDispRTFChap(this);
+ char buf[512];
+ SectionMap::iterator sit;
+
+// newtab->Caption = mod->Name();
+// newtab->Hint = mod->Description();
+// newtab->PageControl = PageControl1;
+ newrtf->Parent = this;
+ newrtf->Align = alClient;
+ newrtf->ScrollBars = ssVertical;
+ newrtf->ReadOnly = true;
+ newrtf->PopupMenu = menu;
+ newrtf->OnMouseDown = RTFMouseDown;
+
+ BuildRTFHeader(buf, font, 512);
+ newrtf->RTFHeader = buf;
+
+// if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+// newrtf->MarkCurrentVerse = (atoi((*sit).second["AutoVSColor"].c_str())) ? true:false;
+// }
+ display = new RTFDisp(newrtf);
+ module->Disp(display);
+// mod->SetKey(DefaultVSKey);
+
+}
+__fastcall TTextPanel::~TTextPanel() {
+ delete display;
+ if (font)
+ delete font;
+}
+//---------------------------------------------------------------------------
+namespace Textpanel
+{
+ void __fastcall PACKAGE Register()
+ {
+ TComponentClass classes[1] = {__classid(TTextPanel)};
+ RegisterComponents("Samples", classes, 0);
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TTextPanel::PopupMenuPopup(TObject *Sender)
+{
+}
+void TTextPanel::BuildRTFHeader(char *buf, char *font, int max)
+{
+ char buf1[1024], buf2[1024];
+ SectionMap::iterator sit;
+
+ sprintf(buf1, "{\\rtf1\\ansi");
+ if (font)
+ sprintf(buf2, "{\\fonttbl{\\f0\\fdecor\\fprq2 %s;}{\\f1\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f2\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f3\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f4\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f7\\froman\\fcharset2\\fprq2 Symbol;}{\\f8\\froman\\fcharset2\\fprq2 Symbol;}}", font);
+ else sprintf(buf2, "{\\fonttbl{\\f0\\fdecor\\fprq2 Times New Roman;}{\\f1\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f7\\froman\\fcharset2\\fprq2 Symbol;}{\\f8\\froman\\fcharset2\\fprq2 Symbol;}}");
+ strcat(buf1, buf2);
+
+// if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+// sprintf(buf2, "{\\colortbl;\\red0\\green0\\blue255;\\red%d\\green%d\\blue%d;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red255\\green0\\blue0;}",
+// atoi((*sit).second["CurrentVSColorRed"].c_str()),
+// atoi((*sit).second["CurrentVSColorGreen"].c_str()),
+// atoi((*sit).second["CurrentVSColorBlue"].c_str()));
+// }
+// else
+ sprintf(buf2, "{\\colortbl;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red255\\green0\\blue0;}");
+ strcat(buf1, buf2);
+ memset(buf, 0, max);
+ strncpy(buf, buf1, max);
+}
+
+
+void __fastcall TTextPanel::CopyasBGreekTransliteration1Click(TObject *Sender)
+{
+ char *retbuf;
+ int len;
+ TClipboard *clip = new TClipboard();
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ len = rtf->SelText.Length() * 2;
+ retbuf = new char [ len ];
+ if (!Greek2bGreek(retbuf, rtf->SelText.c_str(), len)) {
+ clip->SetTextBuf(retbuf);
+ }
+ delete clip;
+}
+
+void __fastcall TTextPanel::Copy1Click(TObject *Sender)
+{
+ int wordstart;
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ if (!rtf->SelLength) {
+ for (wordstart = rtf->SelStart; (wordstart > -1)&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length() - 1) - rtf->SelStart - 1;
+ }
+ rtf->CopyToClipboard();
+}
+void __fastcall TTextPanel::DictionaryLookup1Click(TObject *Sender)
+{
+ int wordstart;
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ if (!rtf->SelLength) {
+ for (wordstart = rtf->SelStart; (wordstart > -1)&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length() - 1) - rtf->SelStart - 1;
+ }
+// DictKeyEdit->Text = Trim(rtf->SelText);
+}
+void __fastcall TTextPanel::RTFMouseDown(TObject *Sender, TMouseButton Button,
+ TShiftState Shift, int X, int Y)
+{
+ ((TWinControl *)Sender)->SetFocus();
+}
diff --git a/apps/windoze/CBuilder4/prototype/TextPanel.h b/apps/windoze/CBuilder4/prototype/TextPanel.h
new file mode 100644
index 0000000..6103088
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/TextPanel.h
@@ -0,0 +1,34 @@
+//---------------------------------------------------------------------------
+#ifndef TextPanelH
+#define TextPanelH
+//---------------------------------------------------------------------------
+#include <SysUtils.hpp>
+#include <Controls.hpp>
+#include <Classes.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+class SWDisplay;
+class SWModule;
+//---------------------------------------------------------------------------
+class PACKAGE TTextPanel : public TPanel
+{
+private:
+protected:
+public:
+ __fastcall TTextPanel(TComponent* Owner, SWModule *mod = 0, char *font = 0);
+ __fastcall virtual ~TTextPanel();
+ SWDisplay *display;
+ SWModule *module;
+ char *font;
+__published:
+ TPopupMenu *menu;
+ virtual void __fastcall CreateWnd();
+ void __fastcall PopupMenuPopup(TObject *Sender);
+ void __fastcall CopyasBGreekTransliteration1Click(TObject *Sender);
+ void __fastcall Copy1Click(TObject *Sender);
+ void __fastcall DictionaryLookup1Click(TObject *Sender);
+ void __fastcall RTFMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void BuildRTFHeader(char *buf, char *font, int max);
+};
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/prototype/back.bmp b/apps/windoze/CBuilder4/prototype/back.bmp
new file mode 100644
index 0000000..5284295
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/back.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/prototype/biblecsmgr.cpp b/apps/windoze/CBuilder4/prototype/biblecsmgr.cpp
new file mode 100644
index 0000000..502cb09
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/biblecsmgr.cpp
@@ -0,0 +1,41 @@
+//---------------------------------------------------------------------------
+#include "BibleCSMGR.h"
+#include <swconfig.h>
+//---------------------------------------------------------------------------
+BibleCSMGR::BibleCSMGR(TModInstFrm *iModInstFrm) : SWMgr(0, false)
+{
+ ModInstFrm = iModInstFrm;
+ Load();
+}
+
+
+char BibleCSMGR::AddModToConfig(int conffd, const char *fname)
+{
+ SWConfig modconf(fname);
+ SectionMap::iterator section;
+ AnsiString abouttext = "";
+ bool logflag;
+ TMemoryStream *RTFStream = new TMemoryStream();
+ char retval;
+
+ section = modconf.Sections.begin();
+
+ ModInstFrm->ModText->Caption = "";
+ ModInstFrm->ModText->Caption = ModInstFrm->ModText->Caption + "Found new module [ " + (*section).second["Description"].c_str() + " ]. Installing...";
+
+ abouttext = abouttext + "{\\fs20\\cf0 " + (*section).second["About"].c_str() + " }";
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(abouttext.c_str(), abouttext.Length());
+ RTFStream->Position = 0;
+ ModInstFrm->AboutText->Lines->LoadFromStream(RTFStream);
+ delete RTFStream;
+
+ ModInstFrm->ShowModal();
+
+ logflag = SWLog::systemlog->log;
+ SWLog::systemlog->log = false;
+ retval = SWMgr::AddModToConfig(conffd, fname);
+ SWLog::systemlog->log = logflag;
+
+ return retval;
+}
diff --git a/apps/windoze/CBuilder4/prototype/biblecsmgr.h b/apps/windoze/CBuilder4/prototype/biblecsmgr.h
new file mode 100644
index 0000000..d94bbd6
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/biblecsmgr.h
@@ -0,0 +1,18 @@
+//---------------------------------------------------------------------------
+#ifndef biblecsmgrH
+#define biblecsmgrH
+#include <swmgr.h>
+#include "ModInstForm.h"
+//---------------------------------------------------------------------------
+class BibleCSMGR : public SWMgr {
+ TModInstFrm *ModInstFrm;
+
+protected:
+ virtual char AddModToConfig(int conffd, const char *fname);
+
+public:
+ BibleCSMGR(TModInstFrm *iModInstFrm);
+};
+
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/prototype/bookmark.bmp b/apps/windoze/CBuilder4/prototype/bookmark.bmp
new file mode 100644
index 0000000..4b6df0c
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/bookmark.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/prototype/bookmarkfrm.cpp b/apps/windoze/CBuilder4/prototype/bookmarkfrm.cpp
new file mode 100644
index 0000000..8ef63cc
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/bookmarkfrm.cpp
@@ -0,0 +1,222 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "bookmarkfrm.h"
+#include <swconfig.h>
+#include <dirent.h>
+#include "mainfrm.h"
+#include "newbmfilefrm.h"
+#include <io.h>
+#include <dir.h>
+
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TBookmarksfrm *Bookmarksfrm;
+//---------------------------------------------------------------------------
+__fastcall TBookmarksfrm::TBookmarksfrm(TComponent* Owner)
+ : TForm(Owner)
+{
+ SWConfig *bookmarks;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ TTreeNode *node;
+
+ DIR *dir;
+ struct dirent *ent;
+ string conffile;
+ bmdir = "";
+
+ bmtree->Items->Clear();
+
+ if ((sit = Form1->optionsconf->Sections.find("Bookmarks")) != Form1->optionsconf->Sections.end())
+ bmdir = (*sit).second["Directory"];
+
+// Add Personal Bookmarks first, or if they don't exist, ADD A BLANK BRANCH first in the tree
+// --------------------------------------------------------------------------
+
+ if (bmdir == "")
+ bmdir = "./bookmarks/";
+
+ if (access(bmdir.c_str(), 0)) { // directory does not exist
+ _mkdir(bmdir.c_str());
+ }
+
+ conffile = bmdir + "personal.conf";
+ bookmarks = new SWConfig(conffile);
+ if ((sit = bookmarks->Sections.find("ROOT")) != bookmarks->Sections.end()) {
+ if ((eit = (*sit).second.begin()) != (*sit).second.end()) {
+ node = bmtree->Items->AddObject(bmtree->Selected, (*eit).second.c_str(), *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ AddSection(bookmarks, bmtree, node, (*eit).first.c_str());
+ }
+ }
+ else bmtree->Items->AddObject(bmtree->Selected, "Personal Bookmarks", *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ delete bookmarks;
+// --------------------------------------------------------------------------
+
+// Add all other bookmark files ---------------------------------------------
+ if (dir = opendir(bmdir.c_str())) {
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, "personal.conf")) && (strcmp(ent->d_name, "."))&& (strcmp(ent->d_name, ".."))) {
+ conffile = bmdir;
+ conffile += ent->d_name;
+ bookmarks = new SWConfig(conffile);
+ if ((sit = bookmarks->Sections.find("ROOT")) != bookmarks->Sections.end()) {
+ if ((eit = (*sit).second.begin()) != (*sit).second.end()) { // Currently supports only ONE topsection per file because on save, each topsection designates which file to rewrite
+ node = bmtree->Items->AddObject(bmtree->Selected, (*eit).second.c_str(), *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ AddSection(bookmarks, bmtree, node, (*eit).first.c_str());
+ }
+ }
+ delete bookmarks;
+ }
+ }
+ closedir(dir);
+ }
+}
+
+
+__fastcall TBookmarksfrm::~TBookmarksfrm()
+{
+ list <String *>::iterator it;
+
+ SaveBookmarks();
+
+ for (it = bmfiles.begin(); it != bmfiles.end(); it++)
+ delete *it;
+}
+
+
+//---------------------------------------------------------------------------
+
+void TBookmarksfrm::AddSection(SWConfig *config, TTreeView *tree, TTreeNode *parent, String section)
+{
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ TTreeNode *node;
+
+ if ((sit = config->Sections.find(section.c_str())) != config->Sections.end()) {
+ for (eit = (*sit).second.begin(); eit != (*sit).second.end(); eit++) {
+ node = tree->Items->AddChild(parent, (*eit).second.c_str());
+ AddSection(config, tree, node, (*eit).first.c_str());
+ }
+ }
+}
+
+
+void __fastcall TBookmarksfrm::bmtreeDragDrop(TObject *Sender, TObject *Source,
+ int X, int Y)
+{
+ bmtree->Selected->MoveTo(bmtree->DropTarget, naAddChildFirst);
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::bmtreeDragOver(TObject *Sender, TObject *Source,
+ int X, int Y, TDragState State, bool &Accept)
+{
+ Accept = false;
+
+ if (String(Source->ClassName()) == "TTreeView") {
+ if (Source == bmtree) {
+ if (bmtree->Selected->Data) {
+ if (strcmp((*(String*)(bmtree->Selected->Data)).c_str(),(bmdir + "personal.conf").c_str())) {
+ Accept = true;
+ }
+ }
+ else Accept = true;
+ }
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::bmtreeDblClick(TObject *Sender)
+{
+ if (!bmtree->Selected->getFirstChild()) {
+ Form1->DefaultVSKey = bmtree->Selected->Text.c_str();
+ Form1->TextKeyChanged();
+ }
+
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::AddChild1Click(TObject *Sender)
+{
+ bmtree->Selected->Expand(false);
+ bmtree->Items->AddChildFirst(bmtree->Selected, "New Topic")->EditText();
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::Delete1Click(TObject *Sender)
+{
+ if (bmtree->Selected->Data) {
+ if (strcmp((*(String*)(bmtree->Selected->Data)).c_str(),(bmdir + "personal.conf").c_str())) {
+ bmtree->Selected->Delete();
+ }
+ }
+ else bmtree->Selected->Delete();
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::Rename1Click(TObject *Sender)
+{
+ bmtree->Selected->EditText();
+}
+//---------------------------------------------------------------------------
+
+void TBookmarksfrm::SaveBookmarks()
+{
+ TTreeNode *tree = 0;
+ SWConfig *bmconf;
+ ConfigEntMap emap;
+ SectionMap::iterator sit;
+ char buf[15];
+ bool personal, other;
+ list <String *>::iterator it;
+ string persfile;
+
+ if (bmtree->Items->Count)
+ tree = bmtree->Items->Item[0];
+
+ if ((sit = Form1->optionsconf->Sections.find("Bookmarks")) != Form1->optionsconf->Sections.end()) {
+ personal = (atoi((*sit).second["AutoSavePersonal"].c_str())) ? true:false;
+ other = (atoi((*sit).second["AutoSaveOther"].c_str())) ? true:false;
+ }
+
+ persfile = bmdir + "personal.conf";
+ for (it = bmfiles.begin(); it != bmfiles.end(); it++) { // delete all bookmark files before saving in case a top level was deleted
+ if (((!strcmp((*it)->c_str(), persfile.c_str())) && personal) || ((strcmp((*it)->c_str(), persfile.c_str())) && other))
+ unlink((*it)->c_str());
+ }
+
+ for (;tree;tree = tree->getNextSibling()) {
+ if (((*((String *)tree->Data) == persfile.c_str()) && personal) || ((*((String *)tree->Data) != persfile.c_str()) && other)) {
+ bmconf = new SWConfig(((String *)tree->Data)->c_str());
+ emap = bmconf->Sections["ROOT"];
+ sprintf(buf, "branch%d", tree->AbsoluteIndex);
+ emap[buf] = tree->Text.c_str();
+ AddSectionToConf(bmconf, buf, tree);
+ bmconf->Sections["ROOT"] = emap;
+ bmconf->Save();
+ }
+ }
+}
+
+
+void TBookmarksfrm::AddSectionToConf(SWConfig *config, String section, TTreeNode *tree)
+{
+ ConfigEntMap sit;
+ char buf[15];
+
+ if (tree = tree->getFirstChild()) {
+ sit = config->Sections[section.c_str()];
+ for (; tree; tree = tree->getNextSibling()) {
+ sprintf(buf, "branch%d", tree->AbsoluteIndex);
+ sit[buf] = tree->Text.c_str();
+ AddSectionToConf(config, buf, tree);
+ }
+ config->Sections[section.c_str()] = sit;
+ }
+}
+
+void __fastcall TBookmarksfrm::NewBookmarkFile1Click(TObject *Sender)
+{
+ if (NewBMfrm->ShowModal() == mrOk) {
+ bmtree->Items->AddObject(bmtree->Items->Item[0], NewBMfrm->bmtitle->Text, *bmfiles.insert(bmfiles.begin(), new String(String(bmdir.c_str()) + NewBMfrm->bmfile->Text + String(".conf"))));
+ }
+}
+//--------------------------------------------------------------------------- \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/prototype/bookmarkfrm.dfm b/apps/windoze/CBuilder4/prototype/bookmarkfrm.dfm
new file mode 100644
index 0000000..45152a3
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/bookmarkfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/prototype/bookmarkfrm.h b/apps/windoze/CBuilder4/prototype/bookmarkfrm.h
new file mode 100644
index 0000000..4c37796
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/bookmarkfrm.h
@@ -0,0 +1,48 @@
+//---------------------------------------------------------------------------
+#ifndef bookmarkfrmH
+#define bookmarkfrmH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ComCtrls.hpp>
+#include <swconfig.h>
+#include <vcl\Menus.hpp>
+#include <list>
+//---------------------------------------------------------------------------
+class TBookmarksfrm : public TForm
+{
+__published: // IDE-managed Components
+ TTreeView *bmtree;
+ TPopupMenu *BMPopup;
+ TMenuItem *Delete1;
+ TMenuItem *AddChild1;
+ TMenuItem *Rename1;
+ TMenuItem *N1;
+ TMenuItem *NewBookmarkFile1;
+ void __fastcall bmtreeDragDrop(TObject *Sender, TObject *Source, int X, int Y);
+ void __fastcall bmtreeDragOver(TObject *Sender, TObject *Source, int X, int Y,
+ TDragState State, bool &Accept);
+ void __fastcall bmtreeDblClick(TObject *Sender);
+ void __fastcall AddChild1Click(TObject *Sender);
+ void __fastcall Delete1Click(TObject *Sender);
+ void __fastcall Rename1Click(TObject *Sender);
+ void __fastcall NewBookmarkFile1Click(TObject *Sender);
+private: // User declarations
+ void AddSection(SWConfig *config, TTreeView *tree, TTreeNode *parent, String section);
+ list <String *> bmfiles; // so we can delete each display we create
+
+
+public: // User declarations
+ string bmdir;
+ __fastcall TBookmarksfrm(TComponent* Owner);
+ __fastcall ~TBookmarksfrm();
+ void SaveBookmarks();
+ void AddSectionToConf(SWConfig *config, String section, TTreeNode *tree);
+};
+//---------------------------------------------------------------------------
+extern TBookmarksfrm *Bookmarksfrm;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/prototype/bookmarks/personal.conf b/apps/windoze/CBuilder4/prototype/bookmarks/personal.conf
new file mode 100644
index 0000000..e5317f6
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/bookmarks/personal.conf
@@ -0,0 +1,4 @@
+
+[ROOT]
+branch0=Personal Bookmarks
+
diff --git a/apps/windoze/CBuilder4/prototype/desktop.bmp b/apps/windoze/CBuilder4/prototype/desktop.bmp
new file mode 100644
index 0000000..5692668
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/desktop.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/prototype/desktop2.bmp b/apps/windoze/CBuilder4/prototype/desktop2.bmp
new file mode 100644
index 0000000..fa1bf08
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/desktop2.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/prototype/editentryfrm.cpp b/apps/windoze/CBuilder4/prototype/editentryfrm.cpp
new file mode 100644
index 0000000..e9404f8
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/editentryfrm.cpp
@@ -0,0 +1,332 @@
+#include <vcl.h>
+#pragma hdrstop
+#include <windows.hpp>
+#include <stdlib.h>
+#include <stdio.h>
+#include "editentryfrm.h"
+#include <swdisprtf.h>
+
+const float RulerAdj = 4.0/3.0;
+const int GutterWid = 6;
+//----------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TEditEntry *EditEntry;
+//----------------------------------------------------------------------------
+__fastcall TEditEntry::TEditEntry(TComponent *Owner)
+ : TForm(Owner)
+{
+ ResultBuf = 0;
+}
+
+
+__fastcall TEditEntry::~TEditEntry()
+{
+ if (ResultBuf)
+ delete [] ResultBuf;
+}
+
+
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::SelectionChange(TObject */*Sender*/)
+{
+ char sizebuf[6];
+
+ try {
+ FUpdating = True;
+ FirstInd->Left = int(RichEdit1->Paragraph->FirstIndent*RulerAdj)-
+ 4+GutterWid;
+ LeftInd->Left = int((RichEdit1->Paragraph->LeftIndent+
+ RichEdit1->Paragraph->FirstIndent)*RulerAdj)-
+ 4+GutterWid;
+ RightInd->Left = Ruler->ClientWidth-6-int(
+ (RichEdit1->Paragraph->RightIndent+GutterWid)*RulerAdj);
+
+ BoldButton->Down = RichEdit1->SelAttributes->Style.Contains(fsBold);
+ ItalicButton->Down = RichEdit1->SelAttributes->Style.Contains(fsItalic);
+ UnderlineButton->Down = RichEdit1->SelAttributes->Style.Contains(fsUnderline);
+
+ BulletsButton->Down = bool(RichEdit1->Paragraph->Numbering);
+
+ FontSize->Text = itoa(RichEdit1->SelAttributes->Size, sizebuf, 10);
+
+ switch((int)RichEdit1->Paragraph->Alignment)
+ { case 0: LeftAlign->Down = True; break;
+ case 1: RightAlign->Down = True; break;
+ case 2: CenterAlign->Down = True; break;
+ }
+ }
+ catch (...) {
+ FUpdating = False;
+ }
+ FUpdating = False;
+}
+//----------------------------------------------------------------------------
+TTextAttributes *__fastcall TEditEntry::CurrText(void)
+{
+ return RichEdit1->SelAttributes;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::CheckFileSave(void)
+{
+ if ( RichEdit1->Modified ) {
+ switch(MessageBox(Handle, "Save Changes?","Modify Comment",MB_YESNOCANCEL | MB_ICONQUESTION)) {
+ case ID_YES : ExtractRTF(); break;
+ case ID_CANCEL : Abort(); break;
+ default:
+ if (ResultBuf)
+ delete [] ResultBuf;
+ ResultBuf = 0;
+ break;
+ };
+ }
+}
+
+
+void __fastcall TEditEntry::SetupRuler(void)
+{ int iCtr = 1;
+ char sTmp[201];
+ while (iCtr < 200) {
+ sTmp[iCtr] = 9;
+ iCtr++;
+ sTmp[iCtr] = '|';
+ iCtr++;
+ }
+ Ruler->Caption = (AnsiString)sTmp;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::SetEditRect(void)
+{ TRect Rct = Rect(GutterWid, 0, RichEdit1->ClientWidth-GutterWid,
+ ClientHeight);
+ SendMessage(RichEdit1->Handle, EM_SETRECT, 0, long(&Rct));
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormCreate(TObject* /*Sender*/)
+{ Application->OnHint = &ShowHint;
+ SetupRuler();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::ShowHint(TObject* /*Sender*/)
+{ StatusBar->SimpleText = Application->Hint;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::EditUndoClick(TObject* /*Sender*/)
+{ if ( RichEdit1->HandleAllocated() )
+ SendMessage(RichEdit1->Handle, EM_UNDO, 0, 0);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::EditCutClick(TObject* /*Sender*/)
+{ RichEdit1->CutToClipboard();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::EditCopyClick(TObject* /*Sender*/)
+{ RichEdit1->CopyToClipboard();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::EditPasteClick(TObject* /*Sender*/)
+{ RichEdit1->PasteFromClipboard();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::RulerResize(TObject* /*Sender*/)
+{ RulerLine->Width = (int)Ruler->ClientWidth - (RulerLine->Left*2);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormResize(TObject* Sender)
+{ SetEditRect();
+ SelectionChange(Sender);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormPaint(TObject* /*Sender*/)
+{ SetEditRect();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::BoldButtonClick(TObject* /*Sender*/)
+{ if ( !FUpdating )
+ { if ( BoldButton->Down )
+ CurrText()->Style = CurrText()->Style << fsBold;
+ else
+ CurrText()->Style = CurrText()->Style >> fsBold;
+ }
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::ItalicButtonClick(TObject* /*Sender*/)
+{ if ( !FUpdating )
+ {
+ if ( ItalicButton->Down )
+ CurrText()->Style = CurrText()->Style << fsItalic;
+ else
+ CurrText()->Style = CurrText()->Style >> fsItalic;
+ }
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::UnderlineButtonClick(TObject* /*Sender*/)
+{
+ if ( !FUpdating ) {
+ if ( UnderlineButton->Down )
+ CurrText()->Style = CurrText()->Style << fsUnderline;
+ else CurrText()->Style = CurrText()->Style >> fsUnderline;
+ }
+}
+
+
+void __fastcall TEditEntry::FontSizeChange(TObject* /*Sender*/)
+{
+ int fontsize = atoi(FontSize->Text.c_str());
+
+ if ((!FUpdating) && (fontsize)) {
+ if (fontsize < 1) {
+ ShowMessage("Please Enter a Number betweek 1 and 1638");
+ FontSize->Text = 1;
+ }
+ else if (fontsize > 1638) {
+ ShowMessage("Please Enter a Number betweek 1 and 1638");
+ FontSize->Text = 1638;
+ }
+ CurrText()->Size = atoi(FontSize->Text.c_str());
+ }
+}
+
+
+void __fastcall TEditEntry::AlignClick(TObject* Sender)
+{
+ if ( !FUpdating ) {
+ TControl *oAliBtn = (TControl*)(Sender);
+ RichEdit1->Paragraph->Alignment = (TAlignment)oAliBtn->Tag;
+ }
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::BulletsButtonClick(TObject* /*Sender*/)
+{ if ( !FUpdating )
+ RichEdit1->Paragraph->Numbering = (TNumberingStyle)BulletsButton->Down;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormCloseQuery(TObject* /*Sender*/,
+ bool & CanClose)
+{ try {
+ CheckFileSave();
+ }
+ catch (...) {
+ CanClose = False;
+ }
+}
+//----------------------------------------------------------------------------
+
+//***************************
+//***Ruler Indent Dragging***
+//***************************
+
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::RulerItemMouseDown(TObject * Sender,
+ TMouseButton Button, TShiftState Shift, int X, int Y)
+{ TLabel * oTmpLabel = (TLabel *)Sender;
+ FDragOfs = oTmpLabel->Width / 2;
+ oTmpLabel->Left = oTmpLabel->Left+X-FDragOfs;
+ FDragging = True;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::RulerItemMouseMove(TObject *Sender, TShiftState Shift, int X, int /*Y*/) {
+ if (FDragging) {
+ TLabel *oTmpLabel = (TLabel *)Sender;
+ oTmpLabel->Left = oTmpLabel->Left+X-FDragOfs;
+ oTmpLabel->Left -= oTmpLabel->Left % 10;
+ }
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FirstIndMouseUp(TObject *Sender, TMouseButton
+ Button, TShiftState Shift, int X, int Y)
+{ FDragging = False;
+ RichEdit1->Paragraph->FirstIndent = int((FirstInd->Left+FDragOfs-GutterWid) / RulerAdj);
+ LeftIndMouseUp(Sender, Button, Shift, X, Y);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::LeftIndMouseUp(TObject *Sender, TMouseButton
+ /*Button*/, TShiftState /*Shift*/, int /*X*/, int /*Y*/)
+{ FDragging = False;
+ RichEdit1->Paragraph->LeftIndent = int((LeftInd->Left+FDragOfs-GutterWid)/
+ RulerAdj)-RichEdit1->Paragraph->FirstIndent;
+ SelectionChange(Sender);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::RightIndMouseUp(TObject *Sender, TMouseButton
+ /*Button*/, TShiftState /*Shift*/, int /*X*/, int /*Y*/)
+{ FDragging = False;
+ RichEdit1->Paragraph->RightIndent =
+ int((Ruler->ClientWidth-RightInd->Left+FDragOfs-2) /
+ RulerAdj)-2*GutterWid;
+ SelectionChange(Sender);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormActivate(TObject *Sender)
+{
+ System::AnsiString newtext, tmptext;
+
+ if (Module) {
+ TMemoryStream *RTFStream = new TMemoryStream();
+ newtext = RTFDisplay->RTFHeader;
+ Module->Error(); // clear error;
+ newtext = newtext + "\\pard \\nowidctlpar \\cf0 ";
+ (char *)*Module; // force key to snap to entry before pulling out the text of the key
+ tmptext = (char *)*Module;
+
+ newtext = newtext + RTFDisplay->RTFVersePre + " " + tmptext + RTFDisplay->RTFVersePost;
+ newtext = newtext + RTFDisplay->RTFTrailer;
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(newtext.c_str(), newtext.Length());
+ RTFStream->Position = 0;
+ RichEdit1->Lines->LoadFromStream(RTFStream);
+ delete RTFStream;
+ }
+ SelectionChange(this);
+ RichEdit1->SetFocus();
+ if (ResultBuf)
+ delete [] ResultBuf;
+ ResultBuf = 0;
+}
+//---------------------------------------------------------------------
+
+void TEditEntry::ExtractRTF()
+{
+ System::AnsiString newtext, tmptext;
+ TMemoryStream *RTFStream = new TMemoryStream();
+ char *tmpbuf, *datastart;
+
+ RTFStream->Clear();
+ RichEdit1->Lines->SaveToStream(RTFStream);
+ RTFStream->Position = 0;
+ if (ResultBuf)
+ delete [] ResultBuf;
+ tmpbuf = new char [ RTFStream->Size + 1];
+ RTFStream->ReadBuffer(tmpbuf, RTFStream->Size);
+ tmpbuf[RTFStream->Size] = 0;
+ strtok(strstr(tmpbuf, "colortbl"), "}");
+ datastart = strtok(NULL, "");
+ ResultBuf = new char [ strlen(datastart) + 2 ];
+ ResultBuf[0] = '{';
+ strcpy(ResultBuf+1, datastart);
+ delete [] tmpbuf;
+ delete RTFStream;
+ //-------- Change all fonts to \f1
+ for (int i = 0; i < strlen(ResultBuf)-4; i++) {
+ if (ResultBuf[i] == '\\') {
+ if (ResultBuf[i+1] == '\\') { // skip a real '\' character
+ i += 1;
+ continue;
+ }
+ if (ResultBuf[i+1] == 'f') {
+ if (isdigit(ResultBuf[i+2])) {
+ ResultBuf[i+2] = '1';
+ if (isdigit(ResultBuf[i+3])) {
+ memmove(&ResultBuf[i+3], &ResultBuf[i+4], strlen(&ResultBuf[i+3]));
+ }
+ }
+ }
+ }
+ }
+}
+
+
+__fastcall TCharsetObject::TCharsetObject(int FCharset)
+ : TObject()
+{
+ Charset = FCharset;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/prototype/editentryfrm.dfm b/apps/windoze/CBuilder4/prototype/editentryfrm.dfm
new file mode 100644
index 0000000..3b40fc4
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/editentryfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/prototype/editentryfrm.h b/apps/windoze/CBuilder4/prototype/editentryfrm.h
new file mode 100644
index 0000000..058c385
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/editentryfrm.h
@@ -0,0 +1,108 @@
+//----------------------------------------------------------------------------
+//Borland C++Builder
+//Copyright (c) 1987, 1998 Borland International Inc. All Rights Reserved.
+//----------------------------------------------------------------------------
+//----------------------------------------------------------------------------
+#ifndef editentryfrmH
+#define editentryfrmH
+//----------------------------------------------------------------------------
+#include <Outline.hpp>
+#include <Grids.hpp>
+#include <Buttons.hpp>
+#include <ExtCtrls.hpp>
+#include <StdCtrls.hpp>
+#include <ComCtrls.hpp>
+#include <Menus.hpp>
+#include <Dialogs.hpp>
+#include <Forms.hpp>
+#include <Controls.hpp>
+#include <Graphics.hpp>
+#include <Classes.hpp>
+#include <SysUtils.hpp>
+#include <Messages.hpp>
+#include <Windows.hpp>
+#include <System.hpp>
+#include <swmodule.h>
+#include <swdisprtf.h>
+//----------------------------------------------------------------------------
+class TEditEntry : public TForm
+{
+__published:
+ TPanel *SpeedBar;
+ TSpeedButton *UndoButton;
+ TSpeedButton *CutButton;
+ TSpeedButton *CopyButton;
+ TSpeedButton *PasteButton;
+ TBevel *Bevel1;
+ TSpeedButton *BoldButton;
+ TSpeedButton *ItalicButton;
+ TSpeedButton *LeftAlign;
+ TSpeedButton *CenterAlign;
+ TSpeedButton *RightAlign;
+ TSpeedButton *UnderlineButton;
+ TSpeedButton *BulletsButton;
+ TEdit *FontSize;
+ TUpDown *UpDown1;
+ TPanel *Ruler;
+ TLabel *FirstInd;
+ TLabel *LeftInd;
+ TBevel *RulerLine;
+ TLabel *RightInd;
+ TStatusBar *StatusBar;
+ TRichEdit *RichEdit1;
+ TLabel *Label1;
+ void __fastcall SelectionChange(TObject *Sender);
+ void __fastcall AlignClick(TObject *Sender);
+ void __fastcall EditUndoClick(TObject *Sender);
+ void __fastcall EditCutClick(TObject *Sender);
+ void __fastcall EditCopyClick(TObject *Sender);
+ void __fastcall EditPasteClick(TObject *Sender);
+ void __fastcall RulerResize(TObject *Sender);
+ void __fastcall FormCreate(TObject *Sender);
+ void __fastcall FormResize(TObject *Sender);
+ void __fastcall FormPaint(TObject *Sender);
+ void __fastcall BoldButtonClick(TObject *Sender);
+ void __fastcall FontSizeChange(TObject *Sender);
+ void __fastcall UnderlineButtonClick(TObject *Sender);
+ void __fastcall ItalicButtonClick(TObject *Sender);
+ void __fastcall BulletsButtonClick(TObject *Sender);
+ void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
+ void __fastcall RulerItemMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void __fastcall RulerItemMouseMove(TObject *Sender, TShiftState Shift, int X, int Y);
+ void __fastcall FirstIndMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void __fastcall LeftIndMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void __fastcall RightIndMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void __fastcall FormActivate(TObject *Sender);
+
+private:
+ AnsiString FFileName;
+ bool FUpdating;
+ int FDragOfs;
+ bool FDragging;
+ TTextAttributes *__fastcall CurrText(void);
+ void __fastcall CheckFileSave(void);
+ void __fastcall SetupRuler(void);
+ void __fastcall SetEditRect(void);
+ void __fastcall ShowHint(TObject *Sender);
+
+public:
+ SWModule *Module;
+ SWDispRTF *RTFDisplay;
+
+ virtual __fastcall TEditEntry(TComponent *Owner);
+ __fastcall ~TEditEntry();
+ char *ResultBuf;
+ void ExtractRTF();
+};
+//----------------------------------------------------------------------------
+class TCharsetObject : public TObject
+{
+public:
+ int Charset;
+ __fastcall TCharsetObject(int FCharset);
+};
+//----------------------------------------------------------------------------
+extern TEditEntry *EditEntry;
+//----------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/prototype/mainfrm.cpp b/apps/windoze/CBuilder4/prototype/mainfrm.cpp
new file mode 100644
index 0000000..bb89b40
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/mainfrm.cpp
@@ -0,0 +1,824 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#include <vcl/clipbrd.hpp>
+#pragma hdrstop
+
+#include "mainfrm.h"
+#include "swdisprtfchap.h"
+#include "searchfrm.h"
+#include "swwinlog.h"
+#include "AboutBoxfrm.h"
+#include "ModInstForm.h"
+#include "biblecsmgr.h"
+#include "Greek2Greek.h"
+#include "bookmarkfrm.h"
+#include "optionfrm.h"
+#include "vrslstfrm.h"
+#include <utilstr.h>
+#include <filemgr.h>
+#include "editentryfrm.h"
+#include "versesel.h"
+#include "ModTabPanel.h"
+
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TForm1 *Form1;
+//---------------------------------------------------------------------------
+
+
+__fastcall TForm1::TForm1(TComponent* Owner)
+ : TForm(Owner)
+{
+ optionsconf = new SWConfig("./options.conf");
+
+ Lookup->Text = "[ SWORD DDE Lookup ]";
+ Search->Text = "[ SWORD DDE Search ]";
+ Application->OnHint = DisplayHint;
+}
+
+void __fastcall TForm1::DisplayHint(TObject* Sender)
+{
+ StatusBar1->SimpleText = Application->Hint;
+}
+
+//---------------------------------------------------------------------------
+__fastcall TForm1::~TForm1()
+{
+ list <SWDisplay *>::iterator it;
+ int loop;
+
+ if (mainmgr)
+ delete mainmgr;
+ for (it = displays.begin(); it != displays.end(); it++)
+ delete *it;
+ if (layoutconf)
+ delete layoutconf;
+
+ if (optionsconf)
+ delete optionsconf;
+
+// for (loop = 0; loop < 10; loop++) {
+// if (ctrlstates[loop]);
+// delete ctrlstates[loop];
+// }
+}
+//---------------------------------------------------------------------------
+void TForm1::BuildRTFHeader(char *buf, char *font, int max)
+{
+ char buf1[1024], buf2[1024];
+ SectionMap::iterator sit;
+
+ sprintf(buf1, "{\\rtf1\\ansi");
+ if (font)
+ sprintf(buf2, "{\\fonttbl{\\f0\\fdecor\\fprq2 %s;}{\\f1\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f2\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f3\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f4\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f7\\froman\\fcharset2\\fprq2 Symbol;}{\\f8\\froman\\fcharset2\\fprq2 Symbol;}}", font);
+ else sprintf(buf2, "{\\fonttbl{\\f0\\fdecor\\fprq2 Times New Roman;}{\\f1\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f7\\froman\\fcharset2\\fprq2 Symbol;}{\\f8\\froman\\fcharset2\\fprq2 Symbol;}}");
+ strcat(buf1, buf2);
+
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ sprintf(buf2, "{\\colortbl;\\red0\\green0\\blue255;\\red%d\\green%d\\blue%d;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red255\\green0\\blue0;}",
+ atoi((*sit).second["CurrentVSColorRed"].c_str()),
+ atoi((*sit).second["CurrentVSColorGreen"].c_str()),
+ atoi((*sit).second["CurrentVSColorBlue"].c_str()));
+ }
+ else sprintf(buf2, "{\\colortbl;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red255\\green0\\blue0;}");
+ strcat(buf1, buf2);
+ memset(buf, 0, max);
+ strncpy(buf, buf1, max);
+}
+
+char TForm1::CreateTextPane(SWModule *mod, char *font) {
+ TTabSheet *newtab = new TTabSheet(this);
+ SWDispRTFChap *newrtf = new SWDispRTFChap(this);
+ TTextPanel *panel = new TTextPanel(this, mod, font);
+ char buf[512];
+ SectionMap::iterator sit;
+
+ newtab->Caption = mod->Name();
+ newtab->Hint = mod->Description();
+// newtab->PageControl = PageControl1;
+ panel->Parent = newtab;
+/*
+ newrtf->Align = alClient;
+ newrtf->ScrollBars = ssVertical;
+ newrtf->ReadOnly = true;
+ newrtf->PopupMenu = (strcmp(mod->Name(), "N27U4")) ? PopupMenu2 : PopupMenu1;
+ newrtf->OnMouseDown = RTFMouseDown;
+
+ BuildRTFHeader(buf, font, 512);
+ newrtf->RTFHeader = buf;
+
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ newrtf->MarkCurrentVerse = (atoi((*sit).second["AutoVSColor"].c_str())) ? true:false;
+ }
+
+ mod->Disp(*displays.insert(displays.begin(), new RTFDisp(newrtf)));
+ mod->SetKey(DefaultVSKey);
+*/
+ return 0;
+}
+//---------------------------------------------------------------------------
+char TForm1::CreateCommentPane(SWModule *mod) {
+ TTabSheet *newtab = new TTabSheet(this);
+ TWinControl *newrtf;
+
+ if (mainmgr->config->Sections[mod->Name()]["ModDrv"] == "HREFCom") {
+// if (mainmgr->config->Sections[mod->Name()]["External"] == "1") {
+ newrtf = new TPanel(this);
+ ((TPanel *)newrtf)->Caption = "Syncronizing to External Viewer";
+ mod->Disp(*displays.insert(displays.begin(), new DispExternal()));
+/*
+ }
+ else {
+ // newrtf = new THTML(this->Handle);
+ // newrtf = new SWDispRTF(this);
+ newrtf = HTML1;
+ newrtf->Visible = true;
+ mod->Disp(*displays.insert(displays.begin(), new HREFDisp((THTML *)newrtf)));
+ // mod->Disp(*displays.insert(displays.begin(), new RTFDisp((SWDispRTF *)newrtf)));
+ }
+*/
+ }
+ else {
+ newrtf = new SWDispRTF(this);
+ mod->Disp(*displays.insert(displays.begin(), new RTFDisp((SWDispRTF *)newrtf)));
+ ((SWDispRTF *)newrtf)->ScrollBars = ssVertical;
+ ((SWDispRTF *)newrtf)->ReadOnly = true;
+ if (mainmgr->config->Sections[mod->Name()]["ModDrv"] == "RawFiles") {
+ ((SWDispRTF *)newrtf)->PopupMenu = PopupMenu3;
+ ((SWDispRTF *)newrtf)->ExpandNewLine = false;
+ }
+ else ((SWDispRTF *)newrtf)->PopupMenu = PopupMenu2;
+ ((SWDispRTF *)newrtf)->OnMouseDown = RTFMouseDown;
+ }
+
+ newtab->Caption = mod->Name();
+ newtab->Hint = mod->Description();
+ newtab->PageControl = PageControl2;
+ newrtf->Parent = newtab;
+ newrtf->Align = alClient;
+
+ mod->SetKey(DefaultVSKey);
+ return 0;
+}
+//---------------------------------------------------------------------------
+char TForm1::CreateLDPane(SWModule *mod) {
+ TTabSheet *newtab = new TTabSheet(this);
+ SWDispRTF *newrtf = new SWDispRTF(this);
+
+ newtab->Caption = mod->Name();
+ newtab->Hint = mod->Description();
+ newtab->PageControl = PageControl3;
+ newrtf->Parent = newtab;
+ newrtf->Align = alClient;
+ newrtf->ScrollBars = ssVertical;
+ newrtf->ReadOnly = true;
+ newrtf->PopupMenu = PopupMenu2;
+ newrtf->OnMouseDown = RTFMouseDown;
+
+ mod->Disp(*displays.insert(displays.begin(), new RTFDisp(newrtf)));
+ mod->SetKey(DefaultStrKey);
+ return 0;
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::PageControl1Change(TObject *Sender)
+{
+// RefreshActiveSheet(PageControl1);
+// Form1->ActiveControl = PageControl1;
+}
+//---------------------------------------------------------------------------
+void TForm1::RefreshActiveSheet(TPageControl *pc)
+{
+ ModMap::iterator it;
+
+ it = mainmgr->Modules.find(pc->ActivePage->Caption.c_str());
+ if (it != mainmgr->Modules.end()) {
+ (*it).second->Display();
+ if (logmodstate)
+ modstates.insert(modstates.begin(), new ModState(pc, pc->ActivePage, (*it).second->KeyText()));
+ }
+}
+
+
+void TForm1::TextKeyChanged()
+{
+ cbBook->ItemIndex = cbBook->Items->IndexOf(DefaultVSKey.books[DefaultVSKey.Testament()-1][DefaultVSKey.Book()-1].name);
+ CHBox->Text = DefaultVSKey.Chapter();
+ VSBox->Text = DefaultVSKey.Verse();
+ freeHandLookup->Text = (const char *)DefaultVSKey;
+ textTabs->RefreshActiveSheet();
+ logmodstate = false; // only log state once
+ RefreshActiveSheet(PageControl2);
+ logmodstate = true;
+}
+
+
+void __fastcall TForm1::btnLookupClick(TObject *Sender)
+{
+ if (!(StrToInt(CHBox->Text)) || (!StrToInt(VSBox->Text)))
+ DefaultVSKey.AutoNormalize(0);
+
+ if (StrToInt(CHBox->Text) < 0)
+ CHBox->Text = StrToInt(CHBox->Text) + 1;
+ if (StrToInt(VSBox->Text) < 0)
+ VSBox->Text = StrToInt(VSBox->Text) + 1;
+
+ DefaultVSKey = (cbBook->Text + " " + CHBox->Text + ":" + VSBox->Text).c_str();
+ TextKeyChanged();
+ DefaultVSKey.AutoNormalize(1);
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::PageControl2Change(TObject *Sender)
+{
+ RefreshActiveSheet(PageControl2);
+ Form1->ActiveControl = PageControl2;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::DictKeyEditChange(TObject *Sender)
+{
+ if (DictKeyEdit->Modified) {
+ DefaultStrKey = DictKeyEdit->Text.c_str();
+ RefreshActiveSheet(PageControl3);
+ DictKeyEdit->Modified = false;
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::PageControl3Change(TObject *Sender)
+{
+ RefreshActiveSheet(PageControl3);
+ Form1->ActiveControl = PageControl3;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::NewSearchWindow1Click(TObject *Sender)
+{
+ Form2->Show();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Exit1Click(TObject *Sender)
+{
+ Close();
+}
+
+void __fastcall TForm1::About1Click(TObject *Sender)
+{
+ AboutBox->ShowModal();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::DictionaryLookup1Click(TObject *Sender)
+{
+ int wordstart;
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ if (!rtf->SelLength) {
+ for (wordstart = rtf->SelStart; (wordstart > -1)&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length() - 1) - rtf->SelStart - 1;
+ }
+ DictKeyEdit->Text = Trim(rtf->SelText);
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::SaveLayout1Click(TObject *Sender)
+{
+ ConfigEntMap sit;
+
+ sit = layoutconf->Sections["Screen"];
+ sit["MainTop"] = IntToStr(Form1->Top).c_str();
+ sit["MainLeft"] = IntToStr(Form1->Left).c_str();
+ sit["MainHeight"] = IntToStr(Form1->Height).c_str();
+ sit["MainWidth"] = IntToStr(Form1->Width).c_str();
+ sit["TextComHeight"] = IntToStr(pnlTextCom->Height).c_str();
+ sit["TextWidth"] = IntToStr(pnlText->Width).c_str();
+ layoutconf->Sections["Screen"] = sit;
+ layoutconf->Save();
+}
+//---------------------------------------------------------------------------
+//---------------------------------------------------------------------------
+void __fastcall TForm1::FormCreate(TObject *Sender)
+{
+ ModMap::iterator it;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ AnsiString s1;
+ char *font;
+ int val;
+ int loop;
+ int maxFiles;
+
+ mainmgr = new BibleCSMGR(ModInstFrm);
+// textTabs = new TModTabPanel(this, mainmgr, "Biblical Texts");
+// textTabs->Align = alClient;
+// textTabs->Parent = pnlText;
+// logmodstate = true;
+// freshdict = true;
+// if ((maxFiles = atoi(optionsconf->Sections["System"]["MaxFiles"].c_str()))) {
+// FileMgr::systemFileMgr.maxFiles = maxFiles;
+// }
+
+// DefaultVSKey = TOP;
+// DefaultVSKey = "Genesis 1:1";
+// cbBook->Clear();
+/*
+ while (!DefaultVSKey.Error()) {
+ s1 = (const char *)DefaultVSKey;
+ s1.SetLength(s1.Length() - 4);
+ cbBook->Items->Add(s1);
+ DefaultVSKey.Book(DefaultVSKey.Book() + 1);
+ }
+ cbBook->ItemIndex = cbBook->Items->IndexOf("James");
+
+ DefaultVSKey.Persist(1); // when set to a module, make the module hold on to this actual key and not a copy
+ DefaultVSKey = "James 1:19"; // set to our standard starting verse
+ DefaultStrKey.Persist(1);
+ DefaultStrKey = "";
+ Hint = "";
+ ShowHint = true;
+ Application->ShowHint = true;
+ if (SWLog::systemlog)
+ delete SWLog::systemlog;
+ SWLog::systemlog = new SWWinLog(this->Handle); // set the system logger to our MSWindows specific SWLog class
+ layoutconf = new SWConfig("./layout.conf");
+
+ if ((sit = layoutconf->Sections.find("Screen")) != layoutconf->Sections.end()) {
+ if (val = atoi((*sit).second["MainTop"].c_str()))
+ Form1->Top = val;
+ if (val = atoi((*sit).second["MainLeft"].c_str()))
+ Form1->Left = val;
+ if (val = atoi((*sit).second["MainHeight"].c_str()))
+ Form1->Height = val;
+ if (val = atoi((*sit).second["MainWidth"].c_str()))
+ Form1->Width = val;
+ if (val = atoi((*sit).second["TextComHeight"].c_str()))
+ pnlTextCom->Height = val;
+ if (val = atoi((*sit).second["TextWidth"].c_str()))
+ pnlText->Width = val;
+ }
+
+ for (loop = 0; loop < 10; loop++)
+ ctrlstates.insert(ctrlstates.begin(), 0);
+
+ ImageList1->Add(BackBtnImage->Picture->Bitmap, NULL);
+ ImageList1->Add(SearchBtnImage->Picture->Bitmap, NULL);
+ ImageList2->Add(BookmarkBtnImage->Picture->Bitmap, NULL);
+*/
+}
+
+
+//void __fastcall TForm1::CreateWnd() {
+// TForm::CreateWnd();
+
+/*
+ for (it = mainmgr->Modules.begin(); it != mainmgr->Modules.end(); it++) {
+ if (!strcmp((*it).second->Type(), "Biblical Texts")) {
+ font = 0;
+ if ((sit = mainmgr->config->Sections.find((*it).second->Name())) != mainmgr->config->Sections.end()) {
+ if ((eit = (*sit).second.find("Font")) != (*sit).second.end()) {
+ font = (char *)(*eit).second.c_str();
+ }
+ }
+ CreateTextPane((*it).second, font);
+ }
+ if (!strcmp((*it).second->Type(), "Commentaries"))
+ CreateCommentPane((*it).second);
+ if (!strcmp((*it).second->Type(), "Lexicons / Dictionaries"))
+ CreateLDPane((*it).second);
+ }
+*/
+//}
+
+//---------------------------------------------------------------------------
+void __fastcall TForm1::LookupPokeData(TObject *Sender)
+{
+ char buf[255];
+ char *token;
+ ModMap::iterator it;
+
+ strncpy(buf, Lookup->Text.c_str(), 254);
+ buf[254] = 0;
+ token = strtok(buf, " ");
+ if ((it = mainmgr->Modules.find(token)) != mainmgr->Modules.end()) {
+ token = strtok(NULL, "");
+ (*it).second->SetKey(token);
+ Lookup->Text = (const char *)(*(*it).second);
+ }
+ else Lookup->Text = "";
+
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::SearchPokeData(TObject *Sender)
+{
+ char buf[255];
+ char *token;
+ ModMap::iterator it;
+ AnsiString retval = "";
+
+ strncpy(buf, Search->Text.c_str(), 254);
+ buf[254] = 0;
+ token = strtok(buf, " ");
+ if ((it = mainmgr->Modules.find(token)) != mainmgr->Modules.end()) {
+ token = strtok(NULL, "");
+ ListKey &results = (*it).second->Search(token, REG_ICASE);
+ while (!results.Error()) {
+ retval = retval + (const char *)results + "; ";
+ results++;
+ }
+ Search->Text = retval;
+ }
+ else Search->Text = "";
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::UpDown3Click(TObject *Sender, TUDBtnType Button)
+{
+ ModMap::iterator it;
+
+ it = mainmgr->Modules.find(PageControl3->ActivePage->Caption.c_str());
+ if (it != mainmgr->Modules.end()) {
+ if (Button == btNext)
+ (*((*it).second))++;
+ else (*((*it).second))--;
+ DictKeyEdit->Text = ((*it).second)->KeyText();
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::UpDown1Click(TObject *Sender, TUDBtnType Button)
+{
+ btnLookupClick(Sender);
+}
+//---------------------------------------------------------------------------
+
+void TForm1::RestoreState(ModState *state)
+{
+ if (state) {
+ state->pc->ActivePage = state->ap;
+// if ((state->pc == PageControl1) || (state->pc == PageControl2)) {
+// DefaultVSKey = state->key;
+// TextKeyChanged();
+// }
+ if (state->pc == PageControl3) {
+ DictKeyEdit->Text = (const char *)state->key;
+ }
+ if (state->pc->ActivePage->ControlCount)
+ Form1->ActiveControl = (TWinControl *)state->pc->ActivePage->Controls[0];
+ }
+}
+
+
+void __fastcall TForm1::BackbtnClick(TObject *Sender)
+{
+ list <ModState *>::iterator it;
+
+ logmodstate = false;
+ it = modstates.begin();
+ if (it != modstates.end()) {
+ it++;
+
+ if (it != modstates.end()) {
+ RestoreState(*it);
+ delete *modstates.begin();
+ modstates.erase(modstates.begin(), it);
+ }
+ }
+ logmodstate = true;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Button1Click(TObject *Sender)
+{
+/*
+ list <ModState *>::iterator it;
+ ListBox1->Clear();
+ for (it = modstates.begin(); it != modstates.end(); it++) {
+ ListBox1->Items->Add((*it)->ap->Caption.c_str());
+ }
+*/
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::CopyasBGreekTransliteration1Click(TObject *Sender)
+{
+ char *retbuf;
+ int len;
+ TClipboard *clip = new TClipboard();
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ len = rtf->SelText.Length() * 2;
+ retbuf = new char [ len ];
+ if (!Greek2bGreek(retbuf, rtf->SelText.c_str(), len)) {
+ clip->SetTextBuf(retbuf);
+ }
+ delete clip;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Copy1Click(TObject *Sender)
+{
+ int wordstart;
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ if (!rtf->SelLength) {
+ for (wordstart = rtf->SelStart; (wordstart > -1)&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length() - 1) - rtf->SelStart - 1;
+ }
+ rtf->CopyToClipboard();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::BookmarkItemClick(TObject *Sender)
+{
+ TMenuItem *menuchoice = (TMenuItem *)Sender;
+ DefaultVSKey = menuchoice->Caption.c_str();
+ TextKeyChanged();
+}
+
+void __fastcall TForm1::AddBookmark1Click(TObject *Sender)
+{
+// TMenuItem *newitem;
+
+ Bookmarksfrm->bmtree->Items->AddChild(Bookmarksfrm->bmtree->Items->Item[0], (const char *)DefaultVSKey);
+}
+
+void TForm1::AddSectionToMenu(TMenu *menu, TMenuItem *item, TTreeNode *tree)
+{
+ TMenuItem *newitem;
+
+ for (tree = tree->getFirstChild(); tree; tree = tree->getNextSibling()) {
+ newitem = new TMenuItem(menu);
+ newitem->Caption = tree->Text;
+ if (!tree->getFirstChild())
+ newitem->OnClick = BookmarkItemClick;
+ item->Add(newitem);
+ AddSectionToMenu(menu, newitem, tree);
+ }
+}
+
+void TForm1::RefreshBookmarksMenu(TMenu *menu, TTreeView *treeview)
+{
+ TMenuItem *newitem;
+ TTreeNode *tree = 0;
+
+ if (treeview->Items->Count)
+ tree = treeview->Items->Item[0];
+
+ while (menu->Items->Count > 3)
+ menu->Items->Delete(3);
+
+ for (;tree;tree = tree->getNextSibling()) {
+ newitem = new TMenuItem(menu);
+ newitem->Caption = tree->Text;
+ menu->Items->Add(newitem);
+ AddSectionToMenu(menu, newitem, tree);
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::BookmarkbtnClick(TObject *Sender)
+{
+ TPoint menup;
+ TPoint point;
+ point.x = 0;
+ point.y = Bookmarkbtn->Height;
+ menup = Bookmarkbtn->ClientToScreen(point);
+ RefreshBookmarksMenu(BookmarkPopup, Bookmarksfrm->bmtree);
+ BookmarkPopup->Popup(menup.x, menup.y);
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TForm1::EditBookmarks1Click(TObject *Sender)
+{
+ Bookmarksfrm->Show();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
+ TShiftState Shift)
+{
+ char buf[5];
+ int val;
+ ModMap::iterator it;
+ TPageControl *pc = textTabs->pageControl;
+
+ if ((Shift.Contains(ssCtrl)) && (!Shift.Contains(ssAlt))) {
+ if ((Key >= '0') && (Key <= '9')) {
+ sprintf(buf, "%c", Key);
+ val = atoi(buf);
+
+ if (!Shift.Contains(ssShift)) {
+ if ((Screen->ActiveControl == PageControl2) || (IsChild(PageControl2->Handle, Screen->ActiveControl->Handle)))
+ pc = PageControl2;
+ if ((Screen->ActiveControl == PageControl3) || (IsChild(PageControl3->Handle, Screen->ActiveControl->Handle)))
+ pc = PageControl3;
+
+ it = mainmgr->Modules.find(pc->ActivePage->Caption.c_str());
+ if (it != mainmgr->Modules.end()) {
+ if (ctrlstates[val])
+ delete ctrlstates[val];
+
+ ctrlstates[val] = new ModState(pc, pc->ActivePage, (*it).second->KeyText());
+ }
+ }
+ else RestoreState(ctrlstates[val]);
+ }
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Options1Click(TObject *Sender)
+{
+ ModMap::iterator it;
+ SectionMap::iterator sit;
+ ConfigEntMap emap;
+ int color;
+
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ Optionsfrm->CurrentVSColor->Brush->Color = atoi((*sit).second["CurrentVSColorRed"].c_str())
+ | (atoi((*sit).second["CurrentVSColorGreen"].c_str()) << 8)
+ | (atoi((*sit).second["CurrentVSColorBlue"].c_str()) << 16);
+ Optionsfrm->AutoVSColor->Checked = ((atoi((*sit).second["AutoVSColor"].c_str()))?true:false);
+ }
+
+ if ((sit = optionsconf->Sections.find("Bookmarks")) != optionsconf->Sections.end()) {
+ Optionsfrm->AutoBMPersonal->Checked = ((atoi((*sit).second["AutoSavePersonal"].c_str()))?true:false);
+ Optionsfrm->AutoBMOther->Checked = ((atoi((*sit).second["AutoSaveOther"].c_str()))?true:false);
+ }
+
+ if (Optionsfrm->ShowModal() == mrOk) {
+ emap = optionsconf->Sections["Appearance"];
+ color = Optionsfrm->CurrentVSColor->Brush->Color;
+ emap["CurrentVSColorRed"] = IntToStr(color & 0xFF).c_str();
+ emap["CurrentVSColorGreen"] = IntToStr((color >> 8) & 0xFF).c_str();
+ emap["CurrentVSColorBlue"] = IntToStr((color >> 16) & 0xFF).c_str();
+ emap["AutoVSColor"] = IntToStr((Optionsfrm->AutoVSColor->Checked)?1:0).c_str();
+ optionsconf->Sections["Appearance"] = emap;
+
+ emap = optionsconf->Sections["Bookmarks"];
+ emap["AutoSavePersonal"] = IntToStr((Optionsfrm->AutoBMPersonal->Checked)?1:0).c_str();
+ emap["AutoSaveOther"] = IntToStr((Optionsfrm->AutoBMOther->Checked)?1:0).c_str();
+ optionsconf->Sections["Bookmarks"] = emap;
+
+ optionsconf->Save();
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::cbBookChange(TObject *Sender)
+{
+ CHBox->Text = "1";
+ VSBox->Text = "1";
+ if (Screen->ActiveControl == cbBook)
+ btnLookupClick(Sender);
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::PopupMenuPopup(TObject *Sender)
+{
+
+ int versestart, verseend;
+ TMenuItem * newitem;
+ TPopupMenu *menu = (TPopupMenu *)Sender;
+ int staticMenuItemsCount = 0;
+
+ if (menu == PopupMenu1)
+ staticMenuItemsCount = 3;
+ else if (menu == PopupMenu2)
+ staticMenuItemsCount = 2;
+ else if (menu == PopupMenu3)
+ staticMenuItemsCount = 6;
+
+ while (menu->Items->Count > staticMenuItemsCount)
+ menu->Items->Delete(staticMenuItemsCount);
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ if (!rtf->SelLength) {
+ for (versestart = rtf->SelStart; ((versestart)&&(rtf->Text[versestart] != '#')); versestart--);
+ if (versestart) {
+ for (verseend = versestart; ((verseend < rtf->Text.Length())&&(rtf->Text[verseend] != '|')); verseend++);
+ if ((verseend < rtf->Text.Length()) && (verseend > rtf->SelStart)) {
+ int len = (verseend - versestart) + 1;
+ char *buf = new char [ len + 1 ];
+ memset(buf, 0 , len + 1);
+ strncpy(buf, &rtf->Text.c_str()[versestart], len - 2); // strip the # and | from the string
+ tmpVerseList = VerseKey::ParseVerseList(buf, DefaultVSKey);
+
+ ModMap::iterator target;
+ target = mainmgr->Modules.find(((TPageControl*)rtf->Parent->Parent)->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ char *keytext = 0; // check for and remove return at end of keytext
+ stdstr(&keytext, (*(*target).second).KeyText());
+ if (keytext[strlen(keytext)-1] == '\r')
+ keytext[strlen(keytext)-1] = 0;
+
+ tmpVerseListCaption = String("VerseList from- ") + (*target).first.c_str() + ": " + keytext;
+ delete [] keytext; // ---------------------------------
+ }
+ delete [] buf;
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "-";
+ menu->Items->Add(newitem);
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "Create Verse List";
+ newitem->Hint = "Create a New Verse List Window";
+ newitem->Default = true;
+ newitem->OnClick = createVerseList;
+ menu->Items->Add(newitem);
+ versestart = 3;
+ while (!tmpVerseList.Error()) {
+ versestart++;
+ newitem = new TMenuItem(menu);
+ newitem->Caption = (const char *)tmpVerseList;
+ newitem->OnClick = BookmarkItemClick;
+ if (!(versestart%15))
+ newitem->Break = mbBreak;
+ menu->Items->Add(newitem);
+ tmpVerseList++;
+ }
+ }
+ }
+ }
+
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TForm1::createVerseList(TObject *Sender)
+{
+ TVerseListFrm *tmpForm = new TVerseListFrm(this, tmpVerseList);
+ tmpForm->Caption = tmpVerseListCaption;
+ tmpForm->Show();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::freeHandLookupKeyPress(TObject *Sender, char &Key)
+{
+ if (Key == '\r') {
+ ListKey tmpVerseList = VerseKey::ParseVerseList(freeHandLookup->Text.c_str(), DefaultVSKey);
+ if (tmpVerseList.Count() > 1) {
+ TVerseListFrm *tmpForm = new TVerseListFrm(this, tmpVerseList);
+ tmpForm->Caption = "User Verse List";
+ tmpForm->Show();
+ }
+ if (tmpVerseList.Count()) {
+ tmpVerseList = TOP;
+ DefaultVSKey = tmpVerseList;
+ TextKeyChanged();
+ }
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::RTFMouseDown(TObject *Sender, TMouseButton Button,
+ TShiftState Shift, int X, int Y)
+{
+ ((TWinControl *)Sender)->SetFocus();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::EditEntry1Click(TObject *Sender)
+{
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ SWModule *module = 0;
+// EditEntry->RichEdit1->Text = rtf->Text;
+ ModMap::iterator target;
+ target = mainmgr->Modules.find(((TPageControl*)rtf->Parent->Parent)->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ EditEntry->Module = module = (*target).second;
+ EditEntry->RTFDisplay = rtf;
+ }
+ else EditEntry->Module = module = 0;
+ EditEntry->ShowModal();
+ if (EditEntry->ResultBuf) {
+ if (module)
+// DictKeyEdit->Text = EditEntry->ResultBuf; // for testing purposes
+ *module << EditEntry->ResultBuf;
+ }
+ RefreshActiveSheet(PageControl2);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::DeleteEntry1Click(TObject *Sender)
+{
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ SWModule *module = 0;
+ ModMap::iterator target;
+
+ target = mainmgr->Modules.find(((TPageControl*)rtf->Parent->Parent)->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ module = (*target).second;
+ module->Delete();
+ }
+ RefreshActiveSheet(PageControl2);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::LinktoVerse1Click(TObject *Sender)
+{
+ if (VerseSelFrm->ShowModal() == mrOk) {
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ SWModule *module = 0;
+ ModMap::iterator target;
+ SWKey *linkkey = new VerseKey(VerseSelFrm->Panel2->Caption.c_str());
+
+ target = mainmgr->Modules.find(((TPageControl*)rtf->Parent->Parent)->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ module = (*target).second;
+ *module << linkkey;
+ }
+ RefreshActiveSheet(PageControl2);
+ }
+}
+//---------------------------------------------------------------------------
+
+
diff --git a/apps/windoze/CBuilder4/prototype/mainfrm.dfm b/apps/windoze/CBuilder4/prototype/mainfrm.dfm
new file mode 100644
index 0000000..2b4f1e8
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/mainfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/prototype/mainfrm.h b/apps/windoze/CBuilder4/prototype/mainfrm.h
new file mode 100644
index 0000000..b8e7433
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/mainfrm.h
@@ -0,0 +1,238 @@
+//---------------------------------------------------------------------------
+#ifndef mainfrmH
+#define mainfrmH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ExtCtrls.hpp>
+#include <vcl\ComCtrls.hpp>
+#include <swmgr.h>
+#include <swtext.h>
+#include <strkey.h>
+#include <regex.h>
+#include <listkey.h>
+#include "swdisprtfchap.h"
+#include <vcl\Buttons.hpp>
+#include <vcl\Menus.hpp>
+#include <vcl\DdeMan.hpp>
+//#include <NMHTML.hpp>
+#include <OleCtrls.hpp>
+#include <ToolWin.hpp>
+//#include <vcl\isp.hpp>
+#include <shellapi.h>
+#include <Graphics.hpp>
+#include <ImgList.hpp>
+#include <list>
+#include <vector>
+#include "TextPanel.h"
+#include "ModTabPanel.h"
+
+class RTFDisp : public SWDisplay {
+ SWDispRTF *edit;
+public:
+ RTFDisp(SWDispRTF *iedit) { edit = iedit; }
+ RTFDisp() {}
+ char Display(SWModule &imodule) {
+ edit->Display(imodule);
+ }
+};
+
+/*
+class HREFDisp : public SWDisplay {
+ THTML *edit;
+public:
+ HREFDisp(THTML *iedit) { edit = iedit; }
+ HREFDisp() {}
+ char Display(SWModule &imodule) {
+ edit->RequestDoc((char *)imodule);
+ }
+};
+*/
+
+class DispExternal : public SWDisplay {
+public:
+ DispExternal() {}
+ char Display(SWModule &imodule) {
+ SHELLEXECUTEINFO info;
+ info.cbSize = sizeof(SHELLEXECUTEINFO);
+ info.fMask = SEE_MASK_NOCLOSEPROCESS; //SEE_MASK_CLASSNAME;
+ info.hwnd = GetFocus();
+ info.lpVerb = "open";
+ info.lpFile = (char *)imodule;
+ info.lpParameters = NULL;
+ info.lpDirectory = NULL;
+ info.nShow = 0;
+// info.lpClass = ".html";
+ ShellExecuteEx(&info);
+// ShellExecute(edit->Handle, "open", (char *)imodule, NULL, NULL, SW_SHOWNORMAL);
+ }
+};
+
+
+class ModState {
+public:
+ ModState(TPageControl *ipc, TTabSheet *iap, SWKey ikey) { pc = ipc; ap = iap; key = ikey; }
+ ModState();
+ TPageControl *pc;
+ TTabSheet* ap;
+ SWKey key;
+};
+
+//---------------------------------------------------------------------------
+class TForm1 : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *pnlTextCom;
+ TSplitter *Splitter2;
+ TPanel *pnlText;
+ TPanel *pnlComment;
+ TSplitter *Splitter1;
+ TPanel *pnlDict;
+ TPageControl *PageControl2;
+ TStatusBar *StatusBar1;
+ TPageControl *PageControl3;
+
+ TPanel *pnlDictHeader;
+ TLabel *Label1;
+ TRichEdit *DictKeyEdit;
+ TMainMenu *MainMenu1;
+ TMenuItem *Search1;
+ TMenuItem *NewSearchWindow1;
+ TMenuItem *Help1;
+ TMenuItem *About1;
+ TPopupMenu *PopupMenu2;
+ TMenuItem *DictionaryLookup1;
+ TMenuItem *File1;
+ TMenuItem *SaveLayout1;
+ TMenuItem *Exit1;
+ TMenuItem *N1;
+ TDdeServerItem *Search;
+ TDdeServerItem *Lookup;
+ TDdeServerConv *Bible;
+ TPopupMenu *PopupMenu1;
+ TMenuItem *MenuItem1;
+ TMenuItem *Copy1;
+ TMenuItem *CopyasBGreekTransliteration1;
+ TMenuItem *Copy2;
+ TMenuItem *Edit1;
+ TMenuItem *Copy3;
+ TPopupMenu *BookmarkPopup;
+ TMenuItem *AddBookmark1;
+ TMenuItem *N2;
+ TMenuItem *EditBookmarks1;
+ TMenuItem *Options1;
+ TCoolBar *CoolBar1;
+ TImageList *ImageList1;
+ TImage *BackBtnImage;
+ TImage *SearchBtnImage;
+ TToolBar *ToolBar2;
+ TToolButton *ToolButton3;
+ TToolButton *ToolButton4;
+ TPanel *pnlSpeed;
+ TPanel *Panel1;
+ TComboBox *cbBook;
+ TEdit *CHBox;
+ TUpDown *UpDown1;
+ TEdit *VSBox;
+ TUpDown *UpDown2;
+ TSpeedButton *btnLookup;
+ TToolBar *ToolBar1;
+ TImageList *ImageList2;
+ TImage *BookmarkBtnImage;
+ TSpeedButton *Bookmarkbtn;
+ TEdit *freeHandLookup;
+ TPopupMenu *PopupMenu3;
+ TMenuItem *MenuItem2;
+ TMenuItem *MenuItem3;
+ TMenuItem *N3;
+ TMenuItem *EditEntry1;
+ TMenuItem *DeleteEntry1;
+ TMenuItem *LinktoVerse1;
+ TUpDown *UpDown3;
+ void __fastcall PageControl1Change(TObject *Sender);
+ void __fastcall btnLookupClick(TObject *Sender);
+ void __fastcall PageControl2Change(TObject *Sender);
+
+
+
+ void __fastcall DictKeyEditChange(TObject *Sender);
+ void __fastcall PageControl3Change(TObject *Sender);
+ void __fastcall NewSearchWindow1Click(TObject *Sender);
+
+ void __fastcall Exit1Click(TObject *Sender);
+ void __fastcall About1Click(TObject *Sender);
+ void __fastcall DictionaryLookup1Click(TObject *Sender);
+ void __fastcall SaveLayout1Click(TObject *Sender);
+
+ void __fastcall LookupPokeData(TObject *Sender);
+
+ void __fastcall SearchPokeData(TObject *Sender);
+ void __fastcall UpDown3Click(TObject *Sender, TUDBtnType Button);
+ void __fastcall UpDown1Click(TObject *Sender, TUDBtnType Button);
+
+
+ void __fastcall BackbtnClick(TObject *Sender);
+ void __fastcall Button1Click(TObject *Sender);
+ void __fastcall CopyasBGreekTransliteration1Click(TObject *Sender);
+ void __fastcall Copy1Click(TObject *Sender);
+
+
+
+ void __fastcall AddBookmark1Click(TObject *Sender);
+ void __fastcall BookmarkItemClick(TObject *Sender);
+ void __fastcall BookmarkbtnClick(TObject *Sender);
+ void __fastcall EditBookmarks1Click(TObject *Sender);
+
+ void __fastcall FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
+ void __fastcall Options1Click(TObject *Sender);
+ void __fastcall cbBookChange(TObject *Sender);
+
+ void __fastcall FormCreate(TObject *Sender);
+ void __fastcall DisplayHint(TObject* Sender) ;
+ void __fastcall PopupMenuPopup(TObject *Sender);
+ void __fastcall createVerseList(TObject *Sender);
+ void __fastcall freeHandLookupKeyPress(TObject *Sender, char &Key);
+ void __fastcall RTFMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void __fastcall EditEntry1Click(TObject *Sender);
+ void __fastcall DeleteEntry1Click(TObject *Sender);
+ void __fastcall LinktoVerse1Click(TObject *Sender);
+
+private: // User declarations
+ list <SWDisplay *> displays; // so we can delete each display we create
+ list <ModState *> modstates;
+ vector <ModState *> ctrlstates;
+ bool logmodstate;
+ bool freshdict;
+
+ char CreateTextPane(SWModule *mod, char *font = 0);
+ char CreateCommentPane(SWModule *mod);
+ char CreateLDPane(SWModule *mod);
+ void PushState();
+ void BackState();
+ void ForwardState();
+ void BuildRTFHeader(char *buf, char *font, int max);
+ void AddSectionToMenu(TMenu *menu, TMenuItem *item, TTreeNode *tree);
+
+public: // User declarations
+ TModTabPanel *textTabs;
+ VerseKey DefaultVSKey;
+ SWKey DefaultStrKey;
+ SWMgr *mainmgr;
+ SWConfig *layoutconf;
+ SWConfig *optionsconf;
+ __fastcall TForm1(TComponent* Owner);
+ __fastcall ~TForm1();
+// virtual void __fastcall CreateWnd();
+ void RefreshActiveSheet(TPageControl *ts);
+ void TextKeyChanged(); // updates dependents on TextKeyChanged
+ void RefreshBookmarksMenu(TMenu *menu, TTreeView *tree);
+ void RestoreState(ModState *state);
+ ListKey tmpVerseList;
+ String tmpVerseListCaption;
+};
+//---------------------------------------------------------------------------
+extern TForm1 *Form1;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/prototype/mods.conf b/apps/windoze/CBuilder4/prototype/mods.conf
new file mode 100644
index 0000000..aaf29df
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/mods.conf
@@ -0,0 +1,465 @@
+[Globals]
+;AutoInstall=./newmods/
+
+[-+*Personal*+-]
+DataPath=../../../../modules/comments/rawfiles/personal/
+ModDrv=RawFiles
+Description=Personal Commentary
+About=This module allows you to store your own commentary.
+
+[SpanishRVA]
+DataPath=../../../../modules/texts/rawgbf/spanishrva/
+ModDrv=RawGBF
+Description=The New International Version
+About=\qc El texto b¡blico designado RVA es de LA SANTA BIBLIA, \par \
+VERSION REINA-VALERA ACTUALIZADA. Copyright 1982, 1986, \par \
+1987, 1989 de la Casa Bautista de Publicaciones. \par\par \
+Todos los derechos reservados. \par\par \
+El texto computarizado de la RVA para LA BIBLIA COM- \par \
+PUTARIZADA no puede ser modificado ni copiado sin per- \par \
+miso por escrito por la Casa Bautista de Publicaciones. \par\pard \
+
+
+[NASB]
+DataPath=../../../../modules/texts/rawgbf/nasb/
+ModDrv=RawGBF
+Description=The New American Standard Bible
+About=\qc -=+* see the file errata.doc for important verse descrepencies *+=- \par\par \
+The New American Standard Bible \par \
+Copyright THE LOCKMAN FOUNDATION, 1960, 1962, 1963 \par \
+La Habra, Calif. \par \
+All rights in this book are reserved. \par \
+No part may be reproduced in any manner without \par \
+permission in writing from The Lockman Foundation, \par \
+except brief quotations used in connection with \par \
+a review in a magazine or newspaper. \par\pard
+
+
+
+
+[NIV]
+DataPath=../../../../modules/texts/rawgbf/niv/
+ModDrv=RawGBF
+Description=The New International Version
+About=\qc -=+* see the file errata.doc for important verse descrepencies *+=- \par\par\pard \
+Quotations designated (NIV) are from \par\par \
+THE HOLY BIBLE: NEW INTERNATIONAL VERSION®. \par \
+Copyright © 1973, 1978, 1984 by International Bible Society; \
+Zondervan Publishing House. All rights reserved. \par\par \
+The "NIV" and "New International Version" trademarks are registered in \
+the United States Patent and Trademark Office by International Bible \
+Society. \par\par \
+The NIV text may be quoted in any form (written, visual, electronic, or \
+audio), up to and inclusive of five hundred (500) verses or less without \
+written permission, providing the verses quoted do not amount to a \
+complete book of the Bible, do not comprise 25% or more of the total \
+text of the work in which they are quoted, and the verses are not being \
+quoted in a commentary or other Biblical reference work. This \
+permission is contingent upon an appropriate copyright acknowledgment. \par\par \
+The NIV database is not a shareware program and may not be \
+duplicated. \par\par\pard
+
+
+[JFB]
+DataPath=../../../../modules/comments/hrefcom/jfb/
+ModDrv=HREFCom
+Prefix=http://ccel.wheaton.edu/j/jfb/jfb/
+;External=0
+;Prefix=file:///../../../../modules/comments/hrefcom/jfb/
+External=1
+Description=Jamison Faucett Brown Bible Commentary
+About=\qc Jamison Faucett Brown Commentary
+
+
+[Naves]
+DataPath=../../../../modules/lexdict/rawld/naves/naves
+ModDrv=RawLD
+Description=Nave's Topical Bible
+About= -=+* see the file 'naves.doc' for more details *+=-\par\par \
+\qc Nave's Topical Bible \par\par \
+Public Domain -- Copy Freely \par\par\pard \
+ Nave's Topics were originaly produced by Orville J. Nave, A.M., D.D., \
+LL.D. while serving as a Chaplin in the United States Army. He referred \
+to this work as "the result of fourteen years of delightful and untiring \
+study of the Word of God." Nave's topics were originally published in \
+the early 1900's, and a photo-offset reproduction is currently published \
+by Hendrickson, ISBN 0-917006-02-X. The title page states that this \
+work consists of 20,000+ topics and subtopics, and 100,000 references to \
+the Scriptures. \par\par \
+ The most current and correct copies of these files can be obtained from the \
+following. If any errors are located, please ensure you have the latest files, and if so, \
+we would appreciate being informed of the error. \par\par \
+ The Bible Foundation \par \
+ http://www.bf.org \par\par \
+ Or by contacting: \par\par \
+ Mark Fuller \par \
+ 1129 East Loyola Drive \par \
+ Tempe, Arizona, 85282 \par \
+ 602-829-8542 (voice)
+
+[BBE]
+DataPath=../../../../modules/texts/rawtext/bbe/
+ModDrv=RawText
+Description=The Bible in Basic English
+About= \qc -=+* see the file 'bbe.doc' for more details *+=-\par\par \
+1949/1964 Bible In Basic English \par \
+Public Domain -- Copy Freely \par\par\pard \
+The Bible In Basic English was printed in 1965 by Cambridge Press in \
+England. Published without any copyright notice and distributed in \
+America, this work fell immediatly and irretrievably into the Public \
+Domain in the United States according to the UCC convention of that \
+time. A call to Cambridge prior to placing this work in etext resulted \
+in an admission of this fact. \par\par \
+For more information about the text, see the file INTRO.BBE which \
+contains the printed introduction page. \par\par \
+The most current and correct copies of these files can be obtained from \
+the following. If any errors are located, please ensure you have the \
+latest files, and if so, we would appreciate being informed of the \
+error. \par\par \
+ The Bible Foundation \par \
+ http://www.bf.org \par\par \
+Or by contacting: \par \
+ Mark Fuller\par \
+ 1129 East Loyola Drive \par \
+ Tempe, Arizona, 85282 \par \
+ 602-829-8542 (voice)
+
+[IndTB]
+DataPath=../../../../modules/texts/rawtext/indtb/
+ModDrv=RawText
+Description=Indonesian Terjemahan Baru
+About=\qc Terjemahan Baru (TB) \par\par \
+Copyright Lembaga Alkitab Indonesia \par \
+(Indonesian Bible Society), 1994. \par \
+Released for non-profit scholarly and personal use. \par \
+Not to be sold for profit. \par \
+When making formal public reference to the materials, \par \
+please acknowlege The Indonesian Bible Society \par \
+(Lembaga Alkitab Indonesia) as the copyright holder. \par \pard
+
+
+
+[IndBIS]
+DataPath=../../../../modules/texts/rawtext/indbis/
+ModDrv=RawText
+Description=Indonesian Bahasa Indonesia Sehari-hari (BIS)
+About=\qc Bahasa Indonesia Sehari-hari (BIS) \par\par \
+Copyright Lembaga Alkitab Indonesia \par \
+(Indonesian Bible Society), 1994. \par \
+Released for non-profit scholarly and personal use. \par \
+Not to be sold for profit. \par \
+When making formal public reference to the materials, \par \
+please acknowlege The Indonesian Bible Society \par \
+(Lembaga Alkitab Indonesia) as the copyright holder. \par \pard
+
+
+
+[Websters]
+DataPath=../../../../modules/texts/rawtext/websters/
+ModDrv=RawText
+Description=The Webster Bible
+About= -=+* see the files 'intro.txt' and 'revision.txt' for more details *+=-\par\par \
+\qc THE \par HOLY BIBLE, \par CONTAINING THE \par OLD AND NEW TESTAMENTS, \par IN THE \par \
+COMMON VERSION. \par WITH \par AMENDMENTS OF THE LANGUAGE, \par \
+BY NOAH WEBSTER, LL. D. \par\par ------------- \par NEW HAVEN: \par \
+PUBLISHED BY DURRIE & PECK. \par \
+Sold by HEZEKIAH HOWE & CO., and A. H. MALTBY, New Haven; \par \
+and by N.&J. WHITE, New York. \par\par ------ \par 1833 \par\par \
+Webster Bible Electronic Format.\par \
+PUBLIC DOMAIN\par\par \
+February 1992\par\par\pard \
+Webster Biography:\par \
+Noah Webster: America's first grammarian and founding father of American education.\par\par \
+ In 1828 Noah Webster published the 'American Dictionary of the English Language'. This \
+dictionary demonstrates the Christian values which were found in America's educational \
+and scholarly systems. It is from this early dictionary that we have todays popular \
+'Webster Dictionary'. In 1833 Noah Webster, who had mastered 20 languages including \
+Hebrew and Greek, published the King James Authorized Version 'with amendments to the \
+language'. In stating his reasons for producing this version of the Bible, Webster said:\par\par \
+ 'In the present version, the language is, in general, correct and perspicuous; \
+... in many passages uniting sublimity with beautiful simplicity. In my view, the general \
+style of the version ought not to be altered. But, in the lapse of two or three centuries, \
+changes have taken place, which, in particular passages, impair the beauty; in others, \
+obscure the sense, of the original languages. ... they do not present to the reader \
+the Word of God. ... My principal aim is to remedy this evil.'\par\par \
+It was with cautious reverence that Webster corrected misused grammar, removed offensive \
+terms and expressions, and substituted commonly understood words for words that had fallen \
+into disuse, or no longer carried the same meaning.\par\par\
+ In 1834, the year after completing the Webster Bible, Noah Webster wrote a \
+companion piece titled 'Value of the Bible and Excellence of the Christian Religion - For \
+the Use of Families and Schools'.\par\par\
+ Webster, who was considered 'The schoolmaster to a nation' and produced the \
+earliest spellers and textbooks for America's school children, believed Christian religious \
+values and American public education to be inseparable. He believed the Webster Bible to \
+be 'the most important enterprise' of his life, and referred to the Bible as:\par\par \
+ '... the chief moral cause of all that is good, and the best corrector of all that \
+is evil, in human society; the best book for regulating the temporal concerns of men, and \
+the only book that can serve as an infallible guide to future felicity.'\par\par \
+Introduction to the Electronic Format:\par \
+ Beginning in July of 1991 the task of placing the Webster Bible text in electronic \
+format began. The original purpose was to provide Larry Pierce, who produces the \
+On-Line Bible program, with a more modern *public domain* text, similar in content and \
+style to the AV but with a grammar that would provide better comprehension in todays \
+English.\par\par\
+ I plan on maintaining an accurate copy of the Webster text. Anyone finding an \
+error should contact me; Anyone desiring to obtain the latest, most correct text, can find \
+it on the Bible Foundation BBS, or can contact me in the following methods:\par \
+ Internet acus10@waccvm.corp.mot.com\par \
+ Home phone 602-829-8542\par \
+ Address Mark Fuller\par \
+ 1129 East Loyola Drive\par \
+ Tempe Arizona, 85282\par \
+ Bible Foundation http://www.bf.org\par\par \
+ I would like to thank the Bible Foundation not only for scanning nearly the entire \
+Webster Bible but for encouraging me to undertake this monumental work; particularly around \
+page 20 when I realized what I had gotten myself into. Special thanks to Jerry Kingery of \
+the Bible Foundation for scanning, and Jerry Hastings for doing some preliminary scan \
+cleaning and making the texts available on the BBS.
+
+
+[Sve]
+DataPath=../../../../modules/texts/rawtext/sve/
+ModDrv=RawText
+Description=Swedish Bible 1917 New Testament
+About=\qc BIBELN eller DEN HELIGA SKRIFT \par innehållande \par \
+NYA TESTAMENTETS KANONISKA BÖCKER \par i överensstämmelse med den av \par \
+KONUNGEN ÅR 1917 \par gillade och stadfästa översättningen \par\par \
+THE BIBLE or THE HOLY SCRIPT \par containing \par CANONICAL BOOKS OF NEW TESTAMENT \par \
+in conformity with that of \par THE KING YEAR 1917 \par \
+liked and confirmed translation \par\par\pard \
+ Thank you to Roland Nygren for making this work available. For the latest \
+information, to report corrections, or for other correspondence: \par\par \
+ Roland Nygren \par \
+ qtxrony@aom.ericsson.se
+
+[VNT]
+DataPath=../../../../modules/texts/rawtext/vnt/
+ModDrv=RawText
+Description=Valera 1858 Spanish New Testament Text
+About=\qc-=+* see the file 'intro.rtf' for more details *+=- \par\par \
+El \par NUEVO TESTAMENTO \par DE \par NUESTRO SEÑOR JESU-CRISTO \par \
+QUE CONTIENE \par LOS ESCRITOS EVANGÉLICOS Y APOSTÓLICOS \par \
+ANTIGUA VERSION DE CIPRIANO DE VALERA \par REVISADA \par \
+Con arreglo al original griego. \par MADRID \par \
+SE HALLA EN EL DEPÓSITO CENTRAL DE LA SOCIEDAD BÍBLICA B. Y E. \par \
+Calle de Preciados, número 46. \par 1884 \par EL SANTO EVANGELIO \par DE \par \
+NUESTRO SEÑOR JESU-CRISTO \par SEGUN \par SAN MATEO. \par\par \pard \
+ Thank you to Bill Kincaid for making this work available. \
+This New Testament text (Valera 1858) was downloaded from The Word of God in \
+Spanish: Valera 1909 web site. (http://www.west.ga.net/~ForHim/word.html) This text is not \
+copyrighted, you are free to distribute it as you wish. We only ask out of respect for the \
+work we invested in bringing you this text (Finding, scanning, and proofing.), that you \
+leave this notice and the following introduction ([see the file intro.rtf]) in any copies \
+that you might make publish on the Internet. If you have any questions or comments please \
+contact: mnj@acnet.net \par\par \
+ Este texto del Nuevo Testamento (Valera 1858) fue bajado del la pagina de \
+web: La Palabra de Dios en Español: Valera 1909. (http://www.west.ga.net/~ForHim/word.html) \
+ Este texto no tiene derechos reservados, puedes distribuirlo como quieres. Solamente \
+pedimos que por respeto del trabajo que invertimos en dándote este texto (Encontrando, \
+escaneando, y corrigiendo.), que dejes esta noticia y la siguiente introducción \
+(FILE: intro.rtf) en cualquier copia que publicas sobre el Internet. Si tienes cualquier \
+pregunta o comentario por favor escribe a: mnj@acnet.net.
+
+
+[MHC]
+DataPath=../../../../modules/comments/rawcom/mhc/
+ModDrv=RawCom
+Description=Matthew Henry's Commentary on the Whole Bible
+About=\qc Matthew Henry's \par Concise Commentary on the Whole Bible \par\par \
+Public Domain--Copy Freely. \par\par\pard \
+ This text matches the printed edition as published by Moody Press, 28th printing, \
+no Copyright displayed. ISBN: 0-8024-5190-X. This text was created from an existing \
+electronic copy, with roughly 1200 errors corrected. The current files can be \
+found at: \par\par \
+ The Bible Foundation, \par \
+ http://www.bf.org \par\par \
+ If any errors are located, please notify me at the above BBS, or at: \par\par \
+ Mark Fuller \par \
+ 1129 E. Loyola Dr. \par \
+ Tempe, Az. 85282 \par \
+ (602) 829-8542
+
+
+
+[RWP]
+DataPath=../../../../modules/comments/rawcom/rwp/
+ModDrv=RawCom
+Description=Robertson's Word Pictures
+About=\qc -=+* see the files 'about.txt', 'title.pg', 'rwp.int', 'read.me', and \
+'correct.txt' for more details *+=- \par\par \
+ Robertson's \par Word Pictures in the \par New Testament \par\par \
+A.T. Robertson, A.M., D.D., LL. D., Litt.D. \par\par\pard \
+Vol 1,2,3,4 Public Domain -- Copy Freely \par\par Volume 5 (c) 1932. \par \
+Renewal 1960 Broadman Press. All rights reserved. \par Used by permission. \par \
+[Copyright expires Dec. 31, 2006.] \par\par Volume 6 (c) 1933. \par \
+Renewal 1960 Broadman Press. All rights reserved. \par Used by permission. \par \
+[Copyright expires Dec. 31, 2007.] \par\par \
++--------------- Copy Freely --------------+ \par\par \
+ The current files can be found at: \par\par \
+ The Bible Foundation, \par \
+ http://www.bf.org \par\par \
+ If any errors are located, please notify me at the above location, or at: \par\par \
+ Mark Fuller \par \
+ 1129 E. Loyola Dr. \par \
+ Tempe, Az. 85282 \par \
+ (602) 829-8542
+
+
+[Eastons]
+DataPath=../../../../modules/lexdict/rawld/eastons/eastons
+ModDrv=RawLD
+Description=Easton's Bible Dictionary
+About=\qc Easton's 1897 Bible Dictionary \par\par \
+Public Domain -- Copy Freely \par\par\pard \
+ These Dictionary topics are from M.G. Easton M.A., D.D., Illustrated Bible \
+Dictionary, Third Edition, published by Thomas Nelson, 1897. Due to the nature of etext, \
+the illustrated portions of the Dictionary have not been included. \par\par \
+ The most current and correct copies of these files can be obtained from the \
+following. If any errors are located, please ensure you have the latest files, and if so, \
+we would appreciate being informed of the error. \par\par \
+ The Bible Foundation \par \
+ http://www.bf.org \par\par \
+ Or by contacting: \par\par \
+ Mark Fuller \par \
+ 1129 East Loyola Drive \par \
+ Tempe, Arizona, 85282 \par \
+ 602-829-8542 (voice)
+
+[Vines]
+DataPath=../../../../modules/lexdict/rawld/vines/vines
+ModDrv=RawLD
+Description=Vines Bible Dictionary
+About=\qc Vine's Expository Dictionary \par of New Testament Words \par\par \
+Public Domain -- Copy Freely \par\par\pard \
+ These Dictionary topics are from W.E. Vine's M.A., Expository Dictionary of New Testament \
+Words published in 1940 and without copyright. \par\par \
+ The most current and correct copies of these files can be obtained from the \
+following. If any errors are located, please ensure you have the latest files, and if so, \
+we would appreciate being informed of the error. \par\par \
+ The Bible Foundation \par \
+ http://www.bf.org \par\par \
+ Or by contacting: \par\par \
+ Mark Fuller \par \
+ 1129 East Loyola Drive \par \
+ Tempe, Arizona, 85282 \par \
+ 602-829-8542 (voice)
+
+
+[Strongs Hebrew (OT)]
+DataPath=../../../../modules/lexdict/rawld/strongs/hebrew
+ModDrv=RawLD
+Description=Strong's / Englishman's Hebrew Bible Dictionary
+About=\qc Strong's / Englishman's Bible Dictionary \par\par \pard \
+This is a lexicon of Hebrew words keyed off of Strong's numbers.
+
+[Strongs Greek (NT)]
+DataPath=../../../../modules/lexdict/rawld/strongs/greek
+ModDrv=RawLD
+Description=Strong's / Englishman's Greek Bible Dictionary
+About=\qc Strong's / Englishman's Bible Dictionary \par\par \pard \
+This is a lexicon of Greek words keyed off of Strong's numbers.
+
+
+
+[WEB]
+DataPath=../../../../modules/texts/rawgbf/web/
+ModDrv=RawGBF
+Description=The World English Bible
+About= -=+* see the file 'info.txt' for more details *+=-\par\par \
+\qc The World English Bible (WEB) \par\par Public Domain \par\par \pard \
+ The World English Bible is a 1997 revision of the American Standard Version of the \
+Holy Bible, first published in 1901. It is in the Public Domain. Please feel free to copy \
+and distribute it freely. \par\par \
+ Thank you to Michael Paul Johnson for making this work available. For the latest \
+information, to report corrections, or for other correspondence: \par\par \
+ Michael Paul Johnson \par \
+ http://www.ebible.org/bible \par \
+ mpj@ebible.org
+
+
+[ORTHJBC]
+DataPath=../../../../modules/texts/rawtext/orthjbc/
+ModDrv=RawText
+Description=The Orthodox Jewish Brit Chadasha
+About= \qc THE ORTHODOX JEWISH BRIT CHADASHA \par\par \pard \
+ A translation from the original language without goyishe and non-frum \
+terminology. \par\par \
+(C)COPYRIGHT, 1996, ARTISTS FOR ISRAEL INTERNATIONAL \par \
+ALL RIGHTS RESERVED \par \
+USED BY PERMISSION \par\par \
+ Thank you to Dr. Phil Goble for making this work available. This work is NOT in \
+the public domain. Please honor all applicable copyright laws. Permission to distribute \
+this text in its present electronic format for personal use has been granted by the \
+copyright holder. \par\par \
+ Please direct all correspondence to: \par\par \
+ Artists for Israel International \par \
+ http://www.afii.org \par \
+ P. O. Box 2056 \par \
+ New York, NY 10163
+
+
+
+[N27U4]
+DataPath=../../../../modules/texts/rawtext/nu/
+ModDrv=RawText
+Font=Greek
+Description=Nestle Aland 27th Ed./ UBS 4th Ed. Greek Text
+About= \qc Thank you to Barbara Aland, Kurt Aland, Johannes Karavidopoulos, Carlo M. \
+Martini, and Bruce M. Metzger for bringing this work to us. \par\par \pard \
+GREEK.TTF Greek Regular Font (C) Peter J. Gentry & Andrew M. Fountain, 1993. All Rights \
+Reserved. Special thanks to the copyright holders for permission to use these fonts with \
+The SWORD Project for personal use. For a complete list of Greek / Hebrew Utilities or \
+inquiries for other use may be directed to: \par\par \
+ Peter J. Gentry \par \
+ 55 Ambercroft Blvd. \par \
+ Scarborough \par \
+ Ontario, Canada \par \
+ M1W 2Z6
+
+
+[KJV]
+DataPath=../../../../modules/texts/rawtext/kjv/
+ModDrv=RawText
+Description=King James Version of 1611
+About= -=+* see the file 'kjvpref.rtf' for more details *+=-\par\par \
+ This is the King James Version of the Holy Bible (also known as the Authorized \
+Version) in Rich Text Format (among others, italics and red included). The preface from \
+the translators is in KJVPREF.RTF. These files are in the Public Domain. \par\par \
+ May God bless you as you study His Word. \par \
+ Michael Paul Johnson \par \
+ Sysop, Colorado Catacombs BBS (303-772-1062) \par \
+ email: mpj@csn.net \par \
+ http://www.csn.net/~mpj
+
+
+
+
+[KJVSTR]
+DataPath=../../../../modules/texts/rawtext/kjvstr/
+ModDrv=RawText
+Description=King James Version of 1611 w/ Strongs Numbers
+About= This is the King James Version of the Holy Bible (also known as the Authorized \
+Version) with embedded Strong's Numbers. This makes useful for looking up the exact \
+original language word in a lexicon that is keyed off of Strong's numbers. \par\par \
+Special thanks to Larry Pierce for extensive work encorporating the embedded \
+Strong's numbers in this module. This feature is not in the public domain. \
+Permission to use this feature for personal use has been granted by the author. \par \
+Inquiries and comments may be directed to: \par\par \
+ Larry Pierce \par \
+ 103526.2724@compuserve.com \par \
+ http://www.online-bible.com
+
+[FrenchLSG]
+DataPath=../../../../modules/texts/rawgbf/frenchlsg/
+ModDrv=RawGBF
+Description=French 1910 Louis Segond Version
+About=The 1910 edition of the Louis Segond Bible is keyed to Strong's numbers. \
+All this material may be freely copied and shared with your friends. \
+If you wish to use this material for other purposes, please contact: \par\par \
+ Stg. Publishare \par \
+ c/o Transvaalstraat 5 \par \
+ 3312 EX DORDRECHT \par \
+ The Netherlands \par\par \
+to obtain the latest accurate copy. The Englishman Strong's numbers are \
+not in the public domain and any commercial use requires a licence.
+
diff --git a/apps/windoze/CBuilder4/prototype/newbmfilefrm.cpp b/apps/windoze/CBuilder4/prototype/newbmfilefrm.cpp
new file mode 100644
index 0000000..c611804
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/newbmfilefrm.cpp
@@ -0,0 +1,14 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "newbmfilefrm.h"
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TNewBMfrm *NewBMfrm;
+//---------------------------------------------------------------------------
+__fastcall TNewBMfrm::TNewBMfrm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//--------------------------------------------------------------------------- \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/prototype/newbmfilefrm.dfm b/apps/windoze/CBuilder4/prototype/newbmfilefrm.dfm
new file mode 100644
index 0000000..1e88bcd
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/newbmfilefrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/prototype/newbmfilefrm.h b/apps/windoze/CBuilder4/prototype/newbmfilefrm.h
new file mode 100644
index 0000000..9b4c017
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/newbmfilefrm.h
@@ -0,0 +1,27 @@
+//---------------------------------------------------------------------------
+#ifndef newbmfilefrmH
+#define newbmfilefrmH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+//---------------------------------------------------------------------------
+class TNewBMfrm : public TForm
+{
+__published: // IDE-managed Components
+ TLabel *Label1;
+ TEdit *bmfile;
+ TEdit *bmtitle;
+ TLabel *Label2;
+ TButton *Button1;
+ TButton *Button2;
+private: // User declarations
+public: // User declarations
+ __fastcall TNewBMfrm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TNewBMfrm *NewBMfrm;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/prototype/optionfrm.cpp b/apps/windoze/CBuilder4/prototype/optionfrm.cpp
new file mode 100644
index 0000000..8af047a
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/optionfrm.cpp
@@ -0,0 +1,20 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "optionfrm.h"
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TOptionsfrm *Optionsfrm;
+//---------------------------------------------------------------------------
+__fastcall TOptionsfrm::TOptionsfrm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TOptionsfrm::ChooseColorbtnClick(TObject *Sender)
+{
+ ColorDialog1->Execute();
+ CurrentVSColor->Brush->Color = ColorDialog1->Color;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/prototype/optionfrm.dfm b/apps/windoze/CBuilder4/prototype/optionfrm.dfm
new file mode 100644
index 0000000..0b20318
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/optionfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/prototype/optionfrm.h b/apps/windoze/CBuilder4/prototype/optionfrm.h
new file mode 100644
index 0000000..1ea8f08
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/optionfrm.h
@@ -0,0 +1,39 @@
+//---------------------------------------------------------------------------
+#ifndef optionfrmH
+#define optionfrmH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ExtCtrls.hpp>
+#include <vcl\Dialogs.hpp>
+//---------------------------------------------------------------------------
+class TOptionsfrm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TGroupBox *GroupBox1;
+ TCheckBox *AutoBMPersonal;
+ TCheckBox *AutoBMOther;
+ TGroupBox *GroupBox2;
+ TCheckBox *AutoVSColor;
+ TShape *CurrentVSColor;
+ TColorDialog *ColorDialog1;
+ TButton *ChooseColorbtn;
+ TPanel *Panel2;
+ TButton *Button1;
+ TPanel *Panel3;
+ TButton *Button2;
+ TLabel *Label1;
+ void __fastcall ChooseColorbtnClick(TObject *Sender);
+
+private: // User declarations
+public: // User declarations
+ __fastcall TOptionsfrm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TOptionsfrm *Optionsfrm;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/prototype/options.conf b/apps/windoze/CBuilder4/prototype/options.conf
new file mode 100644
index 0000000..db0e4ce
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/options.conf
@@ -0,0 +1,15 @@
+
+[Appearance]
+AutoVSColor=1
+CurrentVSColorBlue=255
+CurrentVSColorGreen=128
+CurrentVSColorRed=0
+
+[Bookmarks]
+AutoSaveOther=1
+AutoSavePersonal=1
+Directory=
+
+[System]
+MaxFiles=40
+
diff --git a/apps/windoze/CBuilder4/prototype/search.bmp b/apps/windoze/CBuilder4/prototype/search.bmp
new file mode 100644
index 0000000..ee693be
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/search.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/prototype/searchfrm.cpp b/apps/windoze/CBuilder4/prototype/searchfrm.cpp
new file mode 100644
index 0000000..c5b29b2
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/searchfrm.cpp
@@ -0,0 +1,95 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "searchfrm.h"
+#include <listkey.h>
+#include "mainfrm.h"
+#include <regex.h>
+
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TForm2 *Form2;
+//---------------------------------------------------------------------------
+__fastcall TForm2::TForm2(TComponent* Owner)
+ : TForm(Owner)
+{
+ pvrtf = new SWDispRTF(this);
+
+ pvrtf->Parent = plPreview;
+ pvrtf->Align = alClient;
+ pvrtf->ScrollBars = ssVertical;
+ pvrtf->ReadOnly = true;
+// pvrtf->PopupMenu = PopupMenu2;
+
+// mod->Disp(*displays.insert(displays.begin(), new RTFDisp(newrtf)));
+// mod->SetKey(DefaultVSKey);
+// return 0;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm2::Button1Click(TObject *Sender)
+{
+// ModMap::iterator target;
+ class TWaitCursor {
+ public:
+ TWaitCursor() : oldc(Screen->Cursor) { Screen->Cursor = crHourGlass; }
+ ~TWaitCursor() { Screen->Cursor = oldc; }
+ private:
+ TCursor oldc;
+ } wait; // show hourglass
+
+ Caption = "";
+
+
+ targetpc = Form1->textTabs->pageControl;
+
+ if ((Form1->ActiveControl == Form1->PageControl2) || (IsChild(Form1->PageControl2->Handle, Form1->ActiveControl->Handle)))
+ targetpc = Form1->PageControl2;
+ if ((Form1->ActiveControl == Form1->PageControl3) || (IsChild(Form1->PageControl3->Handle, Form1->ActiveControl->Handle)))
+ targetpc = Form1->PageControl3;
+
+
+ target = Form1->mainmgr->Modules.find(targetpc->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ Caption = Caption + "Searching [" + (*target).first.c_str() + "]...";
+ ListBox1->Clear();
+ int searchType;
+ switch (searchTypeGroup->ItemIndex) {
+ case 0: searchType = -2; break;
+ case 1: searchType = -1; break;
+ case 2: searchType = 0; break;
+ }
+ int searchOptions = (CheckBox2->Checked) ? 0 : REG_ICASE;
+ ListKey &results = (*target).second->Search(SearchText->Text.c_str(), searchType, searchOptions);
+ while (!results.Error()) {
+ ListBox1->Items->Add((const char *)results);
+ results++;
+ }
+// ListBox1->Items->Pack(); // so Count is set correctly (per helpfile)
+ Caption = "";
+ Caption = Caption + "Results from [" + (*target).first.c_str() + "] (" + ListBox1->Items->Count + ((ListBox1->Items->Count == 1) ? " match)" : " matches)");
+ }
+ else Caption = "Error finding target module";
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm2::ListBox1DblClick(TObject *Sender)
+{
+ if (targetpc == Form1->PageControl3) {
+ Form1->DictKeyEdit->Text = ListBox1->Items->Strings[ListBox1->ItemIndex].c_str();
+ }
+ else {
+ Form1->DefaultVSKey = ListBox1->Items->Strings[ListBox1->ItemIndex].c_str();
+ Form1->TextKeyChanged();
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm2::ListBox1Click(TObject *Sender)
+{
+ if (target != Form1->mainmgr->Modules.end()) {
+ SWKey *savekey = *(*target).second;
+ (*target).second->SetKey(ListBox1->Items->Strings[ListBox1->ItemIndex].c_str());
+ pvrtf->Display(*(*target).second);
+ (*target).second->SetKey(*savekey);
+ }
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/prototype/searchfrm.dfm b/apps/windoze/CBuilder4/prototype/searchfrm.dfm
new file mode 100644
index 0000000..9c366d8
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/searchfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/prototype/searchfrm.h b/apps/windoze/CBuilder4/prototype/searchfrm.h
new file mode 100644
index 0000000..a50ee44
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/searchfrm.h
@@ -0,0 +1,44 @@
+//---------------------------------------------------------------------------
+#ifndef searchH
+#define searchH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ExtCtrls.hpp>
+#include "mainfrm.h"
+#include <swmgr.h>
+//---------------------------------------------------------------------------
+class TForm2 : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TPanel *Panel2;
+ TListBox *ListBox1;
+ TPanel *Panel3;
+ TMemo *SearchText;
+ TPanel *plPreview;
+ TRadioGroup *searchTypeGroup;
+ TGroupBox *GroupBox1;
+ TCheckBox *CheckBox2;
+ TPanel *Panel4;
+ TButton *Button1;
+ TSplitter *Splitter1;
+ void __fastcall Button1Click(TObject *Sender);
+ void __fastcall ListBox1DblClick(TObject *Sender);
+ void __fastcall ListBox1Click(TObject *Sender);
+private: // User declarations
+ SWDispRTF *pvrtf;
+public: // User declarations
+ ModMap::iterator target;
+ TPageControl *targetpc;
+// AnsiString CapText;
+
+ __fastcall TForm2(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TForm2 *Form2;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/prototype/sword.bpr b/apps/windoze/CBuilder4/prototype/sword.bpr
new file mode 100644
index 0000000..b913721
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/sword.bpr
@@ -0,0 +1,223 @@
+# ---------------------------------------------------------------------------
+!if !$d(BCB)
+BCB = $(MAKEDIR)\..
+!endif
+
+# ---------------------------------------------------------------------------
+# IDE SECTION
+# ---------------------------------------------------------------------------
+# The following section of the project makefile is managed by the BCB IDE.
+# It is recommended to use the IDE to change any of the values in this
+# section.
+# ---------------------------------------------------------------------------
+
+VERSION = BCB.04.04
+# ---------------------------------------------------------------------------
+PROJECT = sword.exe
+OBJFILES = sword.obj mainfrm.obj ModInstForm.obj ..\..\swdisprtf.obj \
+ ..\..\swdisprtfchap.obj ..\..\swwinlog.obj ..\..\tbdisp.obj searchfrm.obj \
+ editentryfrm.obj biblecsmgr.obj bookmarkfrm.obj AboutBoxfrm.obj optionfrm.obj \
+ vrslstfrm.obj versesel.obj newbmfilefrm.obj CommentPanel.obj ModTabPanel.obj \
+ AppBar.obj \
+ "..\..\..\..\..\..\..\Program Files\Common Files\Borland Shared\Images\Buttons\DockCanvas.obj" \
+ BookMarkPanel.obj TextPanel.obj LDPanel.obj DeskTopNameForm.obj
+RESFILES = sword.res
+RESDEPEN = $(RESFILES) mainfrm.dfm ModInstForm.dfm searchfrm.dfm editentryfrm.dfm \
+ bookmarkfrm.dfm AboutBoxfrm.dfm optionfrm.dfm vrslstfrm.dfm versesel.dfm \
+ newbmfilefrm.dfm AppBar.dfm \
+ "..\..\..\..\..\..\..\Program Files\Common Files\Borland Shared\Images\Buttons\DockCanvas.dfm" \
+ DeskTopNameForm.dfm
+LIBFILES = swordlib.lib
+IDLGENFILES =
+IDLFILES =
+LIBRARIES = dclusr40.lib Vclx40.lib Vcl40.lib
+SPARELIBS = Vcl40.lib Vclx40.lib dclusr40.lib
+PACKAGES = Vcl40.bpi Vclx40.bpi vcljpg40.bpi Vclmid40.bpi Vcldb40.bpi bcbsmp40.bpi \
+ vcldbx40.bpi Qrpt40.bpi TeeUI40.bpi teedb40.bpi tee40.bpi Dss40.bpi ibsmp40.bpi \
+ NMFast40.bpi Inetdb40.bpi Inet40.bpi dclocx40.bpi
+DEFFILE =
+# ---------------------------------------------------------------------------
+PATHCPP = .;..\..;..\..\..\..\..\..\..\Program Files\Common Files\Borland \
+ Shared\Images\Buttons
+PATHASM = .;
+PATHPAS = .;
+PATHRC = .;
+DEBUGLIBPATH = $(BCB)\lib\debug
+RELEASELIBPATH = $(BCB)\lib\release
+USERDEFINES =
+SYSDEFINES = NO_STRICT
+# ---------------------------------------------------------------------------
+CFLAG1 = -I"..\..\..\..\..\..\..\Program Files\Common Files\Borland Shared\Images\Buttons";..\..;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include \
+ -O2 -Hc -H=$(BCB)\lib\vcl40.csm -w -Ve -a8 -k- -vi- -c -b- -w-par -w-inl -Vx \
+ -tW -tWM -D$(SYSDEFINES);$(USERDEFINES)
+IDLCFLAGS = -I"..\..\..\..\..\..\..\Program Files\Common Files\Borland Shared\Images\Buttons" \
+ -I..\.. -I$(BCB)\include -I$(BCB)\include\vcl -I..\..\..\..\include \
+ -src_suffixcpp
+PFLAGS = -U"..\..\..\..\..\..\..\Program Files\Common Files\Borland Shared\Images\Buttons";$(BCB)\Projects\Lib;"..\..\..\..\..\..\..\program files\borland\cbuilder4\Lib";..\..;$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) \
+ -I"..\..\..\..\..\..\..\Program Files\Common Files\Borland Shared\Images\Buttons";..\..;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include \
+ -$Y- -$L- -$D- -v -JPHNE -M
+RFLAGS = -i"..\..\..\..\..\..\..\Program Files\Common Files\Borland Shared\Images\Buttons";..\..;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
+AFLAGS = /i"..\..\..\..\..\..\..\Program Files\Common Files\Borland Shared\Images\Buttons" \
+ /i..\.. /i$(BCB)\include /i$(BCB)\include\vcl /i..\..\..\..\include /mx /w2 /zn
+LFLAGS = -L"..\..\..\..\..\..\..\Program Files\Common Files\Borland Shared\Images\Buttons";$(BCB)\Projects\Lib;"..\..\..\..\..\..\..\program files\borland\cbuilder4\Lib";..\..;$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) \
+ -aa -Tpe -x -Gn
+# ---------------------------------------------------------------------------
+ALLOBJ = c0w32.obj sysinit.obj $(OBJFILES)
+ALLRES = $(RESFILES)
+ALLLIB = $(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib
+# ---------------------------------------------------------------------------
+!ifdef IDEOPTIONS
+
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+Count=3
+Item0=..\..\..\..\..\..\..\Program Files\Common Files\Borland Shared\Images\Buttons;..\..;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
+Item1=..\..;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
+Item2=$(BCB)\include;$(BCB)\include\vcl;../../../../include
+
+[HistoryLists\hlLibraryPath]
+Count=3
+Item0=..\..\..\..\..\..\..\Program Files\Common Files\Borland Shared\Images\Buttons;$(BCB)\Projects\Lib;..\..\..\..\..\..\..\program files\borland\cbuilder4\Lib;..\..;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..\..;$(BCB)\lib\obj;$(BCB)\lib
+Item2=$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+InMemoryExe=0
+ShowInfoMsgs=0
+
+[CORBA]
+AddServerUnit=1
+AddClientUnit=1
+PrecompiledHeaders=1
+
+!endif
+
+# ---------------------------------------------------------------------------
+# MAKE SECTION
+# ---------------------------------------------------------------------------
+# This section of the project file is not used by the BCB IDE. It is for
+# the benefit of building from the command-line using the MAKE utility.
+# ---------------------------------------------------------------------------
+
+.autodepend
+# ---------------------------------------------------------------------------
+!if !$d(BCC32)
+BCC32 = bcc32
+!endif
+
+!if !$d(CPP32)
+CPP32 = cpp32
+!endif
+
+!if !$d(DCC32)
+DCC32 = dcc32
+!endif
+
+!if !$d(TASM32)
+TASM32 = tasm32
+!endif
+
+!if !$d(LINKER)
+LINKER = ilink32
+!endif
+
+!if !$d(BRCC32)
+BRCC32 = brcc32
+!endif
+
+!if !$d(IDL2CPP)
+IDL2CPP = idl2cpp
+!endif
+
+# ---------------------------------------------------------------------------
+!if $d(PATHCPP)
+.PATH.CPP = $(PATHCPP)
+.PATH.C = $(PATHCPP)
+!endif
+
+!if $d(PATHPAS)
+.PATH.PAS = $(PATHPAS)
+!endif
+
+!if $d(PATHASM)
+.PATH.ASM = $(PATHASM)
+!endif
+
+!if $d(PATHRC)
+.PATH.RC = $(PATHRC)
+!endif
+# ---------------------------------------------------------------------------
+$(PROJECT): $(IDLGENFILES) $(OBJFILES) $(RESDEPEN) $(DEFFILE)
+ $(BCB)\BIN\$(LINKER) @&&!
+ $(LFLAGS) +
+ $(ALLOBJ), +
+ $(PROJECT),, +
+ $(ALLLIB), +
+ $(DEFFILE), +
+ $(ALLRES)
+!
+# ---------------------------------------------------------------------------
+.pas.hpp:
+ $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
+
+.pas.obj:
+ $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
+
+.cpp.obj:
+ $(BCB)\BIN\$(BCC32) $(CFLAG1) -n$(@D) {$< }
+
+.c.obj:
+ $(BCB)\BIN\$(BCC32) $(CFLAG1) -n$(@D) {$< }
+
+.c.i:
+ $(BCB)\BIN\$(CPP32) $(CFLAG1) -n. {$< }
+
+.cpp.i:
+ $(BCB)\BIN\$(CPP32) $(CFLAG1) -n. {$< }
+
+.asm.obj:
+ $(BCB)\BIN\$(TASM32) $(AFLAGS) $<, $@
+
+.rc.res:
+ $(BCB)\BIN\$(BRCC32) $(RFLAGS) -fo$@ $<
+# ---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/prototype/sword.cpp b/apps/windoze/CBuilder4/prototype/sword.cpp
new file mode 100644
index 0000000..e6faae7
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/sword.cpp
@@ -0,0 +1,46 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+USERES("sword.res");
+USEFORM("mainfrm.cpp", Form1);
+USELIB("swordlib.lib");
+USEFORM("ModInstForm.cpp", ModInstFrm);
+USEUNIT("..\..\swdisprtf.cpp");
+USEUNIT("..\..\swdisprtfchap.cpp");
+USEUNIT("..\..\swwinlog.cpp");
+USEUNIT("..\..\tbdisp.cpp");
+USEFORM("searchfrm.cpp", Form2);
+USEFORM("editentryfrm.cpp", EditEntry);
+USEUNIT("biblecsmgr.cpp");
+USEFORM("bookmarkfrm.cpp", Bookmarksfrm);
+USEFORM("AboutBoxfrm.cpp", AboutBox);
+USEFORM("optionfrm.cpp", Optionsfrm);
+USEFORM("vrslstfrm.cpp", VerseListFrm);
+USEFORM("versesel.cpp", VerseSelFrm);
+USEFORM("newbmfilefrm.cpp", NewBMfrm);
+USEUNIT("CommentPanel.cpp");
+USEUNIT("ModTabPanel.cpp");
+USEFORM("AppBar.cpp", AppBarFrm);
+USEFORM("..\..\..\..\..\..\..\Program Files\Common Files\Borland Shared\Images\Buttons\DockCanvas.cpp", DockCanvasFrm);
+USEUNIT("BookMarkPanel.cpp");
+USEUNIT("TextPanel.cpp");
+USEUNIT("LDPanel.cpp");
+USEFORM("DeskTopNameForm.cpp", DeskTopNameFrm);
+//---------------------------------------------------------------------------
+WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
+{
+ try
+ {
+ Application->Initialize();
+ Application->CreateForm(__classid(TAppBarFrm), &AppBarFrm);
+ Application->CreateForm(__classid(TDeskTopNameFrm), &DeskTopNameFrm);
+ Application->Run();
+ }
+ catch (Exception &exception)
+ {
+ Application->ShowException(&exception);
+ }
+ return 0;
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder4/prototype/sword.res b/apps/windoze/CBuilder4/prototype/sword.res
new file mode 100644
index 0000000..32b522d
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/sword.res
Binary files differ
diff --git a/apps/windoze/CBuilder4/prototype/swordlib.bpr b/apps/windoze/CBuilder4/prototype/swordlib.bpr
new file mode 100644
index 0000000..55d34f7
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/swordlib.bpr
@@ -0,0 +1,214 @@
+# ---------------------------------------------------------------------------
+!if !$d(BCB)
+BCB = $(MAKEDIR)\..
+!endif
+
+# ---------------------------------------------------------------------------
+# IDE SECTION
+# ---------------------------------------------------------------------------
+# The following section of the project makefile is managed by the BCB IDE.
+# It is recommended to use the IDE to change any of the values in this
+# section.
+# ---------------------------------------------------------------------------
+
+VERSION = BCB.04.04
+# ---------------------------------------------------------------------------
+PROJECT = swordlib.lib
+OBJFILES = swordlib.obj ..\..\..\..\src\mgr\swmgr.obj ..\..\..\..\src\mgr\swconfig.obj \
+ ..\..\..\..\src\mgr\filemgr.obj ..\..\..\..\src\keys\versekey.obj \
+ ..\..\..\..\src\keys\swkey.obj ..\..\..\..\src\keys\listkey.obj \
+ ..\..\..\..\src\keys\strkey.obj ..\..\..\..\src\utilfuns\utilstr.obj \
+ ..\..\..\..\src\utilfuns\utilconf.obj ..\..\..\..\src\utilfuns\Greek2Greek.obj \
+ ..\..\..\..\src\frontend\swlog.obj ..\..\..\..\src\frontend\swdisp.obj \
+ ..\..\..\..\src\modules\common\rawstr.obj \
+ ..\..\..\..\src\modules\common\rawverse.obj \
+ ..\..\..\..\src\modules\common\swcomprs.obj \
+ ..\..\..\..\src\modules\comments\swcom.obj \
+ ..\..\..\..\src\modules\comments\hrefcom\hrefcom.obj \
+ ..\..\..\..\src\modules\comments\rawcom\rawcom.obj \
+ ..\..\..\..\src\modules\comments\rawfiles\rawfiles.obj \
+ ..\..\..\..\src\modules\filters\rwprtf.obj \
+ ..\..\..\..\src\modules\filters\gbfrtf.obj \
+ ..\..\..\..\src\modules\filters\gbfplain.obj \
+ ..\..\..\..\src\modules\lexdict\swld.obj \
+ ..\..\..\..\src\modules\lexdict\rawld\rawld.obj \
+ ..\..\..\..\src\modules\texts\swtext.obj \
+ ..\..\..\..\src\modules\texts\rawgbf\rawgbf.obj \
+ ..\..\..\..\src\modules\texts\rawtext\rawtext.obj \
+ ..\..\..\..\src\modules\swmodule.obj
+DEFFILE =
+LIBFILES =
+RESDEPEN = $(RESFILES)
+RESFILES =
+IDLGENFILES =
+IDLFILES =
+LIBRARIES = Vcl40.lib
+SPARELIBS = Vcl40.lib
+PACKAGES =
+# ---------------------------------------------------------------------------
+PATHCPP = .;..\..\..\..\src\mgr;..\..\..\..\src\keys;..\..\..\..\src\utilfuns;..\..\..\..\src\frontend;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules
+PATHASM = .;
+PATHPAS = .;
+PATHRC = .;
+USERDEFINES =
+SYSDEFINES =NO_STRICT
+# ---------------------------------------------------------------------------
+CFLAG1 = -I..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\common;..\..\..\..\src\modules;..\..\..\..\src\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\keys;..\..\..\..\src\mgr;..\..\..\..\include;$(BCB)\include;$(BCB)\include\vcl \
+ -O2 -Hc -H=$(BCB)\lib\vcl40.csm -w -Ve -a8 -k- -vi- -c -b- -w-par -w-inl -Vx \
+ -tWM -D$(SYSDEFINES);$(USERDEFINES)
+IDLCFLAGS = -I..\..\..\..\src\modules\texts\rawtext -I..\..\..\..\src\modules\texts\rawgbf \
+ -I..\..\..\..\src\modules\texts -I..\..\..\..\src\modules\lexdict\rawld \
+ -I..\..\..\..\src\modules\lexdict -I..\..\..\..\src\modules\filters \
+ -I..\..\..\..\src\modules\comments\rawfiles \
+ -I..\..\..\..\src\modules\comments\rawcom \
+ -I..\..\..\..\src\modules\comments\hrefcom -I..\..\..\..\src\modules\comments \
+ -I..\..\..\..\src\modules\common -I..\..\..\..\src\modules \
+ -I..\..\..\..\src\frontend -I..\..\..\..\src\utilfuns -I..\..\..\..\src\keys \
+ -I..\..\..\..\src\mgr -I..\..\..\..\include -I$(BCB)\include \
+ -I$(BCB)\include\vcl -src_suffixcpp
+PFLAGS = -U..\..\..\..\src\modules;$(DEBUGLIBPATH) \
+ -I..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\common;..\..\..\..\src\modules;..\..\..\..\src\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\keys;..\..\..\..\src\mgr;..\..\..\..\include;$(BCB)\include;$(BCB)\include\vcl \
+ -$Y- -$L- -$D- -v -JPHN -M
+AFLAGS = /i..\..\..\..\src\modules\texts\rawtext /i..\..\..\..\src\modules\texts\rawgbf \
+ /i..\..\..\..\src\modules\texts /i..\..\..\..\src\modules\lexdict\rawld \
+ /i..\..\..\..\src\modules\lexdict /i..\..\..\..\src\modules\filters \
+ /i..\..\..\..\src\modules\comments\rawfiles \
+ /i..\..\..\..\src\modules\comments\rawcom \
+ /i..\..\..\..\src\modules\comments\hrefcom /i..\..\..\..\src\modules\comments \
+ /i..\..\..\..\src\modules\common /i..\..\..\..\src\modules \
+ /i..\..\..\..\src\frontend /i..\..\..\..\src\utilfuns /i..\..\..\..\src\keys \
+ /i..\..\..\..\src\mgr /i..\..\..\..\include /i$(BCB)\include \
+ /i$(BCB)\include\vcl /mx /w2 /zn
+RFLAGS = -i..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\common;..\..\..\..\src\modules;..\..\..\..\src\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\keys;..\..\..\..\src\mgr;..\..\..\..\include;$(BCB)\include;$(BCB)\include\vcl
+LFLAGS = /P64
+# ---------------------------------------------------------------------------
+ALLOBJ = $(OBJFILES)
+# ---------------------------------------------------------------------------
+!ifdef IDEOPTIONS
+
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+Count=3
+Item0=..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\common;..\..\..\..\src\modules;..\..\..\..\src\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\keys;..\..\..\..\src\mgr;..\..\..\..\include;$(BCB)\include;$(BCB)\include\vcl
+Item1=..\..\..\..\src\keys;..\..\..\..\src\mgr;..\..\..\..\include;$(BCB)\include;$(BCB)\include\vcl
+Item2=..\..\..\..\include;$(BCB)\include;$(BCB)\include\vcl
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+InMemoryExe=0
+ShowInfoMsgs=0
+
+[CORBA]
+AddServerUnit=1
+AddClientUnit=1
+PrecompiledHeaders=1
+
+!endif
+
+# ---------------------------------------------------------------------------
+# MAKE SECTION
+# ---------------------------------------------------------------------------
+# This section of the project makefile is not used by the BCB IDE. It is for
+# the benefit of building from the command-line using the MAKE utility.
+# ---------------------------------------------------------------------------
+
+.autodepend
+# ---------------------------------------------------------------------------
+!if !$d(BCC32)
+BCC32 = bcc32
+!endif
+
+!if !$d(CPP32)
+CPP32 = cpp32
+!endif
+
+!if !$d(DCC32)
+DCC32 = dcc32
+!endif
+
+!if !$d(TASM32)
+TASM32 = tasm32
+!endif
+
+!if !$d(LINKER)
+LINKER = TLib
+!endif
+# ---------------------------------------------------------------------------
+!if $d(PATHCPP)
+.PATH.CPP = $(PATHCPP)
+.PATH.C = $(PATHCPP)
+!endif
+
+!if $d(PATHPAS)
+.PATH.PAS = $(PATHPAS)
+!endif
+
+!if $d(PATHASM)
+.PATH.ASM = $(PATHASM)
+!endif
+# ---------------------------------------------------------------------------
+$(PROJECT): $(IDLGENFILES) $(OBJFILES) $(LIBFILES)
+ $(BCB)\BIN\$(LINKER) /u $@ @&&!
+ $(LFLAGS) $?
+!
+# ---------------------------------------------------------------------------
+.pas.hpp:
+ $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
+
+.pas.obj:
+ $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
+
+.cpp.obj:
+ $(BCB)\BIN\$(BCC32) $(CFLAG1) -n$(@D) {$< }
+
+.c.obj:
+ $(BCB)\BIN\$(BCC32) $(CFLAG1) -n$(@D) {$< }
+
+.c.i:
+ $(BCB)\BIN\$(CPP32) $(CFLAG1) -n. {$< }
+
+.cpp.i:
+ $(BCB)\BIN\$(CPP32) $(CFLAG1) -n. {$< }
+
+.asm.obj:
+ $(BCB)\BIN\$(TASM32) $(AFLAGS) $<, $@
+# ---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/prototype/swordlib.cpp b/apps/windoze/CBuilder4/prototype/swordlib.cpp
new file mode 100644
index 0000000..258a253
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/swordlib.cpp
@@ -0,0 +1,36 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+USEUNIT("..\..\..\..\src\mgr\swmgr.cpp");
+USEUNIT("..\..\..\..\src\mgr\swconfig.cpp");
+USEUNIT("..\..\..\..\src\mgr\filemgr.cpp");
+USEUNIT("..\..\..\..\src\keys\versekey.cpp");
+USEUNIT("..\..\..\..\src\keys\swkey.cpp");
+USEUNIT("..\..\..\..\src\keys\listkey.cpp");
+USEUNIT("..\..\..\..\src\keys\strkey.cpp");
+USEUNIT("..\..\..\..\src\utilfuns\utilstr.cpp");
+USEUNIT("..\..\..\..\src\utilfuns\utilconf.cpp");
+USEUNIT("..\..\..\..\src\utilfuns\Greek2Greek.cpp");
+USEUNIT("..\..\..\..\src\frontend\swlog.cpp");
+USEUNIT("..\..\..\..\src\frontend\swdisp.cpp");
+USEUNIT("..\..\..\..\src\modules\common\rawstr.cpp");
+USEUNIT("..\..\..\..\src\modules\common\rawverse.cpp");
+USEUNIT("..\..\..\..\src\modules\common\swcomprs.cpp");
+USEUNIT("..\..\..\..\src\modules\comments\swcom.cpp");
+USEUNIT("..\..\..\..\src\modules\comments\hrefcom\hrefcom.cpp");
+USEUNIT("..\..\..\..\src\modules\comments\rawcom\rawcom.cpp");
+USEUNIT("..\..\..\..\src\modules\comments\rawfiles\rawfiles.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\rwprtf.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\gbfrtf.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\gbfplain.cpp");
+USEUNIT("..\..\..\..\src\modules\lexdict\swld.cpp");
+USEUNIT("..\..\..\..\src\modules\lexdict\rawld\rawld.cpp");
+USEUNIT("..\..\..\..\src\modules\texts\swtext.cpp");
+USEUNIT("..\..\..\..\src\modules\texts\rawgbf\rawgbf.cpp");
+USEUNIT("..\..\..\..\src\modules\texts\rawtext\rawtext.cpp");
+USEUNIT("..\..\..\..\src\modules\swmodule.cpp");
+//---------------------------------------------------------------------------
+#define Library
+
+// To add a file to the library use the Project menu 'Add to Project'.
+
diff --git a/apps/windoze/CBuilder4/prototype/swordprj.bpg b/apps/windoze/CBuilder4/prototype/swordprj.bpg
new file mode 100644
index 0000000..0333c75
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/swordprj.bpg
@@ -0,0 +1,23 @@
+#------------------------------------------------------------------------------
+VERSION = BWS.01
+#------------------------------------------------------------------------------
+!ifndef ROOT
+ROOT = $(MAKEDIR)\..
+!endif
+#------------------------------------------------------------------------------
+MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$**
+DCC = $(ROOT)\bin\dcc32.exe $**
+BRCC = $(ROOT)\bin\brcc32.exe $**
+#------------------------------------------------------------------------------
+PROJECTS = swordlib.lib sword.exe
+#------------------------------------------------------------------------------
+default: $(PROJECTS)
+#------------------------------------------------------------------------------
+
+swordlib.lib: swordlib.bpr
+ $(MAKE)
+
+sword.exe: sword.bpr
+ $(MAKE)
+
+
diff --git a/apps/windoze/CBuilder4/prototype/versesel.cpp b/apps/windoze/CBuilder4/prototype/versesel.cpp
new file mode 100644
index 0000000..8788580
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/versesel.cpp
@@ -0,0 +1,22 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "versesel.h"
+#include <versekey.h>
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TVerseSelFrm *VerseSelFrm;
+//---------------------------------------------------------------------------
+__fastcall TVerseSelFrm::TVerseSelFrm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TVerseSelFrm::Edit1Change(TObject *Sender)
+{
+ VerseKey trykey = Edit1->Text.c_str();
+ Panel2->Caption = (const char *)trykey;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/prototype/versesel.dfm b/apps/windoze/CBuilder4/prototype/versesel.dfm
new file mode 100644
index 0000000..4502433
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/versesel.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/prototype/versesel.h b/apps/windoze/CBuilder4/prototype/versesel.h
new file mode 100644
index 0000000..b4c1981
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/versesel.h
@@ -0,0 +1,27 @@
+//---------------------------------------------------------------------------
+#ifndef verseselH
+#define verseselH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+//---------------------------------------------------------------------------
+class TVerseSelFrm : public TForm
+{
+__published: // IDE-managed Components
+ TEdit *Edit1;
+ TPanel *Panel2;
+ TPanel *Panel1;
+ TButton *Button1;
+ TButton *Button2;
+ void __fastcall Edit1Change(TObject *Sender);
+private: // User declarations
+public: // User declarations
+ __fastcall TVerseSelFrm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TVerseSelFrm *VerseSelFrm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/prototype/vrslstfrm.cpp b/apps/windoze/CBuilder4/prototype/vrslstfrm.cpp
new file mode 100644
index 0000000..f20e6a8
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/vrslstfrm.cpp
@@ -0,0 +1,50 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "vrslstfrm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TVerseListFrm *VerseListFrm;
+//---------------------------------------------------------------------------
+__fastcall TVerseListFrm::TVerseListFrm(TComponent* Owner, ListKey &iVerseList)
+ : TForm(Owner), verseList(iVerseList)
+{
+ pvrtf = new SWDispRTF(this);
+
+ pvrtf->Parent = plPreview;
+ pvrtf->Align = alClient;
+ pvrtf->ScrollBars = ssVertical;
+ pvrtf->ReadOnly = true;
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TVerseListFrm::ListBox1Click(TObject *Sender)
+{
+ ModMap::iterator target;
+ target = Form1->mainmgr->Modules.find(Form1->textTabs->pageControl->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ SWKey *savekey = *(*target).second;
+ (*target).second->SetKey(ListBox1->Items->Strings[ListBox1->ItemIndex].c_str());
+ pvrtf->Display(*(*target).second);
+ (*target).second->SetKey(*savekey);
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TVerseListFrm::ListBox1DblClick(TObject *Sender)
+{
+ Form1->DefaultVSKey = ListBox1->Items->Strings[ListBox1->ItemIndex].c_str();
+ Form1->TextKeyChanged();
+}
+//---------------------------------------------------------------------------
+void __fastcall TVerseListFrm::FormShow(TObject *Sender)
+{
+ for (verseList = TOP; (!verseList.Error()); verseList++)
+ ListBox1->Items->Add((const char *)verseList);
+}
+//---------------------------------------------------------------------------
+
+
+
diff --git a/apps/windoze/CBuilder4/prototype/vrslstfrm.dfm b/apps/windoze/CBuilder4/prototype/vrslstfrm.dfm
new file mode 100644
index 0000000..2b2af74
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/vrslstfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/prototype/vrslstfrm.h b/apps/windoze/CBuilder4/prototype/vrslstfrm.h
new file mode 100644
index 0000000..7af64b9
--- /dev/null
+++ b/apps/windoze/CBuilder4/prototype/vrslstfrm.h
@@ -0,0 +1,29 @@
+//---------------------------------------------------------------------------
+#ifndef vrslstfrmH
+#define vrslstfrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+#include "mainfrm.h"
+//---------------------------------------------------------------------------
+class TVerseListFrm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *plPreview;
+ TListBox *ListBox1;
+ void __fastcall ListBox1Click(TObject *Sender);
+ void __fastcall ListBox1DblClick(TObject *Sender);
+ void __fastcall FormShow(TObject *Sender);
+private: // User declarations
+ SWDispRTF *pvrtf;
+ ListKey &verseList;
+public: // User declarations
+ __fastcall TVerseListFrm(TComponent* Owner, ListKey &iVerseList);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TVerseListFrm *VerseListFrm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/BibleCS/AboutBoxfrm.cpp b/apps/windoze/CBuilder5/BibleCS/AboutBoxfrm.cpp
new file mode 100644
index 0000000..5ec2e61
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/AboutBoxfrm.cpp
@@ -0,0 +1,92 @@
+//---------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "AboutBoxfrm.h"
+#include "mainfrm.h"
+//---------------------------------------------------------------------
+#pragma resource "*.dfm"
+TAboutBox *AboutBox;
+//---------------------------------------------------------------------
+__fastcall TAboutBox::TAboutBox(TComponent* AOwner) : TForm(AOwner) {
+}
+
+
+//---------------------------------------------------------------------
+void __fastcall TAboutBox::FormShow(TObject *Sender) {
+ int i;
+ static char *modtypes[] = {"Biblical Texts", "Commentaries", "Lexicons / Dictionaries"};
+
+ string newtext, tmptext;
+ ModMap::iterator it;
+ SectionMap::iterator it2;
+ ConfigEntMap::iterator it3;
+ TMemoryStream *RTFStream = new TMemoryStream();
+
+ newtext = "{\\rtf1\\ansi{\\fonttbl{\\f4\\froman\\fcharset0\\fprq2 Times New Roman;}}{\\colortbl;\\red0\\green0\\blue255;\\red0\\green200\\blue50;}";
+ newtext += "\\pard\\qc\\cf2\\nowidctlpar{\\fs30\\b Installed Modules } \\par \\pard \\nowidctlpar \\cf0 ";
+
+ for (i = 0; i < 3; i++) {
+ newtext += "\\par {\\fs28\\b ";
+ newtext += modtypes[i];
+ newtext += " }\\par \\par ";
+ for (it = Form1->mainmgr->Modules.begin(); it != Form1->mainmgr->Modules.end(); it++) {
+ if (!strcmp((*it).second->Type(), modtypes[i])) {
+ it2 = Form1->mainmgr->config->Sections.find((*it).second->Name());
+ if (it2 != Form1->mainmgr->config->Sections.end()) {
+ newtext = newtext + "{\\fs24\\cf1\\b " + (*it).second->Name() + " }\t";
+ newtext = newtext + "{\\fs24\\i " + (*it).second->Description() + " } \\par ";
+ it3 = (*it2).second.find("About");
+ if (it3 != (*it2).second.end())
+ newtext = newtext + "{\\fs20\\cf0 " + (*it3).second.c_str() + " }\\par \\par";
+ }
+ }
+ }
+ }
+ newtext += "{\\fs24 \\par }}";
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(newtext.c_str(), newtext.length());
+ RTFStream->Position = 0;
+ ModulesAbout->Lines->LoadFromStream(RTFStream);
+
+ newtext = "{\\rtf1\\ansi{\\fonttbl{\\f4\\froman\\fcharset0\\fprq2 Times New Roman;}}{\\colortbl;\\red0\\green0\\blue255;\\red0\\green200\\blue50;}";
+ newtext += "\\fs20 Thanx to God for His GREAT MERCY and LOVE: Never did anyone have so much, give it up so completely, to humble Himself and die such a death, all for such an ENEMY as me. -Philippians 2:6-8; Romans 5:6-10 \\par\\par ";
+ newtext += "For the latest updates and info, visit us on the net at: \\par ";
+ newtext += "http://www.crosswire.org \\par\\par ";
+ newtext += "Send us feedback, bug reports, or patches/additions: \\par ";
+ newtext += "sword-feedback@crosswire.org \\par ";
+ newtext += "sword-bugs@crosswire.org \\par ";
+ newtext += "sword-patches@crosswire.org (please include unified diffs if possible (diff -u)) \\par\\par ";
+ newtext += "To be on our mailing list: \\par ";
+ newtext += "sword-list-info@crosswire.org \\par\\par ";
+ newtext += "This software is provided free for the study of God and His Word. You DO NOT NEED TO license or pay for this software. Please: copy it freely and distribute it to athiests in Russia :), post it on your favorite FTP site, write your own modules and features for it, include it on your lastest freeware CDROM, incorporate all the cool utility classes into a product of your own, write a tract module for the program and sneak it onto all of your co-workers' computers and blame it on a virus, make fun of your pastor for spending $400 dollars on a similar package, give it to your pastor who can't figure out how to use his $400 dollar package :) \\par\\par ";
+ newtext += "OK, if you still feel the need, you can help our organization out at: \\par\\par ";
+ newtext += "CrossWire Software & Bible Society \\par ";
+ newtext += "P. O. Box 2528 \\par ";
+ newtext += "Tempe, AZ 85280-2528 \\par\\par ";
+ newtext += "... but I must warn you, your contributions will probably just go toward paying my way through college, or to give me a little more time to spend on the project :) \\par\\par ";
+ newtext += "\tMay the peace of GOD consume your heart, \\par ";
+ newtext += "\t\tThe SWORD Project Development Team \\par ";
+ newtext += "_________________________________________ \\par ";
+ newtext += "Thanks be to God for all the wonderful people who have contributed in so many ways to make this project possible. These are just a few (I could not possibly name them all) who have directly contributed an abundance of their time and talents: \\par\\par ";
+ newtext += "Chris Little (the module-making machine!); All the people at The Source in Scottsdale for testing and suggestions; ";
+ newtext += "The Bible Foundation: Jerry Kingery, Jerry Hastings; Geoffrey W. Hastings; ";
+ newtext += "William Dicks; Everyone on b-greek@franklin.oit.unc.edu; Michael Paul Johnson; ";
+ newtext += "Roland Nygren; Bayu Gunawan; Bill Kincaid; Mark Fuller; Larry Pierce; Franklin Bratcher; ";
+ newtext += "Gregory Hall; Luis Cortes; Steve Hiner; Kristof Petr; Paul Gear and OpenBible; Chris Bitmead (go Scheme!); ";
+ newtext += "Brook Humphrey; Torsten Uhlmann, Joachim Ansorg, Darwin Gregory, Martin Gruner and the BibleTime Team; ";
+ newtext += "Darren DeMeulenaere; Terry Biggs and the GnomeSword Team; Daniel Glassey; David Trotz";
+ newtext += "\\par\\par ";
+ newtext += "{\\i And the list goes on...} \\par \\par ";
+ newtext += "{\\fs24 \\par }}";
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(newtext.c_str(), newtext.length());
+ RTFStream->Position = 0;
+ CreditAbout->Lines->LoadFromStream(RTFStream);
+ delete RTFStream;
+}
+//---------------------------------------------------------------------------
+
+
+
+
diff --git a/apps/windoze/CBuilder5/BibleCS/AboutBoxfrm.dfm b/apps/windoze/CBuilder5/BibleCS/AboutBoxfrm.dfm
new file mode 100644
index 0000000..6fb43b9
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/AboutBoxfrm.dfm
@@ -0,0 +1,151 @@
+object AboutBox: TAboutBox
+ Left = 366
+ Top = 149
+ BorderStyle = bsDialog
+ Caption = 'About The SWORD Project'
+ ClientHeight = 448
+ ClientWidth = 440
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ Icon.Data = {
+ 0000010001002020100000000000E80200001600000028000000200000004000
+ 0000010004000000000080020000000000000000000000000000000000000000
+ 000000008000008000000080800080000000800080008080000080808000C0C0
+ C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF006666
+ 6666666666666666666666666666688888888888888888088888888888866888
+ 8888888888888880888888888886688888888888888888808888888888866888
+ 8008888088008880800080008800688888088880880808808080808088006888
+ 8808888088080880800880888806688888008880080808880080808088066888
+ 8808080080800800080088008000688888080888888888888888888888066888
+ 8000088888888888888888888806688888888888888888880888888888866008
+ 8808880888877777777878888F86088088088808887888877788888888F60880
+ 800888078788888878878888888F6800808080878788888878878888888F6088
+ 808087878788888877788888888F0888088087887788888878888888888F0808
+ 0888788878788887788888F888F600000087778777877777777888FFFF866888
+ 8880888888888888888888888886688888880888888888888888888888866800
+ 8880808800088888888888888886688088808808080888888888888888866880
+ 8880080800888888888888888886688088800008080888888888888888866880
+ 8880880880088888888888888886088080808888888888888888888888860000
+ 0080888888888888888888888886688888808888888888888888888888866888
+ 8888088888888888888888888886666666660666666666666666666666660000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000}
+ OldCreateOrder = True
+ Position = poScreenCenter
+ Scaled = False
+ OnShow = FormShow
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Panel1: TPanel
+ Left = 8
+ Top = 8
+ Width = 423
+ Height = 406
+ Anchors = [akLeft, akTop, akRight, akBottom]
+ BevelInner = bvRaised
+ BevelOuter = bvLowered
+ ParentColor = True
+ TabOrder = 0
+ object ProgramIcon: TImage
+ Left = 8
+ Top = 8
+ Width = 33
+ Height = 33
+ Picture.Data = {
+ 055449636F6E0000010001002020100000000000E80200001600000028000000
+ 2000000040000000010004000000000080020000000000000000000000000000
+ 0000000000000000000080000080000000808000800000008000800080800000
+ 80808000C0C0C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000
+ FFFFFF0066666666666666666666666666666666688888888888888888088888
+ 8888888668888888888888888880888888888886688888888888888888808888
+ 8888888668888008888088008880800080008800688888088880880808808080
+ 8080880068888808888088080880800880888806688888008880080808880080
+ 8080880668888808080080800800080088008000688888080888888888888888
+ 8888880668888000088888888888888888888806688888888888888888880888
+ 8888888660088808880888877777777878888F86088088088808887888877788
+ 888888F60880800888078788888878878888888F680080808087878888887887
+ 8888888F6088808087878788888877788888888F088808808788778888887888
+ 8888888F08080888788878788887788888F888F6000000877787778777777778
+ 88FFFF8668888880888888888888888888888886688888880888888888888888
+ 8888888668008880808800088888888888888886688088808808080888888888
+ 8888888668808880080800888888888888888886688088800008080888888888
+ 8888888668808880880880088888888888888886088080808888888888888888
+ 8888888600000080888888888888888888888886688888808888888888888888
+ 8888888668888888088888888888888888888886666666660666666666666666
+ 6666666600000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000}
+ Stretch = True
+ IsControl = True
+ end
+ object ProductName: TLabel
+ Left = 52
+ Top = 8
+ Width = 285
+ Height = 17
+ AutoSize = False
+ Caption = 'The SWORD Project'
+ IsControl = True
+ end
+ object Version: TLabel
+ Left = 52
+ Top = 24
+ Width = 213
+ Height = 21
+ AutoSize = False
+ Caption = 'v1.5.2'
+ IsControl = True
+ end
+ object Copyright: TLabel
+ Left = 8
+ Top = 48
+ Width = 485
+ Height = 17
+ AutoSize = False
+ Caption = 'GNU GPL Copyleft 2001, CrossWire Bible Society'
+ WordWrap = True
+ IsControl = True
+ end
+ object CreditAbout: TRichEdit
+ Left = 8
+ Top = 245
+ Width = 407
+ Height = 154
+ Anchors = [akLeft, akTop, akRight, akBottom]
+ Color = clBtnFace
+ ReadOnly = True
+ ScrollBars = ssVertical
+ TabOrder = 0
+ end
+ object ModulesAbout: TRichEdit
+ Left = 8
+ Top = 68
+ Width = 407
+ Height = 169
+ Anchors = [akLeft, akTop, akRight]
+ Color = clBtnFace
+ ReadOnly = True
+ ScrollBars = ssVertical
+ TabOrder = 1
+ end
+ end
+ object OKButton: TButton
+ Left = 170
+ Top = 419
+ Width = 99
+ Height = 25
+ Anchors = [akLeft, akRight, akBottom]
+ Caption = 'OK'
+ Default = True
+ ModalResult = 1
+ TabOrder = 1
+ end
+end
diff --git a/apps/windoze/CBuilder5/BibleCS/AboutBoxfrm.h b/apps/windoze/CBuilder5/BibleCS/AboutBoxfrm.h
new file mode 100644
index 0000000..77da4f8
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/AboutBoxfrm.h
@@ -0,0 +1,36 @@
+//----------------------------------------------------------------------------
+#ifndef AboutBoxfrmH
+#define AboutBoxfrmH
+//----------------------------------------------------------------------------
+#include <vcl\System.hpp>
+#include <vcl\Windows.hpp>
+#include <vcl\SysUtils.hpp>
+#include <vcl\Classes.hpp>
+#include <vcl\Graphics.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Buttons.hpp>
+#include <vcl\ExtCtrls.hpp>
+#include <vcl\ComCtrls.hpp>
+//----------------------------------------------------------------------------
+class TAboutBox : public TForm
+{
+__published:
+ TPanel *Panel1;
+ TImage *ProgramIcon;
+ TLabel *ProductName;
+ TLabel *Version;
+ TLabel *Copyright;
+ TButton *OKButton;
+ TRichEdit *CreditAbout;
+ TRichEdit *ModulesAbout;
+ void __fastcall FormShow(TObject *Sender);
+private:
+public:
+ virtual __fastcall TAboutBox(TComponent* AOwner);
+};
+//----------------------------------------------------------------------------
+extern TAboutBox *AboutBox;
+//----------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/BibleCS/DevOfTheDay.bmp b/apps/windoze/CBuilder5/BibleCS/DevOfTheDay.bmp
new file mode 100644
index 0000000..faf111b
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/DevOfTheDay.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/BibleCS/DevOfTheDay.cpp b/apps/windoze/CBuilder5/BibleCS/DevOfTheDay.cpp
new file mode 100644
index 0000000..d336056
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/DevOfTheDay.cpp
@@ -0,0 +1,37 @@
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+
+#include "DevOfTheDay.h"
+#include "mainfrm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TDevOfTheDay2 *DevOfTheDay2;
+//---------------------------------------------------------------------------
+__fastcall TDevOfTheDay2::TDevOfTheDay2(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TDevOfTheDay2::btnOKClick(TObject *Sender)
+{
+ DevOfTheDay2->Hide();
+ ConfigEntMap emap;
+ SWConfig * optionsconf;
+ optionsconf = dynamic_cast<TForm1*>(Application->MainForm)->optionsconf;
+ if(optionsconf)
+ {
+ emap = optionsconf->Sections["General"];
+ emap.erase("TipOfTheDay");
+ emap.insert(ConfigEntMap::value_type("TipOfTheDay", (DevOfTheDay2->ckShowTip->Checked) ? "Devotional" : ""));
+ optionsconf->Sections["General"] = emap;
+ optionsconf->Save();
+ }
+
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder5/BibleCS/DevOfTheDay.dfm b/apps/windoze/CBuilder5/BibleCS/DevOfTheDay.dfm
new file mode 100644
index 0000000..9ee91c0
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/DevOfTheDay.dfm
@@ -0,0 +1,359 @@
+object DevOfTheDay2: TDevOfTheDay2
+ Left = 426
+ Top = 181
+ Width = 362
+ Height = 277
+ BiDiMode = bdLeftToRight
+ Caption = 'Devotion for Today'
+ Color = clBtnFace
+ Constraints.MinHeight = 277
+ Constraints.MinWidth = 362
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ FormStyle = fsStayOnTop
+ OldCreateOrder = False
+ ParentBiDiMode = False
+ Position = poScreenCenter
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Panel1: TPanel
+ Left = 0
+ Top = 0
+ Width = 354
+ Height = 250
+ Align = alClient
+ AutoSize = True
+ BevelOuter = bvNone
+ Caption = 'Panel1'
+ TabOrder = 0
+ object Panel2: TPanel
+ Left = 3
+ Top = 3
+ Width = 346
+ Height = 212
+ Anchors = [akLeft, akTop, akRight, akBottom]
+ BevelInner = bvLowered
+ BevelOuter = bvNone
+ BorderStyle = bsSingle
+ Color = clBtnHighlight
+ TabOrder = 0
+ object bmpDev: TImage
+ Left = 0
+ Top = 0
+ Width = 343
+ Height = 51
+ Anchors = [akLeft, akTop, akRight]
+ Enabled = False
+ Picture.Data = {
+ 07544269746D61700E220000424D0E2200000000000076000000280000005601
+ 0000320000000100040000000000982100000000000000000000100000000000
+ 0000000000000000800000800000008080008000000080008000808000008080
+ 8000C0C0C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF
+ FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFF00000000000000000000
+ 000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF
+ FFFF01100000000000077000000000000110FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFF00FFFFFFFF01077777777770000000777777777010FFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFF010777000000
+ 07700077000000777010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF00FFFFFFFF01000088877777000807777888000010FFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFF0088888887770070088007788888
+ 8800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFF0088
+ 8888800077080888800088888800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00F
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFF00FFFFFFFF00888800088777080888888800088800FFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFF00800088888770880888
+ 8888FFF00000FFFFFFFFFFFFFFFFFF000FFFFFFF000FFFFFF00000FFFF00FFFF
+ FF0000F00FFFF00000FFFFFFFFFFFF00FFFFFFFF00000FFFFFFFFFF00000000F
+ F00FFFFF0FFFFFFF00000FFFFFFFFFF00000000FFFFFFF00FFFFF00FFF00FFF0
+ 0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF
+ FFFF0080FF888887708808888888FFFFF000FFFFFFFFFFFFFFFFFF000FFFFFFF
+ 000FFFFF0000000FFF00FFFFF00000000FFF0000000FFFFFFFFFFF00FFFFFFF0
+ 000000FFFFFFFFF00000000FF00FFFF000FFFFF0000000FFFFFFFFF000000000
+ FFFFFF00FFFFF00FFF00FFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFF00FFFFFFFF0080FF888887088808888888FFFFF000FFFF
+ FFFFFFFFFFFFF00F00FFFFF00F00FFF000FFF000FF00FFFF000FFF000FF00FFF
+ F00FFFFFFFFFFF00FFFFFF000FFF000FFFFFFFF00FFFFFFFF00FFFF000FFFF00
+ 0FFFF00FFFFFFFF00FFFFF000FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFF0080FF888880
+ 888808888888FFFFF000FFFFFFFFFFFFFFFFF00F00FFFFF00F00FFF00FFFFF00
+ FF00FFFF00FFFFF00FFFFFFF000FFFFFFFFFFF00FFFFFF00FFFFF00FFFFFFFF0
+ 0FFFFFFFF00FFF00F00FFF00FFFFFFFFFFFFFFF00FFFFFF00FFFF0000FFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF00FFFFFFFF0080FF888808888808888888FFFFF000FFFFFFFFFFFFFFFFF00F
+ 00FFFFF00F00FFF00FFFFF00FF00FFFF00FFFFF00FFFFF0000FFFFFFFFFFFF00
+ FFFFFF00FFFFF00FFFFFFFF00FFFFFFFF00FFF00F00FFF000000000FFFFFFFF0
+ 0FFFFFF00FFF00F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFF0080FF8000F8888808888888FFFF
+ F000FFFFFFFFFFFFFFFFF00FF00FFF00FF00FFF00FFFFF00FF00FFFF00FFFFF0
+ 0FFF0000FFFFFFFFFFFFFF00FFFFFF00FFFFF00FFFFFFFF00FFFFFFFF00FF00F
+ FF00FF000000000FFFFFFFF00FFFFF00FFFF00FF00FFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFF0080
+ FF80FFF8888808888888FFFFF000FFFFFFFFFFFFFFFFF00FF00FFF00FF00FFF0
+ 0FFFFF00FF00FFFF00FFFFF00FF000FFFFFFFFFFFFFFFF00FFFFFF00FFFFF00F
+ FFFFFFF00FFFFFFFF00FF00FFF00FF00FFFFF00FFFFFFFF00000000FFFF00FFF
+ 00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFF00FFFFFFFF0080FF80FFF8888808888888FFFFF000FFFFFFFFFFFF
+ FFFF00FFF00FFF00FFF00FF000FFF000FF000FFF000FFF000FF00FFFF00FFFFF
+ FFFFFF00FFFFFF000FFF000FFFFFFFF00FFFFFFFF00FF00FFF00FF000FFF00FF
+ FFFFFFF00000000FFFF00FFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFF00880F80FFF888880888
+ 8888FFFF0F00FFFFFFFFFFFFFFFF00FFF00FFF00FFF00FFF0000000FFF00000F
+ F00000000FF0000000FFFFFFFFFFFF00FFFFFFF0000000FFFFFFFFF00FFFFFFF
+ F00F00FFFFF00FF0000000FFFFFFFFF00FFFF000FF00FFFFF00FFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF
+ FFFF00880F80FFF8888808888888FFFF0F00FFFFFFFFFFFFFFFF00FFFF00F00F
+ FFF00FFFF00000FFFF00F00FFF0000F00FFF00000FFFFFFFFFFFFF00FFFFFFFF
+ 00000FFFFFFFFFF00FFFFFFFF00F00FFFFF00FFF00000FFFFFFFFFF00FFFFF00
+ FF00FFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFF00FFFFFFFF00880F80FFF8888000088888FFFF0F00FFFF
+ FFFFFFFFFFFF00FFFF00F00FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFF
+ FFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFF00FFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFF00880F80FFF8
+ 880088008888FFFF0F00FFFFFFFFFFFFFFFF00FFFF00F00FFFF00FFFFFFFFFFF
+ FFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFF0
+ 0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF000FFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF00FFFFFFFF00880F80FFF8880777708888FFFF0F00FFFFFFFFFFFFFFF00FFF
+ FFF000FFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFF000000
+ 0000FFFFFFFFFFFFFFFFFFF00FFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFF0
+ 0000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFF0880F80FFF8880888808888FFFF
+ 0F0FFFFFFFFFFFFFFFF00FFFFFF000FFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFF0
+ 0FFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFF00FFFFFFFF00FFFFF
+ FFFFFFFFFFFFFFFFFFFFFFF0000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFF088
+ 0F80FFF8880777708888FFFF0F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFF00FFFFFFFFF0880F880FF8880BBBB08888FFFF0F0FFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFF0000F880FF880BBBBBB
+ 0888FFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF
+ FFFFFFFF0F880FF80BBB00BBB088FFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF0F880FF0BBBB00BBBB08FFF0FFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF0F880F0B
+ BBBBBBBBBBB00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF00FFFFFFFFFFFF00000F0BBBBB00BBBBBB0FFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFF00BBBBBB00BBBBBB0FFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFB
+ FBFB00BBBBBB00BBBBBB0FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFF00FFFFFFFFFFF8887000BBBBBB00BBBBBB0F07888FFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFBFBFBF0BBBBBB00BB
+ BBBB0FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF
+ FFFFFFFFFFFFF0BBBBBB00BBBBBB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFF0FF0BBBBB00BBBBB0FF0FFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFF0
+ BBBBBBBBBB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF00FFFFFFFFFFFFFFFFFFFF00BBBBBB00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFB0FFFF000000FFFF0BFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF
+ FFFF7BFFFFFFFFFFFFFFB7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFF00FFFFFFFFFFFFFFB8FFFF0FFB0BFF0FFFFF8BFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFF8BFFFFFFFF7FFF
+ FFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFF
+ FFFFFFFFFFFFFFFFFFFB7BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFF
+ FFFB8BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00}
+ Transparent = True
+ end
+ end
+ object RichTip: TRichEdit
+ Left = 6
+ Top = 56
+ Width = 340
+ Height = 157
+ Anchors = [akLeft, akTop, akRight, akBottom]
+ BorderStyle = bsNone
+ PlainText = True
+ ReadOnly = True
+ ScrollBars = ssVertical
+ TabOrder = 1
+ end
+ object ckShowTip: TCheckBox
+ Left = 7
+ Top = 228
+ Width = 152
+ Height = 17
+ Anchors = [akLeft, akBottom]
+ Caption = 'Show Devotional at Startup'
+ TabOrder = 2
+ end
+ object btnOK: TButton
+ Left = 276
+ Top = 220
+ Width = 73
+ Height = 25
+ Anchors = [akRight, akBottom]
+ Caption = '&Close'
+ TabOrder = 3
+ OnClick = btnOKClick
+ end
+ end
+end
diff --git a/apps/windoze/CBuilder5/BibleCS/DevOfTheDay.h b/apps/windoze/CBuilder5/BibleCS/DevOfTheDay.h
new file mode 100644
index 0000000..ce3fd73
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/DevOfTheDay.h
@@ -0,0 +1,30 @@
+//---------------------------------------------------------------------------
+
+#ifndef DevOfTheDayH
+#define DevOfTheDayH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ComCtrls.hpp>
+#include <ExtCtrls.hpp>
+#include <Graphics.hpp>
+//---------------------------------------------------------------------------
+class TDevOfTheDay2 : public TForm
+{
+__published: // IDE-managed Components
+ TRichEdit *RichTip;
+ TCheckBox *ckShowTip;
+ TButton *btnOK;
+ TPanel *Panel1;
+ TImage *bmpDev;
+ void __fastcall btnOKClick(TObject *Sender);
+private: // User declarations
+public: // User declarations
+ __fastcall TDevOfTheDay2(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TDevOfTheDay2 *DevOfTheDay2;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/BibleCS/FontSel.cpp b/apps/windoze/CBuilder5/BibleCS/FontSel.cpp
new file mode 100644
index 0000000..42ce072
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/FontSel.cpp
@@ -0,0 +1,120 @@
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+
+#include "FontSel.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma link "RxCombos"
+#pragma link "RxCombos"
+#pragma link "RxCombos"
+#pragma link "RxCombos"
+#pragma resource "*.dfm"
+TFontSelFrm *FontSelFrm;
+//---------------------------------------------------------------------------
+__fastcall TFontSelFrm::TFontSelFrm(TComponent* Owner)
+ : TForm(Owner)
+{
+ Font = new TFont;
+ FontComboBox->ItemIndex = FontComboBox->Items->IndexOf("Arial");
+ SizeComboBox->ItemIndex = SizeComboBox->Items->IndexOf("10");
+ BackColor = clWhite;
+ Font->Color = clBlack;
+ initialized = false;
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TFontSelFrm::FormShow(TObject *Sender)
+{
+ BackColorDlg->Color = BackColor;
+ BGColorCmb->ColorValue = BackColor;
+ ForeColorDlg->Color = Font->Color;
+ FGColorCmb->ColorValue = Font->Color;
+ FontComboBox->ItemIndex = FontComboBox->Items->IndexOf(Font->Name);
+ SizeComboBox->ItemIndex = SizeComboBox->Items->IndexOf(Font->Size);
+ UpdatePreview();
+ initialized = true;
+}
+
+void TFontSelFrm::UpdatePreview()
+{
+ if(Font)
+ {
+ SampleText->Font->Color = Font->Color;
+ SampleText->Color = BackColor;
+ SampleText->Font->Size = Font->Size;
+ SampleText->Font->Name = Font->Name;
+ }
+}
+
+void __fastcall TFontSelFrm::ckShowFontClick(TObject *Sender)
+{
+ if(ckShowFont->Checked)
+ FontComboBox->UseFonts = true;
+ else
+ FontComboBox->UseFonts = false;
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TFontSelFrm::FontComboBoxChange(TObject *Sender)
+{
+ Font->Name = FontComboBox->Text;
+ UpdatePreview();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TFontSelFrm::SizeComboBoxChange(TObject *Sender)
+{
+ Font->Size = SizeComboBox->Text.ToInt();
+ UpdatePreview();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TFontSelFrm::BGColorCmbChange(TObject *Sender)
+{
+ if(BGColorCmb->Items->Strings[BGColorCmb->ItemIndex] == "More..."){
+ BackColorDlg->Execute();
+ BGColorCmb->ColorValue = BackColorDlg->Color;
+ BackColor = BackColorDlg->Color;
+ }else if(initialized == true){
+ BackColorDlg->Color = BGColorCmb->ColorValue;
+ BackColor = BGColorCmb->ColorValue;
+ }
+
+ UpdatePreview();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TFontSelFrm::FGColorCmbChange(TObject *Sender)
+{
+ if(FGColorCmb->Items->Strings[FGColorCmb->ItemIndex] == "More..."){
+ ForeColorDlg->Execute();
+ FGColorCmb->ColorValue = ForeColorDlg->Color;
+ Font->Color = ForeColorDlg->Color;
+ }else if(initialized == true){
+ ForeColorDlg->Color = FGColorCmb->ColorValue;
+ Font->Color = FGColorCmb->ColorValue;
+ }
+
+ UpdatePreview();
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TFontSelFrm::OKBtnClick(TObject *Sender)
+{
+ ModalResult = mrOk;
+ initialized = false;
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TFontSelFrm::CancelBtnClick(TObject *Sender)
+{
+ ModalResult = mrCancel;
+ initialized = false;
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder5/BibleCS/FontSel.dfm b/apps/windoze/CBuilder5/BibleCS/FontSel.dfm
new file mode 100644
index 0000000..c76b31f
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/FontSel.dfm
@@ -0,0 +1,213 @@
+object FontSelFrm: TFontSelFrm
+ Left = 359
+ Top = 188
+ BorderIcons = []
+ BorderStyle = bsDialog
+ Caption = 'FontSelFrm'
+ ClientHeight = 202
+ ClientWidth = 321
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poMainFormCenter
+ OnShow = FormShow
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Label1: TLabel
+ Left = 8
+ Top = 6
+ Width = 21
+ Height = 13
+ Caption = '&Font'
+ end
+ object Label2: TLabel
+ Left = 190
+ Top = 6
+ Width = 20
+ Height = 13
+ Caption = '&Size'
+ end
+ object Label3: TLabel
+ Left = 8
+ Top = 71
+ Width = 58
+ Height = 13
+ Caption = 'Background'
+ end
+ object Label4: TLabel
+ Left = 145
+ Top = 71
+ Width = 54
+ Height = 13
+ Caption = 'Foreground'
+ end
+ object OKBtn: TBitBtn
+ Left = 241
+ Top = 23
+ Width = 73
+ Height = 25
+ TabOrder = 0
+ OnClick = OKBtnClick
+ Kind = bkOK
+ end
+ object CancelBtn: TBitBtn
+ Left = 241
+ Top = 55
+ Width = 73
+ Height = 25
+ TabOrder = 1
+ OnClick = CancelBtnClick
+ Kind = bkCancel
+ end
+ object GroupBox1: TGroupBox
+ Left = 8
+ Top = 119
+ Width = 225
+ Height = 73
+ Caption = 'Sample Text'
+ TabOrder = 2
+ object SampleText: TPanel
+ Left = 8
+ Top = 16
+ Width = 209
+ Height = 49
+ BevelOuter = bvLowered
+ Caption = 'AaBbYyZz'
+ TabOrder = 0
+ end
+ end
+ object FontComboBox: TFontComboBox
+ Left = 8
+ Top = 23
+ Width = 169
+ Height = 23
+ UseFonts = True
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -15
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ OnChange = FontComboBoxChange
+ end
+ object SizeComboBox: TComboBox
+ Left = 184
+ Top = 23
+ Width = 49
+ Height = 24
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -15
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ ItemHeight = 16
+ ParentFont = False
+ TabOrder = 4
+ Text = 'SizeComboBox'
+ OnChange = SizeComboBoxChange
+ Items.Strings = (
+ '10'
+ '11'
+ '12'
+ '13'
+ '14'
+ '16'
+ '18'
+ '20'
+ '22'
+ '24'
+ '26'
+ '28'
+ '30'
+ '32'
+ '34'
+ '36'
+ '38'
+ '40'
+ '42')
+ end
+ object ckShowFont: TCheckBox
+ Left = 8
+ Top = 46
+ Width = 105
+ Height = 17
+ Caption = 'Show Font Faces'
+ Checked = True
+ State = cbChecked
+ TabOrder = 5
+ OnClick = ckShowFontClick
+ end
+ object BGColorCmb: TColorComboBox
+ Left = 8
+ Top = 86
+ Width = 89
+ Height = 20
+ ColorValue = clWhite
+ ColorNames.Strings = (
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ 'More...')
+ Options = [coIncludeDefault]
+ TabOrder = 6
+ OnChange = BGColorCmbChange
+ end
+ object FGColorCmb: TColorComboBox
+ Left = 143
+ Top = 88
+ Width = 89
+ Height = 20
+ ColorNames.Strings = (
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ 'More...')
+ Options = [coIncludeDefault]
+ TabOrder = 7
+ OnChange = FGColorCmbChange
+ end
+ object BackColorDlg: TColorDialog
+ Ctl3D = True
+ Left = 288
+ Top = 111
+ end
+ object ForeColorDlg: TColorDialog
+ Ctl3D = True
+ OnShow = FormShow
+ Left = 288
+ Top = 151
+ end
+end
diff --git a/apps/windoze/CBuilder5/BibleCS/FontSel.h b/apps/windoze/CBuilder5/BibleCS/FontSel.h
new file mode 100644
index 0000000..d07e798
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/FontSel.h
@@ -0,0 +1,56 @@
+//---------------------------------------------------------------------------
+
+#ifndef FontSelH
+#define FontSelH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <Buttons.hpp>
+#include <Dialogs.hpp>
+#include <ExtCtrls.hpp>
+//#include "D:\\Program Files\\Borland\\CBuilder5\\RX\\Units\\Rxcombos.hpp"
+#include "RxCombos.hpp"
+//---------------------------------------------------------------------------
+class TFontSelFrm : public TForm
+{
+__published: // IDE-managed Components
+ TLabel *Label1;
+ TLabel *Label2;
+ TLabel *Label3;
+ TLabel *Label4;
+ TBitBtn *OKBtn;
+ TBitBtn *CancelBtn;
+ TGroupBox *GroupBox1;
+ TPanel *SampleText;
+ TFontComboBox *FontComboBox;
+ TComboBox *SizeComboBox;
+ TCheckBox *ckShowFont;
+ TColorComboBox *BGColorCmb;
+ TColorComboBox *FGColorCmb;
+ TColorDialog *BackColorDlg;
+ TColorDialog *ForeColorDlg;
+ void __fastcall FormShow(TObject *Sender);
+ void __fastcall ckShowFontClick(TObject *Sender);
+ void __fastcall FontComboBoxChange(TObject *Sender);
+ void __fastcall SizeComboBoxChange(TObject *Sender);
+ void __fastcall BGColorCmbChange(TObject *Sender);
+ void __fastcall FGColorCmbChange(TObject *Sender);
+ void __fastcall OKBtnClick(TObject *Sender);
+ void __fastcall CancelBtnClick(TObject *Sender);
+public: // User declarations
+ TFont* Font;
+ int BackColor;
+public: // User declarations
+ __fastcall TFontSelFrm(TComponent* Owner);
+protected:
+ void UpdatePreview();
+private:
+ bool initialized; // Stupid variable to work around stupid combo box change called from FormShow()
+
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TFontSelFrm *FontSelFrm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/BibleCS/Makefile b/apps/windoze/CBuilder5/BibleCS/Makefile
new file mode 100644
index 0000000..6007442
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/Makefile
@@ -0,0 +1,16 @@
+
+root := ../../../..
+pre-targets :=
+include ${root}/Makefile.cfg
+
+
+s = $(c) $(cpp)
+d = $(c:%.c=%.d) $(cpp:%.cpp=%.d)
+o = $(c:%.c=%.o) $(cpp:%.cpp=%.o)
+
+${root}/lib/libsword.a: $(o)
+ $(AR) crs $@ $^
+
+ifneq ($(nodeps),yes)
+-include $(d)
+endif
diff --git a/apps/windoze/CBuilder5/BibleCS/ModInstForm.cpp b/apps/windoze/CBuilder5/BibleCS/ModInstForm.cpp
new file mode 100644
index 0000000..1763817
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/ModInstForm.cpp
@@ -0,0 +1,14 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "ModInstForm.h"
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TModInstFrm *ModInstFrm;
+//---------------------------------------------------------------------------
+__fastcall TModInstFrm::TModInstFrm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//--------------------------------------------------------------------------- \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/BibleCS/ModInstForm.dfm b/apps/windoze/CBuilder5/BibleCS/ModInstForm.dfm
new file mode 100644
index 0000000..8188941
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/ModInstForm.dfm
@@ -0,0 +1,83 @@
+object ModInstFrm: TModInstFrm
+ Left = 227
+ Top = 371
+ BorderIcons = []
+ BorderStyle = bsDialog
+ Caption = 'Found New Module...'
+ ClientHeight = 226
+ ClientWidth = 441
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ Icon.Data = {
+ 0000010001002020100000000000E80200001600000028000000200000004000
+ 0000010004000000000080020000000000000000000000000000000000000000
+ 000000008000008000000080800080000000800080008080000080808000C0C0
+ C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF006666
+ 6666666666666666666666666666688888888888888888088888888888866888
+ 8888888888888880888888888886688888888888888888808888888888866888
+ 8008888088008880800080008800688888088880880808808080808088006888
+ 8808888088080880800880888806688888008880080808880080808088066888
+ 8808080080800800080088008000688888080888888888888888888888066888
+ 8000088888888888888888888806688888888888888888880888888888866008
+ 8808880888877777777878888F86088088088808887888877788888888F60880
+ 800888078788888878878888888F6800808080878788888878878888888F6088
+ 808087878788888877788888888F0888088087887788888878888888888F0808
+ 0888788878788887788888F888F600000087778777877777777888FFFF866888
+ 8880888888888888888888888886688888880888888888888888888888866800
+ 8880808800088888888888888886688088808808080888888888888888866880
+ 8880080800888888888888888886688088800008080888888888888888866880
+ 8880880880088888888888888886088080808888888888888888888888860000
+ 0080888888888888888888888886688888808888888888888888888888866888
+ 8888088888888888888888888886666666660666666666666666666666660000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000}
+ OldCreateOrder = True
+ Position = poScreenCenter
+ Scaled = False
+ PixelsPerInch = 96
+ TextHeight = 13
+ object AboutText: TRichEdit
+ Left = 0
+ Top = 65
+ Width = 441
+ Height = 161
+ Align = alClient
+ Color = clBtnFace
+ ReadOnly = True
+ ScrollBars = ssVertical
+ TabOrder = 0
+ end
+ object Panel1: TPanel
+ Left = 0
+ Top = 0
+ Width = 441
+ Height = 65
+ Align = alTop
+ TabOrder = 1
+ object ModText: TLabel
+ Left = 8
+ Top = 8
+ Width = 421
+ Height = 29
+ AutoSize = False
+ end
+ object Button1: TButton
+ Left = 177
+ Top = 36
+ Width = 87
+ Height = 25
+ Anchors = [akLeft, akTop, akRight]
+ Cancel = True
+ Caption = '&OK'
+ Default = True
+ ModalResult = 1
+ TabOrder = 0
+ end
+ end
+end
diff --git a/apps/windoze/CBuilder5/BibleCS/ModInstForm.h b/apps/windoze/CBuilder5/BibleCS/ModInstForm.h
new file mode 100644
index 0000000..f0cb90a
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/ModInstForm.h
@@ -0,0 +1,27 @@
+//---------------------------------------------------------------------------
+#ifndef ModInstFormH
+#define ModInstFormH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ComCtrls.hpp>
+#include <vcl\ExtCtrls.hpp>
+//---------------------------------------------------------------------------
+class TModInstFrm : public TForm
+{
+__published: // IDE-managed Components
+ TRichEdit *AboutText;
+ TPanel *Panel1;
+ TButton *Button1;
+ TLabel *ModText;
+private: // User declarations
+public: // User declarations
+ __fastcall TModInstFrm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TModInstFrm *ModInstFrm;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/BibleCS/ModVisFrm.cpp b/apps/windoze/CBuilder5/BibleCS/ModVisFrm.cpp
new file mode 100644
index 0000000..64f791e
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/ModVisFrm.cpp
@@ -0,0 +1,50 @@
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+
+#include "ModVisFrm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TModVisForm *ModVisForm;
+//---------------------------------------------------------------------------
+__fastcall TModVisForm::TModVisForm(TComponent* Owner)
+ : TForm(Owner)
+{
+ section = 0; // set this before calling Show...
+ mgr = 0; // set this before calling Show...
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TModVisForm::FormShow(TObject *Sender)
+{
+ ConfigEntMap::iterator it;
+ ModMap::iterator mit;
+ TListItem *item;
+ modList->Items->Clear();
+ for (it = section->begin(); it != section->end(); it++) {
+ mit = mgr->Modules.find(it->first);
+ SWModule *module = (mit != mgr->Modules.end()) ? mit->second : 0;
+ if (module) {
+ item = modList->Items->Add();
+ item->Caption = it->first.c_str();
+ item->SubItems->Add(module->Description());
+ item->Checked = (it->second == "true");
+ }
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TModVisForm::FormClose(TObject *Sender,
+ TCloseAction &Action)
+{
+ if (this->ModalResult == mrOk) {
+ for (int i = 0; i < modList->Items->Count; i++) {
+ string name = modList->Items->Item[i]->Caption.c_str();
+ (*section)[name] = (modList->Items->Item[i]->Checked) ? "true" : "false";
+ }
+ }
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder5/BibleCS/ModVisFrm.dfm b/apps/windoze/CBuilder5/BibleCS/ModVisFrm.dfm
new file mode 100644
index 0000000..a4157fd
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/ModVisFrm.dfm
@@ -0,0 +1,70 @@
+object ModVisForm: TModVisForm
+ Left = 192
+ Top = 107
+ Width = 466
+ Height = 313
+ Caption = 'Check Modules To Show As Tabs'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ OnClose = FormClose
+ OnShow = FormShow
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Panel2: TPanel
+ Left = 0
+ Top = 0
+ Width = 346
+ Height = 286
+ Align = alClient
+ TabOrder = 0
+ object modList: TListView
+ Left = 1
+ Top = 1
+ Width = 344
+ Height = 284
+ Align = alClient
+ Checkboxes = True
+ Columns = <
+ item
+ Caption = 'Module'
+ MinWidth = 100
+ Width = 100
+ end
+ item
+ AutoSize = True
+ Caption = 'Description'
+ end>
+ TabOrder = 0
+ ViewStyle = vsReport
+ end
+ end
+ object Panel1: TPanel
+ Left = 346
+ Top = 0
+ Width = 112
+ Height = 286
+ Align = alRight
+ TabOrder = 1
+ object BitBtn1: TBitBtn
+ Left = 16
+ Top = 8
+ Width = 81
+ Height = 25
+ TabOrder = 0
+ Kind = bkOK
+ end
+ object BitBtn2: TBitBtn
+ Left = 16
+ Top = 40
+ Width = 81
+ Height = 25
+ TabOrder = 1
+ Kind = bkCancel
+ end
+ end
+end
diff --git a/apps/windoze/CBuilder5/BibleCS/ModVisFrm.h b/apps/windoze/CBuilder5/BibleCS/ModVisFrm.h
new file mode 100644
index 0000000..3a2bab8
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/ModVisFrm.h
@@ -0,0 +1,37 @@
+//---------------------------------------------------------------------------
+
+#ifndef ModVisFrmH
+#define ModVisFrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <Buttons.hpp>
+#include <CheckLst.hpp>
+#include <ExtCtrls.hpp>
+#include <swconfig.h>
+#include <swmgr.h>
+#include <ComCtrls.hpp>
+//---------------------------------------------------------------------------
+class TModVisForm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel2;
+ TPanel *Panel1;
+ TBitBtn *BitBtn1;
+ TBitBtn *BitBtn2;
+ TListView *modList;
+ void __fastcall FormShow(TObject *Sender);
+ void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
+private: // User declarations
+public: // User declarations
+ ConfigEntMap *section;
+ SWMgr *mgr;
+
+ __fastcall TModVisForm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TModVisForm *ModVisForm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/BibleCS/RangeMaintFrm.cpp b/apps/windoze/CBuilder5/BibleCS/RangeMaintFrm.cpp
new file mode 100644
index 0000000..4b2c4f6
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/RangeMaintFrm.cpp
@@ -0,0 +1,129 @@
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+
+#include "RangeMaintFrm.h"
+#include <versekey.h>
+#include <listkey.h>
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TRangeMaintForm *RangeMaintForm;
+
+//---------------------------------------------------------------------------
+__fastcall TRangeMaintForm::TRangeMaintForm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::FormShow(TObject *Sender)
+{
+ ConfigEntMap::iterator loop, end;
+ config = new SWConfig("./options.conf");
+ ListBox1->Clear();
+ loop = config->Sections["CustomRanges"].begin();
+ end = config->Sections["CustomRanges"].end();
+ while (loop != end) {
+ TCustomRange *rs = new TCustomRange(loop->first.c_str(), loop->second.c_str());
+ ListBox1->Items->AddObject(rs->name.c_str(), rs);
+ loop++;
+ }
+ ListBox1->ItemIndex = 0;
+ if (ListBox1->ItemIndex) {
+ SpeedButton1Click(0);
+ }
+ else {
+ ListBox1Click(0);
+ Button1Click(0);
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::FormClose(TObject *Sender,
+ TCloseAction &Action)
+{
+ delete config;
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::SpeedButton4Click(TObject *Sender)
+{
+ ModalResult = mrCancel;
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::ListBox1Click(TObject *Sender)
+{
+ if (ListBox1->ItemIndex >= 0) {
+ TCustomRange *rs = (TCustomRange *)ListBox1->Items->Objects[ListBox1->ItemIndex];
+
+ NameEdit->Text = rs->name.c_str();
+ TextEdit->Text = rs->text.c_str();
+ }
+ else {
+ NameEdit->Text = "";
+ TextEdit->Text = "";
+ }
+ Button1Click(0);
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::NameEditChange(TObject *Sender)
+{
+ if (ListBox1->ItemIndex < 0)
+ return;
+ TCustomRange *rs = (TCustomRange *)ListBox1->Items->Objects[ListBox1->ItemIndex];
+ rs->name = NameEdit->Text.c_str();
+ ListBox1->Items->Strings[ListBox1->ItemIndex] = rs->name.c_str();
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::TextEditChange(TObject *Sender)
+{
+ if (ListBox1->ItemIndex < 0)
+ return;
+ TCustomRange *rs = (TCustomRange *)ListBox1->Items->Objects[ListBox1->ItemIndex];
+ rs->text = TextEdit->Text.c_str();
+ Button1Click(0);
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::SpeedButton2Click(TObject *Sender)
+{
+ if (ListBox1->ItemIndex < 0)
+ return;
+ int delItem = ListBox1->ItemIndex;
+ ListBox1->Items->Delete(delItem);
+ ListBox1->ItemIndex = (delItem < ListBox1->Items->Count) ? delItem : delItem - 1;
+ ListBox1Click(0);
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::SpeedButton1Click(TObject *Sender)
+{
+ TCustomRange *rs = new TCustomRange("[New Custom Range]", "");
+ ListBox1->ItemIndex = ListBox1->Items->AddObject(rs->name.c_str(), rs);
+
+ ListBox1Click(0);
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::SpeedButton3Click(TObject *Sender)
+{
+ TCustomRange *rs;
+ config->Sections["CustomRanges"].erase(config->Sections["CustomRanges"].begin(), config->Sections["CustomRanges"].end());
+ for (int i = 0; i < ListBox1->Items->Count; i++) {
+ rs = (TCustomRange *)ListBox1->Items->Objects[i];
+ config->Sections["CustomRanges"].insert(ConfigEntMap::value_type(rs->name.c_str(), rs->text.c_str()));
+ }
+ config->Save();
+ ModalResult = mrOk;
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::Button1Click(TObject *Sender)
+{
+ VerseKey key;
+ ListBox2->Clear();
+ ListKey verses = key.ParseVerseList(TextEdit->Text.c_str(), key, true);
+ for (int i = 0; i < verses.Count(); i++) {
+ VerseKey *element = SWDYNAMIC_CAST(VerseKey, verses.GetElement(i));
+ if (element) {
+ ListBox2->Items->Add((string(element->LowerBound()) + " - " + string(element->UpperBound())).c_str());
+ }
+ else ListBox2->Items->Add((const char *)*verses.GetElement(i));
+ }
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder5/BibleCS/RangeMaintFrm.dfm b/apps/windoze/CBuilder5/BibleCS/RangeMaintFrm.dfm
new file mode 100644
index 0000000..ee4357d
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/RangeMaintFrm.dfm
@@ -0,0 +1,219 @@
+object RangeMaintForm: TRangeMaintForm
+ Left = 289
+ Top = 266
+ Width = 475
+ Height = 317
+ Caption = 'Maintain Custom Ranges'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poScreenCenter
+ Scaled = False
+ OnClose = FormClose
+ OnShow = FormShow
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Panel4: TPanel
+ Left = 0
+ Top = 259
+ Width = 467
+ Height = 31
+ Align = alBottom
+ TabOrder = 0
+ object SpeedButton3: TSpeedButton
+ Left = 117
+ Top = 4
+ Width = 108
+ Height = 22
+ Caption = '&Save'
+ Flat = True
+ Glyph.Data = {
+ 76010000424D7601000000000000760000002800000020000000100000000100
+ 0400000000000001000000000000000000001000000010000000000000000000
+ 800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
+ FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
+ 333333FFFFFFFFFFFFF33000077777770033377777777777773F000007888888
+ 00037F3337F3FF37F37F00000780088800037F3337F77F37F37F000007800888
+ 00037F3337F77FF7F37F00000788888800037F3337777777337F000000000000
+ 00037F3FFFFFFFFFFF7F00000000000000037F77777777777F7F000FFFFFFFFF
+ 00037F7F333333337F7F000FFFFFFFFF00037F7F333333337F7F000FFFFFFFFF
+ 00037F7F333333337F7F000FFFFFFFFF00037F7F333333337F7F000FFFFFFFFF
+ 00037F7F333333337F7F000FFFFFFFFF07037F7F33333333777F000FFFFFFFFF
+ 0003737FFFFFFFFF7F7330099999999900333777777777777733}
+ NumGlyphs = 2
+ OnClick = SpeedButton3Click
+ end
+ object SpeedButton4: TSpeedButton
+ Left = 239
+ Top = 4
+ Width = 108
+ Height = 22
+ Anchors = [akTop, akRight]
+ Caption = '&Cancel'
+ Flat = True
+ Glyph.Data = {
+ 76010000424D7601000000000000760000002800000020000000100000000100
+ 0400000000000001000000000000000000001000000010000000000000000000
+ 800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
+ FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
+ 3333333333FFFFF3333333333999993333333333F77777FFF333333999999999
+ 3333333777333777FF3333993333339993333377FF3333377FF3399993333339
+ 993337777FF3333377F3393999333333993337F777FF333337FF993399933333
+ 399377F3777FF333377F993339993333399377F33777FF33377F993333999333
+ 399377F333777FF3377F993333399933399377F3333777FF377F993333339993
+ 399377FF3333777FF7733993333339993933373FF3333777F7F3399933333399
+ 99333773FF3333777733339993333339933333773FFFFFF77333333999999999
+ 3333333777333777333333333999993333333333377777333333}
+ NumGlyphs = 2
+ OnClick = SpeedButton4Click
+ end
+ end
+ object Panel2: TPanel
+ Left = 185
+ Top = 0
+ Width = 282
+ Height = 259
+ Align = alClient
+ TabOrder = 1
+ object Panel5: TPanel
+ Left = 1
+ Top = 1
+ Width = 280
+ Height = 140
+ Align = alTop
+ TabOrder = 0
+ object Label1: TLabel
+ Left = 4
+ Top = 12
+ Width = 63
+ Height = 13
+ Caption = 'Range Name'
+ end
+ object Label2: TLabel
+ Left = 4
+ Top = 62
+ Width = 56
+ Height = 13
+ Caption = 'Range Text'
+ end
+ object Label3: TLabel
+ Left = 4
+ Top = 112
+ Width = 70
+ Height = 13
+ Caption = 'eg. mat-jo;rev4'
+ end
+ object NameEdit: TEdit
+ Left = 4
+ Top = 32
+ Width = 270
+ Height = 21
+ Anchors = [akLeft, akTop, akRight]
+ TabOrder = 0
+ OnChange = NameEditChange
+ end
+ object TextEdit: TEdit
+ Left = 4
+ Top = 82
+ Width = 270
+ Height = 21
+ Anchors = [akLeft, akTop, akRight]
+ TabOrder = 1
+ OnChange = TextEditChange
+ end
+ end
+ object Panel6: TPanel
+ Left = 1
+ Top = 141
+ Width = 280
+ Height = 117
+ Align = alClient
+ TabOrder = 1
+ object ListBox2: TListBox
+ Left = 1
+ Top = 1
+ Width = 278
+ Height = 115
+ Align = alClient
+ ItemHeight = 13
+ TabOrder = 0
+ end
+ end
+ end
+ object Panel1: TPanel
+ Left = 0
+ Top = 0
+ Width = 185
+ Height = 259
+ Align = alLeft
+ TabOrder = 2
+ object Panel3: TPanel
+ Left = 1
+ Top = 228
+ Width = 183
+ Height = 30
+ Align = alBottom
+ TabOrder = 0
+ object SpeedButton1: TSpeedButton
+ Left = 4
+ Top = 4
+ Width = 85
+ Height = 22
+ Caption = '&Add'
+ Flat = True
+ Glyph.Data = {
+ 76010000424D7601000000000000760000002800000020000000100000000100
+ 0400000000000001000000000000000000001000000010000000000000000000
+ 800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
+ FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF0033333333B333
+ 333B33FF33337F3333F73BB3777BB7777BB3377FFFF77FFFF77333B000000000
+ 0B3333777777777777333330FFFFFFFF07333337F33333337F333330FFFFFFFF
+ 07333337F33333337F333330FFFFFFFF07333337F33333337F333330FFFFFFFF
+ 07333FF7F33333337FFFBBB0FFFFFFFF0BB37777F3333333777F3BB0FFFFFFFF
+ 0BBB3777F3333FFF77773330FFFF000003333337F333777773333330FFFF0FF0
+ 33333337F3337F37F3333330FFFF0F0B33333337F3337F77FF333330FFFF003B
+ B3333337FFFF77377FF333B000000333BB33337777777F3377FF3BB3333BB333
+ 3BB33773333773333773B333333B3333333B7333333733333337}
+ NumGlyphs = 2
+ OnClick = SpeedButton1Click
+ end
+ object SpeedButton2: TSpeedButton
+ Left = 92
+ Top = 4
+ Width = 85
+ Height = 22
+ Caption = '&Remove'
+ Flat = True
+ Glyph.Data = {
+ 76010000424D7601000000000000760000002800000020000000100000000100
+ 0400000000000001000000000000000000001000000010000000000000000000
+ 800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
+ FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333000000000
+ 3333333777777777F3333330F777777033333337F3F3F3F7F3333330F0808070
+ 33333337F7F7F7F7F3333330F080707033333337F7F7F7F7F3333330F0808070
+ 33333337F7F7F7F7F3333330F080707033333337F7F7F7F7F3333330F0808070
+ 333333F7F7F7F7F7F3F33030F080707030333737F7F7F7F7F7333300F0808070
+ 03333377F7F7F7F773333330F080707033333337F7F7F7F7F333333070707070
+ 33333337F7F7F7F7FF3333000000000003333377777777777F33330F88877777
+ 0333337FFFFFFFFF7F3333000000000003333377777777777333333330777033
+ 3333333337FFF7F3333333333000003333333333377777333333}
+ NumGlyphs = 2
+ OnClick = SpeedButton2Click
+ end
+ end
+ object ListBox1: TListBox
+ Left = 1
+ Top = 1
+ Width = 183
+ Height = 227
+ Align = alClient
+ ItemHeight = 13
+ TabOrder = 1
+ OnClick = ListBox1Click
+ end
+ end
+end
diff --git a/apps/windoze/CBuilder5/BibleCS/RangeMaintFrm.h b/apps/windoze/CBuilder5/BibleCS/RangeMaintFrm.h
new file mode 100644
index 0000000..e279783
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/RangeMaintFrm.h
@@ -0,0 +1,64 @@
+//---------------------------------------------------------------------------
+
+#ifndef RangeMaintFrmH
+#define RangeMaintFrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <Buttons.hpp>
+#include <ExtCtrls.hpp>
+#include <swconfig.h>
+//---------------------------------------------------------------------------
+class TRangeMaintForm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel4;
+ TSpeedButton *SpeedButton3;
+ TSpeedButton *SpeedButton4;
+ TPanel *Panel2;
+ TPanel *Panel1;
+ TPanel *Panel3;
+ TSpeedButton *SpeedButton1;
+ TSpeedButton *SpeedButton2;
+ TListBox *ListBox1;
+ TPanel *Panel5;
+ TLabel *Label1;
+ TLabel *Label2;
+ TEdit *NameEdit;
+ TEdit *TextEdit;
+ TPanel *Panel6;
+ TListBox *ListBox2;
+ TLabel *Label3;
+ void __fastcall FormShow(TObject *Sender);
+ void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
+ void __fastcall SpeedButton4Click(TObject *Sender);
+ void __fastcall ListBox1Click(TObject *Sender);
+ void __fastcall NameEditChange(TObject *Sender);
+ void __fastcall TextEditChange(TObject *Sender);
+ void __fastcall SpeedButton2Click(TObject *Sender);
+ void __fastcall SpeedButton1Click(TObject *Sender);
+ void __fastcall SpeedButton3Click(TObject *Sender);
+ void __fastcall Button1Click(TObject *Sender);
+private: // User declarations
+ SWConfig *config;
+public: // User declarations
+ __fastcall TRangeMaintForm(TComponent* Owner);
+};
+
+class TCustomRange : public TObject {
+public:
+ string name;
+ string text;
+ TCustomRange(const char *name, const char *text) {
+ this->name = name;
+ this->text = text;
+ }
+};
+
+
+//---------------------------------------------------------------------------
+extern PACKAGE TRangeMaintForm *RangeMaintForm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/BibleCS/SplashPage.cpp b/apps/windoze/CBuilder5/BibleCS/SplashPage.cpp
new file mode 100644
index 0000000..6da6cf3
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/SplashPage.cpp
@@ -0,0 +1,16 @@
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+
+#include "SplashPage.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TSplashPg *SplashPg;
+//---------------------------------------------------------------------------
+__fastcall TSplashPg::TSplashPg(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder5/BibleCS/SplashPage.dfm b/apps/windoze/CBuilder5/BibleCS/SplashPage.dfm
new file mode 100644
index 0000000..efb272c
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/SplashPage.dfm
@@ -0,0 +1,4962 @@
+object SplashPg: TSplashPg
+ Left = 429
+ Top = 337
+ BorderIcons = []
+ BorderStyle = bsNone
+ Caption = 'SplashPg'
+ ClientHeight = 150
+ ClientWidth = 350
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -14
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poScreenCenter
+ Scaled = False
+ PixelsPerInch = 96
+ TextHeight = 16
+ object Image1: TImage
+ Left = 0
+ Top = 0
+ Width = 350
+ Height = 150
+ Align = alClient
+ Picture.Data = {
+ 07544269746D61709E680200424D9E6802000000000036000000280000005E01
+ 0000960000000100180000000000686802000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00FDE7E6FCE6E6FBE6E5FBE6E5FEE9E7FEE9E7FDE7E6F2DCDBF9E3E2FEE9E7FC
+ E6E5F7E1E0F4E0DEF7E1E0F7E1DFEBD5D4EAD4D2F2DCDBF0DAD9ECD8D7E3CECD
+ E4CECDE6D1D0E4CECDEBD5D4EBD5D4DAC5C4D7C2C1E9D1D0E9D2D1E2CBCBD8C2
+ C0E7D1D1E3CCCBECD5D4E9D2D1D8C1C0DFC7C6E6D0CEE6D0CFE9D1D0EAD4D2D9
+ C3C2DEC6C5DFC9C6EBD4D2EBD4D1E3CBCAEAD2D0E3CCCAE4CDCCE6CFCDE3CBCA
+ E6CFCEDFCAC7E4CECDECD5D5E2CBC9D9C2C1ECD4D4E9D1CFE3CBCADFC5C4DEC4
+ C4E9D0CEDFC6C5DAC1C1DFC5C4E1C9C7E2CAC9E0C6C5E1C7C6E2CAC7E1C7C6DC
+ C3C2D9BFBEE1C6C5E4CBC9EBD0CFF0D7D5E0C5C4EED2D2F5D9D7ECD0CEE6CBCA
+ EDD1D0F2D7D5F0D5D4EACDCCEED2D1F3D6D4EDD0CEEACCCBF0D4D1E3C5C3EED0
+ CFE7CAC7EED0CFEACECCEACECDEBCFCEE1C6C5E0C5C3E7CCCBEDD1D0E9CCCBEC
+ CECDEED1D0ECCECEE9CDCBEFD5D4EFD4D2EED0CFEBCECDEACBCAEED0CFEECFCD
+ EDCECCEBCCCCEFCFCEEDCDCCEACAC9EECECDEBCAC7EFCDCDEECDCBE4C2C1EECD
+ CBECCBC9EECECCEACAC6F0CECDF4D0CFF3D0CEEECCCAF0CECDF0CECDF0CDCCE7
+ C5C3E6C3C3EBC9C7EAC6C5E4C2C0DFBBBADFBAB9EDC9C7EECAC9EEC9C7EECAC7
+ EEC7C6EDC6C5F0CBC9F0CBC9EFCBCAEBC6C5EBC6C4EFCAC7F0CCC9F0CBCAEFC7
+ C5E7C0BEECC2C1E5BEBAE9C0BEE1BAB7E5BFBDEECAC6F2CAC7EAC1BEECC4C2EA
+ C2C0ECC6C4EFCBC9E2BEBBE9C3C1F2CBC9F3CBC9F4CBCAEFC7C4F0C9C6E9C3C1
+ F3CECBF4CDCBEFCAC7F4CFCDEFCECCE2C0BFE6C2C1E6C1BFE7C1C0E7C2C0EAC3
+ C1E7C0BFEEC6C5EBC3C1E6BFBDE4BDBAE9C1C0EDC6C4E2BDBBE9C3C2EDCAC7EB
+ C7C5EAC4C2EAC4C2E5C1BFE4C0BEEBC7C4EECAC9EBC5C3DEB8B6EDC7C5ECC7C5
+ E4C0BFEDC9C6EBC7C5E3C0BEE9C4C2E5C0BFE7C3C1EFCBC9EDCAC7E9C6C4EAC9
+ C6E9C9C6E7C5C4EFCDCBEBC7C5E6C4C2EFCBCAF7D4D2F2CFCDEBCAC7F8D8D6F7
+ D6D4F4D2D1EDCCCCE9C9C7E4C3C2E9C9C7E9C9C6E7C7C6F2D2D0F3D4D1F3D4D2
+ F2D1CFF3D4D1EDCECCECCDCCF2D5D2E6CAC7E2C4C2E9CCCBECCFCDF0D4D2ECCF
+ CDF3D6D4F5D8D8F0D5D4E5CBCAE4C9C9F0D5D5E2C6C5E5CCCAEDD2D2ECD1D0DF
+ C5C3E7CECCE7CDCDDAC1C0DFC5C4EFD8D6ECD4D4EDD6D5F2DAD9F0D9D8EDD6D5
+ EDD5D5E7D0CFEDD5D4EDD5D5E0C9C7EFD9D8EAD2D1DCC5C3E3CDCCEDD6D5EFDA
+ D8ECD6D4F2DBD9ECD6D6EAD2D2EBD4D4F4DEDCEED9D7F2DBDAF6E0DEF2DAD9F3
+ DBDAF2DBDAF0D9D9EED8D7F3DCDBEAD5D5E1CCCCEED9D9EED9D9ECD6D7EAD4D2
+ DFC9C7E6D0D0F8E1E0F2DCDBEFD9D8F3DEDCE4CFCEF0DBDAF7E2E1F2DCDBF2DE
+ DCE5D0CFF7E1E0F9E4E3F0DCDBF2DEDCEBD5D4F5DEDCFBE4E3F6E1DFF0DBDAF4
+ E0DFEFDAD9EAD6D5E2CECDF2DFDEEAD7D6EFDEDCF2E0DFEEDAD9E1CECDE5D1D0
+ E2CECDF2DFDEEBD8D7E1CDCDEDDBDAF2DFDFE0CDCC0000000000000000FDE7E5
+ FDE7E6F9E4E2E4CFCDF3DFDCFDE7E6FCE6E5F6E1DFF8E1E0FDE7E6F9E3E2F4E0
+ DFEFD9D8F5DFDEF3DEDBDBC6C5D7C1C0E9D4D2ECD7D6E9D4D2D7C2C1DCC7C6DA
+ C5C4D8C2C1E6D1D0ECD6D5E7D1D1E5CFCDE9D4D2EFD9D8E9D2D1ECD6D4ECD6D5
+ DFC9C6F0D9D8F0D9D8E9D1D0E0C9C7E5D0CEE1CAC9EAD2D1EDD6D5E5CFCDE0C9
+ C7E7D0D0ECD4D2ECD5D4E4CCCBEAD2D0D2BBBAE3CBCAE6CFCDEBD2D1EDD8D6E6
+ D1CFE2CBCAEDD7D6EAD4D2DEC6C5E7D0CFEAD1D1F2D9D8E1C9C7DBC3C1E6CECE
+ E4CCCADAC2C1E6CECDEDD5D4EED5D4EDD2D2EED5D4EDD4D4EDD2D2EAD0CFE1C7
+ C6E7CECEE4CBC9EED4D2EFD6D4DEC3C2EDD1D0F3D7D6EED2D1EFD5D2ECD0CEE7
+ CCCAE7CCCBE5CAC7E5CAC7F0D4D2EDD0CEECCFCDF0D4D1EACDCBEED1CFEACCCB
+ E3C5C4E0C2C1E1C4C2F2D6D5EFD4D4ECD1D0F0D5D5F2D5D5EDD0CFE9CBC9EDCF
+ CEECCDCDE6CAC9E3C6C5E9CDCCEACDCCDFC2C1DEC0BFE4C5C4E6C7C6EBCCCCEB
+ CCCBEFD0CEEECFCEEECDCDEFCFCDE4C3C2E7C7C5EECDCCEAC7C6EBC9C6EAC9C6
+ EDCBCAECCBCAEECDCBF2CFCDF0CECCECC9C7F0CDCCF3D0CEEFCDCBEBC9C7EAC6
+ C5EDCBC9EECBCBEECAC9E9C5C4E2BFBDEBC6C5ECC7C6EAC5C4EBC7C5EAC3C3E6
+ C0C0E7C0BEE9C3C2EBC5C4E7C3C1E7C2C1EEC9C7EFC9C7EFCAC7ECC4C2E9C0BE
+ E6BDBBECC3C1F2C7C5F3CAC7ECC7C5ECC9C6ECC5C2EDC3C2EFC7C4EDC5C3ECC5
+ C3F2CCCAE5C1BFE5BFBEEFC7C5F2C9C7EFC6C3ECC2C0E9C0BEE1BAB9ECC6C4EF
+ CAC7EEC6C5F4D0CEF0CFCDECCAC7E6C2C0F0CBC9F0CAC9ECC5C4ECC5C3E7C0BE
+ ECC4C2ECC4C2ECC4C2EBC3C1EAC3C0EBC5C3DFB9B8E7C4C2ECC9C6ECC7C5E4BF
+ BDE4C0BDDFB9B8DCB7B5D9B5B4E3BFBBEAC4C2E6C0BFEBC5C4E9C4C3E4C0BEED
+ C9C6E9C6C4E3BFBEE9C6C3EAC5C3ECC6C4F4CFCDF3D0CEF0CECCF0CFCDF4D0CF
+ F0CDCBF0CDCBECC9C6E5C2C0DEBBB9F4D2D0F2CFCDE4C2C0F4D4D1F5D5D4F5D5
+ D4F3D2D1F2D1CFEFCFCEEECECDEACBCAE4C5C4E9CAC9EDCDCBEACAC9E5C6C4EF
+ D0CEE3C4C3DCBEBDE6C9C7E5C7C5E1C4C3ECCFCEEACDCCF2D5D2DCC0BEF0D5D2
+ F3D7D7F4D7D7F3D7D7EFD4D2F2D7D6ECD0D0F2D6D6F3D8D6F3D9D8F0D7D6EED4
+ D2F2D8D7E7CECDEFD6D6F2D9D9E7D0D0E7CECEEDD4D4EFD8D8EDD5D4EDD5D5EB
+ D4D2EDD6D5EED8D8ECD6D5F2DAD9EDD8D6DFC9C7E3CECCEFDAD8F4DEDEEDD6D5
+ ECD5D4E3CCCBE2CBCADFC9C7E5D0CFEDD7D6F2DBDAF2DBDAEDD7D6ECD5D4EFD8
+ D8F2DBDAE7D1D0F2DBDAEED9D9EED9D9F3DEDEF3DFDEF0DBDAF3DEDCF4DFDEF7
+ E1E0F9E3E2F0DAD9F0DAD9EED8D7D9C4C3E9D2D1F6E0DFEFDAD8E9D2D1D4BFBE
+ E4CFCEECD7D6F0DCDBE7D1D1DEC7C6F6DEDCF6DFDEEDD9D8F3DFDEF8E4E3F0DB
+ DAE9D5D4E7D4D2F0DBDAECD8D7E5D2D1EDD9D9F4E1E0ECD9D8E7D5D4F3E0DFF7
+ E3E2F2DFDFE4D4D2F8E4E3F6E3E2EFDCDB0000000000000000D9C4C4DBC6C5D5
+ C1BFC6B3B1C6B2B0D1BDBAE0CBCADCC7C6D0B9B8E7D4D2DECAC7DAC4C3D0BBBA
+ E5CFCDEED8D8DFC9C7D2BEBDE3CDCCECD8D7ECD7D6E3CDCCECD6D5E9D5D2E5D0
+ CFE5D0CFEBD5D4E4CECDE9D2D1ECD6D5EBD5D2E4CDCCE7D0CFE2CCCBD4BEBDE7
+ D0CFECD5D4E2CCCBE9D1D0EFD9D7E5CFCDE9D1D0EAD2D1E2CBCAE4CDCBEBD4D2
+ EED7D6ECD5D4EED8D6F3DAD9ECD5D4F0D8D7E4CBCAEAD1D1EFD9D8EDD8D6EAD4
+ D1EED8D7ECD6D6E5CFCEE3CCCBE6D0CEF2D9D8E7D0CFE0C7C7E6CECDEAD0D0DB
+ C2C2E6CECDEBD2D0EDD2D2E7CFCDE7CFCDEDD2D2EED4D2E7CDCCE2C9C7EDD2D1
+ DCC1C0E2C6C5E2C7C5D8BFBDE0C5C3EFD4D2EDD1D0EED2D1F0D6D5F3D7D5F2D6
+ D5F2D6D5F0D4D1F4D8D6F3D6D4EED1CFF2D5D4F0D4D2F2D6D4EFD2D1ECCFCED7
+ BAB8D4B7B6EDD1D0F2D5D4F2D7D6F3D8D7F3D7D6F2D5D4F0D4D2EECECDEECFCE
+ ECCFCDEED1D0EFD4D2F2D6D5EDD1D0EED1D0EBCDCDE5C6C5EECECEEBCBCAEACA
+ C9E6C5C5EBCAC9ECCCCBD9B8B7D8B7B6E1BFBEEDCBC9ECC9C7EFCBCAF2CFCDEC
+ CBC9ECCBC9F2D0CEF4D0CFEFCCCAF2CFCDEECDCBEDCBCAEECDCCECCBCAECCAC7
+ EDC9C9EFCBCBEEC9C7E3BEBDEAC4C4ECC7C6ECC7C6ECC7C6ECC6C5E4BFBEDEB6
+ B5DAB4B2EAC5C3ECC6C5ECC5C4EEC7C6ECC6C5EDC6C4EFC7C5ECC3C1E9BEBDEF
+ C6C4F2C9C5F2C9C6EFC9C6EECBC9EFC9C7E6BEBBEFC5C4EEC4C3EFC7C5F4CECC
+ EDC7C6E6C0BEF0C7C6F4CAC7EDC2C1DAB1AED9B1AED9B3B2DAB4B3E0B8B6E7C1
+ BFF3CECCEFCECDEDCAC9E1BBB9ECC5C4EFCAC7EFCAC6EFC9C6EAC2C0EFC6C4EC
+ C3C1EFC6C4EFC6C5EFC9C6EEC6C5E3BEBDE7C4C2EEC9C9EECAC7EBC5C3ECC6C5
+ EBC6C4EDC9C6EDC7C5EBC5C2EDC7C5EAC4C3E3BFBDE5C3C1E5C3C0EAC6C5EBC7
+ C6E5C2C0ECC6C5EDC9C6E9C5C2F4CFCDF4D1CFF4D2D0F4D1CFF4D1CFF4CFCDEF
+ CCCAF3CFCDF4D1CFF2CFCDF8D6D4F6D4D1E5C4C2EECDCBF2D0CEF4D4D1F3D2D1
+ EFCFCDEECECCE9C9C6E2C2C1E2C3C2E1C2C1E9CAC7E9C9C7E5C6C4EECFCEEDCE
+ CCF2D4D1F4D5D4F2D4D1F2D6D4F2D5D4F5D8D6F7D9D7E0C2C0F4D6D5F5D9D7F4
+ D8D8F4D8D7F5D9D8F5DAD8F0D5D4EED4D2F2D7D6F5DAD9F3D8D7EFD6D5EAD1CF
+ E9D0CFEED5D5F0D7D7EFD8D7EAD1D2F3D9D9F0D8D7EDD4D4EED7D7EED8D7EDD6
+ D6E1CCCCE3CFCEEFDBD9F0DBDAEAD2D1E5CFCEF0DAD9F4DEDBF3DCDAF0DAD9EC
+ D5D4DEC7C6ECD5D5EDD7D6ECD6D5F3DBDAF3DCDAEAD4D1EAD2D1F2DCDAEED9D9
+ EBD5D6E6D1D1E3CFCFEAD5D5EDD9D8F0DBDBECD8D7F0DAD9F2DBDAF2DCDBF4DF
+ DEECD6D4ECD6D6EED8D7DBC5C4DFC9C7EED9D8EDD9D8ECD6D5E0CBCAE9D4D2F6
+ E0DFF8E2E1F2DBDAE5CECCFBE4E3F9E4E3E9D5D4F2DEDCF6E2E1F2DEDCF2DEDC
+ EEDAD9F8E4E3F7E2E1ECD9D8F5E2E1F6E3E2ECD9D8E0CDCCF7E3E2F9E5E4EFDB
+ DAF3E0DFF9E6E5F4E1E0EEDBDA0000000000000000F4DFDEF6E1DFECD6D5C6B2
+ B0C6B2B0D4C0BEF2DCDAEBD5D4D5C0BFF6E0DFE9D5D2E1CCCBDEC7C6EED8D8F5
+ DFDEE6D0CFDAC5C3DBC6C5EDD8D7EAD5D4E2CDCCE7D4D2E7D2D1E3CDCCDEC9C7
+ D6C1C0D7C1C0DFC7C6E3CDCCD8C2C1D7C0BFD7C0BFE0CAC9D9C2C1E6CFCEEBD5
+ D4E2CBCBECD6D5EDD6D5DFC7C6ECD5D4F0D9D8E6CFCEDEC6C5EED7D6EDD6D5DC
+ C5C4EAD1D0EBD4D2E6CFCEEFD7D6DEC6C4DFC7C6E4CDCCE7D1CFE9D2D1EDD7D7
+ ECD5D4E9D2D1E2CAC9E0CAC9EDD7D6EED7D5E5CECCE0C9C7D6BEBDD4BBBAD9C1
+ C0E6CDCCE3CAC7DAC2C1DAC0BFE7CECDE7CECDDBC1C0D5BBBBE5CBCAE2C6C5E5
+ CBCAECD1D0E5CBCAE7CDCBEACFCFE2C6C5DEC3C1E7CCCBEFD4D2EFD2D0E5CAC7
+ DBC0BFF3D6D5EED1D0EBCECCF0D2D1ECCFCFF2D5D4EED1D0EDCFCED5B7B6D4B7
+ B5E7CBCBEED2D1EDD2D1EED4D2EFD5D4EED4D2E9CBCAE5C7C6ECCDCCEECFCEEE
+ D0D0EED2D1F2D5D4EED2D1F0D4D2EFD2D1EDCECEEFD0CFECCDCCEACAC7EACAC9
+ E5C4C3E6C5C3D8B7B6D8B6B5DFBDBAEAC7C6EECCCBF0CDCBEECBC9F4D0CEF5D4
+ D1F5D1CFF5D2CFF3CECCF4CFCEF3CFCEEFCECDEFCDCDEECDCBEDCBC9EECBCAEF
+ CCCAEECBC9EAC4C3EBC6C5EDC9C6EAC5C4ECC7C5EDC7C6EAC3C2DEB5B4DAB4B2
+ E2BBB9ECC5C3EFCAC7F0CBC9F0CBC9F0CBC9F3CBC9EEC5C3E7BDBAEFC4C2F2C7
+ C5F2C9C6EAC2C1EDCAC9F0CBCAE6BEBBF3C9C6F4CAC7F3CAC7F4CCCAEAC3C1EA
+ C2C0F3CAC7F4CAC7EBC0BFDEB2B1E6BDBAE4BEBADEB7B5D9B3B1E2BBB9F5D0CE
+ F0CFCDEBC6C5E3BEBAEEC6C5EFC9C5EEC6C5EDC5C3ECC4C1EFC5C3EBC2C0EFC5
+ C4ECC4C2EFC7C4ECC6C5E2BEBBE9C4C2EDC9C6ECC7C5E9C2C1E4BEBDE5C0BEEB
+ C6C4EAC4C2E6C2C0EAC5C3EAC4C3E3C0BEDFBDBAE2BFBDE7C4C3EAC6C4E6C2C0
+ EBC5C3EBC5C3E6C2C0EFCCCAF4D1CFF4D0CFF4D0CEF3CFCDF2CECCECC9C6F2CE
+ CCE7C6C4E9C5C3F6D2D1EFCFCDD8B7B5E6C5C3E9C6C5EFCECDEECCCBEECECCEE
+ CECDEFCFCEEECFCEE9CAC9EECECDEDCDCDF2D2D0F0D1CFF2D2D0F3D5D2F2D4D1
+ F2D4D1EDCFCFEFD1D0E9CCCAF3D6D4F3D5D2DBBEBDEACCCAF3D7D5F0D6D4F0D6
+ D4EED2D1EDD1D0EDD2D1EFD5D2F2D7D6F5DBD9F5DBDAF3D8D7ECD1D2E7CECDE7
+ CECDF0D7D7EDD4D4EDD4D2F0D7D7EED7D7E7D1D1E7D2D4EDD8D8EBD6D6E7D4D4
+ E5D0D1F0DCDBF3DEDBEFD9D8E5CECEF4DEDBF4DCDCF3DBDAF3DBDAF4DEDCF3DB
+ DAF4DCDCECD5D5E9D0D0F3DBDAF4DEDEECD5D5E9D2D2ECD7D5EFDAD9EDDAD9E7
+ D5D4E7D5D4DECACAE5D1D2ECD8D8DEC9C7DBC7C6E6D0D0EDD8D7F4DFDCEDD8D7
+ F3DEDBF4DEDCDFC9C7D4BFBDEFD9D8F3DEDCEDD8D7EAD5D4E4CFCEF2DBDAF7E1
+ DFE7D0CFE3CDCBF0DBDAF5E0DFE7D4D2F2DFDEF8E3E2EFDBDAF2DEDCF3DFDEF8
+ E3E2F2DFDEEFDBDAF8E3E2F8E3E2EFDBDAE1CDCDF2DFDEF7E3E2E5D1D0F5E2E1
+ F8E4E3F4E1E0EFDCDB0000000000000000FEE9E7FDE7E5F9E5E4CAB5B4C6B2B0
+ DCC7C6F9E5E3F3DEDCDFCBC9E9D5D2E5D1D0E6D2D1E9D4D1F0DAD9E7D2D1D6C0
+ BFCBB6B5CCB7B6EAD5D4E7D2D1DCC7C6DAC5C4DFCAC9D8C3C2DFCBCAE5D0CFD7
+ C1C0E0CAC9E0CAC9E0C9C7DBC5C4D6C0BFE7D1D0E2CBCAEDD6D5EDD6D5D9C2C1
+ E6CFCEEAD2D1EBD4D1F2DAD9F3DBD9EAD4D1D8C1C0E5CECDE9D1CFDEC6C5D7C0
+ BFD4BEBBDCC4C2EED6D6E3CBCADCC5C3E0CAC9E4CDCCEDD7D6EFD9D8EED8D7ED
+ D7D5ECD5D4E7D1CFEED7D6F2D9D9EDD6D5EDD4D4DBC4C3D9C1C0E7CECEE7CECD
+ E3CBCAE7CDCDE6CDCCE7CDCCE5CCCBDAC0BFDABFBFE2C7C5E2C7C5E4CAC9EFD4
+ D2ECD0CEE9CDCCE4CAC9E4CAC7E4C7C5D7BABAD9BDBBE6CAC9E0C4C3E1C5C3EF
+ D2D0E1C4C2E3C6C4EBCECDE7CCCAF2D4D2EACDCBEBCDCCD7B9B8D5B8B7E6C9C9
+ EDD0CFE9CCCBECD0CFEED4D2F0D6D5EED1D0DFC1C1DEBFBEE2C3C3E2C3C3E7C9
+ C7E3C5C4DBC0BFE7CCCBF0D4D2EFD1D0EECECDE9C9C9E7C7C5ECCCCAEFCFCDF0
+ CFCDD8B7B6D8B6B5E6C3C2EDCAC7ECC9C6F0CBC9F5CFCDF4CECCEECAC7E5C2BF
+ E4C0BEE1BDBBEDCAC7EDCAC7E6C4C3EECDCCEBC9C7E3BFBFEAC6C4EECAC9ECC7
+ C6E6C2C0E7C2C1E7C3C1E6C1BFE9C2C1ECC5C4ECC5C3DEB5B4DBB4B2E9C1BFE9
+ C4C2ECC5C3E6BFBDE0B9B8E0B9B7EBC4C2EBC2C1E0B5B3EFC4C2EFC4C2EEC4C3
+ E6C0BEEAC7C5F0CBC9ECC3C1F0C6C4F0C6C4EAC2C0E4BDBAE2BBBAE0B8B6EDC3
+ C2F0C6C4EDC2C0ECC0BFEFC6C3EFC9C6E3BDB9D9B1B0DCB6B4F4D0CEF4D1CFEF
+ CAC7E4BEBAEAC3C0EBC3C1EAC2BFE9C0BEEDC4C3EBC2BFE0B7B5E9BFBDECC4C2
+ ECC4C3E7C1C0DEBAB7E7C3C1EAC5C4E6C2C0E5C0BFE4C0BDE2BEBBE0BAB8E0BB
+ B9E0BAB9E7C2C0E7C3C2DFBAB9E1BEBBDEBAB8DAB7B6DAB5B4D9B5B3DFB8B7E5
+ C0BEE1BDBADCB9B7E1C0BDE7C4C2E0BAB8EBC6C4EECAC7EFCCCAEECBC9E6C3C1
+ DEBAB8EFCCCBF3D0CED8B7B5DAB8B7E5C3C2EACAC7EECDCCF0CFCEEFCFCDEECF
+ CDEACAC7E2C3C1EDCDCDEBCCCBEDCFCEE7C9C7EDCECCF2D4D1E7CAC9E6C9C6E2
+ C4C3E4C6C4E7CAC9E6C7C6E7CAC7D6B8B6E2C4C3F2D5D4EFD2D1E2C6C5DFC4C2
+ E6CBCAEACECDEBD0CFF0D6D4F0D6D5EED5D4DFC4C4ECD1D0EDD2D1DEC4C4DFC6
+ C5DAC1C1E5CCCCE7D1D0E9D4D2E1CBCBE5CFCFEDD8D7EEDADAEEDADAECD8D8EF
+ DCDAF3DEDCEAD4D2DEC6C6E9D2D1E0C9C7E3CBCAEDD5D5EAD1D0EFD8D7EBD2D2
+ D8C1BFD4BDBBDCC5C4EDD8D7E0CACAE2CDCDE3CECDEDD9D9ECD9D9ECD8D9EBD7
+ D7E3CFD0E5D2D2EBD8D8E5D1D0EDD9D8F0DADAEED9D7E1CBCAD7C1C0E9D2D1F4
+ DEDCEFD9D8D9C3C1E5CFCEE6D0CFE6D0CFD5BFBEDAC5C4D9C3C1EED7D6F3DCDB
+ E7D2D1F0DBDAF2DEDCF3DFDEF6E1E0F6E2E1EAD6D5E6D2D1EDD9D9F0DCDBECD7
+ D6EFDBDAF7E3E2EFDCDBEFDBDAE5D2D2F9E5E4F3E0DFDAC6C5E7D5D4F0DFDEE7
+ D5D4EFDEDC0000000000000000F2DEDBF9E4E2F9E5E4CCB6B5C6B2B0E3CDCCFB
+ E5E4EAD4D2C7B4B3CDB7B6D0BABAD0BBBADFC9C7F5DFDEF4DFDED2BEBDC9B4B3
+ CAB5B4EDD8D7EED9D8D5C0C0CCB7B5CEB9B9D4BFBED5C0C0EAD5D4E6D0CFD5BF
+ BECDB7B6CFBAB9CEB8B7CEB8B7E6D0CFE2CCCBE9D2D0D5BFBECEB8B7D0B9B8CF
+ B9B8DAC4C4EDD8D7F0DAD8DBC5C4CEB7B6D2BDBBD9C2C1D0B9B8CDB6B5CFB7B6
+ E4CCCAE2CAC9CDB5B4CEB7B5DAC3C2E4CECDE9D2D1EDD7D6EDD7D7EDD5D4EDD6
+ D5EBD4D2EDD7D6EED7D6EED7D6EFD7D7EDD5D5E1C9C9E6CECCD4BBBAD0B8B6D4
+ BBBAD5BBBACFB5B5CFB5B5D5B9B9D5BAB8CFB5B4CFB5B4D1B7B5E7CCCBE0C5C3
+ D2B8B6D2B7B6D9BFBDDABFBDCFB3B2D1B4B3D5B8B7D4B8B6DCC1BFD6BAB8CFB3
+ B2D1B5B4DBBFBFE1C4C3D7BBBAD7B9B9E4C7C6D8BBBAD7B9B9D9BEBDDFC3C1D8
+ BBBBDBC0BFEDD1D0EFD5D4E9CFCED7BAB9D9BBBBEDCECEEDCDCCDBBDBDD8BAB9
+ D8BAB9D8BBBADFC2C1E9CBCAE6C9C6D8B8B7D8B7B6DAB9B9F0CFCEF0CFCED9B8
+ B6D8B5B4E0BEBDE6C2C1E1BDBAEBC6C3EFC9C6EAC4C2D8B4B1D5B2B13E343388
+ 7270DAB6B5E0BDBAEAC5C5EFCDCCEBCAC7EAC6C5ECC9C6E7C3C2DAB7B5DBB6B6
+ DFB9B7DEB8B6DCB7B6DCB7B5E7C0BFE9C1BFDFB7B5DBB3B2EAC1BFE9C1BFE0B9
+ B7DAB3B2DBB5B3DBB5B3DAB4B2E4BAB9EABFBDEEC3C0DCB2B0DBB1B0DBB5B3DB
+ B7B5E0B9B7EAC0BEE5BBB9EBC1BFDFB4B3DBB2B0DBB4B3DAB2B1DEB4B2F4C9C7
+ F0C5C3ECC1BEE3BAB7DBB5B3D9B2B0D9B1AEDCB6B4F4CFCCF4D0CEEECAC6E0B7
+ B6DBB3B2D9B2B0D9B1B0E2B8B6EFC5C3E1B7B5D9B0ADDCB3B2E9C0BEDFB8B6DA
+ B4B2DAB6B3DCB7B6D9B5B2DAB5B3DFB9B8E9C4C2DFB9B8D9B3B1D9B3B2E4BEBD
+ EAC3C3EAC4C3E7C4C2E0BDBBD8B4B3D7B4B1D7B3B1D7B2AED7B2B0E5C0BEDBB7
+ B5D4B1AED6B3B1DCB7B5D2ADABD2ADABD4B0ADEECAC7F0CDCBD6B2B0D1ADACDB
+ B9B8E7C5C4D4B1B0D4B2B1D8B6B4D9B7B6E7C6C4F3D2D0EACAC7D7B7B6D2B4B2
+ D2B4B2EACBCAECCDCBEED0CEE5C7C6F0D2D0F2D4D2E6C9C6D4B6B4D1B3B1D8BA
+ B8D7B9B8CEB0ADCEB0AED6B8B6E7CBC9E5C9C7D4B7B6D2B7B6D4B7B6D1B7B5D6
+ BBB9E5CCCBEED5D2E9CECED1B7B6D0B6B5DFC5C3EDD2D2DEC3C3D6BDBAD7BFBF
+ DBC3C4DBC5C4DBC5C5D7C2C3DBC6C7DECBCAE4D0D0E9D5D6E2CECEEAD5D6E9D4
+ D2D5BFBED2BDBDD5BFBED2BDBDD6C0BEEDD6D5EAD4D1ECD5D5D6C0BED1BBBBD2
+ BDBDD5BFBDD6C1C2DCC7C5E3CECDE4CFCDECD7D7EBD8D8ECD9D9E0CDCCD6C4C3
+ D8C5C4D9C7C6D9C6C6E4D0CFE9D4D2D1BBBACBB5B4CBB5B4D5BFBFF3DEDBF5DF
+ DEF4DEDEF7E2E0E9D4D2CEB8B8CDB7B6CFBAB9C9B3B2D1BAB9F5E0DFF8E3E2F4
+ E0DFF4E0DFF3DFDEF0DBDAD6C2C1CBB7B6CCB8B7CDB9B8CCB8B7D2C1BFEDD8D8
+ DCCAC9CAB7B6CDB9B8D7C4C3E5D1D0CEBAB9CBB8B7CEB9B9CCB8B7D9C6C5E7D5
+ D40000000000000000F3DEDCF9E5E3ECD7D6C6B2B0C6B2B0D9C3C1F6E0DFE2CC
+ CBC7B4B2DCC7C6F0DBDAEBD5D4D8C2C0F6E0DFF3DEDCCFB9B8C9B4B3CAB5B4E3
+ CDCBEDD7D6CEB9B8CCB7B5E5D0CEEAD5D4E5CFCEE7D1D0D7C0BFCDB7B5D4BEBD
+ E9D2D1D9C3C2CDB6B5D7C1C0DBC6C5D8C2C2CFBAB9D2BEBED8C2C1D0BAB9CFB9
+ B9EED8D7F0D9D9D0BAB9D0B9B9ECD6D6EFD8D8D2BEBDCFB9B8E0C9C9E6D0CFDF
+ C7C7CDB6B5D0BAB8E5CFCEECD4D4E7D1D0EDD7D6EDD6D5EDD5D4EDD7D5E6D0CE
+ ECD4D4ECD4D2E9D1D1EFD8D7EDD5D2E2CBC9D8C0BFCFB6B6D4BABAE7CECDDBC2
+ C2CFB5B5D0B6B5DCC3C2DFC4C3D0B6B5CFB5B4DFC4C3E3C7C7D5BAB9D1B6B4D6
+ BAB9DFC4C3D6BAB9CFB3B1DFC2C1EACDCBD5B8B6DABEBBE5C9C7D1B5B5DABEBE
+ E6CBCBDFC3C2D7BBB9DABEBDEBCECDDEC0BFD7BABADBBFBEE5C7C6DBBEBDD7BA
+ B9DCBFBEE9CDCCDCC1BFD7BDBBDEC2C1EED1D0E6C7C6D7B8B7E2C2C2DEBFBED8
+ BAB9D8BBBAE6C9C7EDCFCEDABDBBD8B8B7E0C0BEEDCCCBE9C6C4D8B6B4D6B4B2
+ ECC7C6F0CDCBDCB7B6DFB9B7F2CBC9DEB7B5D5AEADD9B5B2CFB1AE413837D8B4
+ B2D9B5B3E5C2C1EFCDCCEDCCCAEDCAC9EFCAC9E1BDBBDAB6B5E2BDBBEEC9C6E7
+ C1C0DCB6B5DFB7B6EAC3C2E9C0BFDEB5B4DBB2B1EFC5C4EDC5C4DAB4B3DBB4B2
+ EBC2C1E4BDBADBB4B2DBB1B0E7BDB9E6BAB8DBB0ACE3B8B6EEC5C4E3BEBBDBB5
+ B3E5BBB9EEC3C1E5BBB9D9B0ADE6BEBBF3CBC9E0B7B5D9B1ADF0C4C2EFC3C1DA
+ AEACD9B0ADD9B3B1E0B7B5EAC0BEEBC4C2F0CDCBF3CECCECC6C3E7BFBDE6BEBB
+ D9B2B0DAB2AEE7BDBAE7BDBBDBB1AEDEB3B1EAC0BEE6BFBDD9B3B1DBB6B4E0BA
+ B8E1BBBADAB6B4DAB6B4E3BFBEE9C4C2DAB5B3D9B3B1DFB7B6E7C2C0E9C3C1E9
+ C3C2E6C2C1DCB8B6D8B3B1DCB7B6E7C1C0E6C0BEDAB6B4DAB7B4D6B4B2D4B0AD
+ E5C0BEF2CDCBD5B1AED2AEABDEB9B7F0CCCAECC9C6D2ADABD2AEADE3C0BEDFBA
+ B9D2B1AED8B5B4E6C5C3E1C0BED9B7B6F0D0CFEBCBC9D4B4B2D2B3B2D2B4B2E0
+ C0BFECCDCCE4C6C5DFC1C0EED0CFEDCECDD2B5B4CFB1AED7B8B7F2D4D1E0C1BF
+ CEB0ADCEB0AEE1C2C0E5C7C5D6B8B6D0B4B4E2C6C5EFD4D2D7BEBBD1B7B6DBC1
+ C1F2D8D6ECD1D1D1B7B5D2B7B6E2C7C5E7CDCBD2B9B7D6BFBEDCC4C4D9C2C2D9
+ C3C3E5D0D0DAC5C5D6C3C3DBC7C7E5D1D0EDD9D8DEC9C7E9D4D2DBC4C4D2BDBD
+ DEC7C6F0DAD9DEC7C6D2BDBDE7D1D1F2DBD9EAD2D2D2BDBDE0C9C9E1CCCBDAC5
+ C3D5C0BED8C3C3E5D0CFE9D4D4EDD9D9EDDAD9E4D1D1D6C3C2D9C5C5E6D4D2ED
+ DAD9EAD7D7E6D2D2ECD8D7E6D0CFCBB5B4CDB7B6ECD6D6F8E1E0EED8D7F4DEDC
+ F2DCDBD1BDBBCBB6B4D1BDBBF4DEDCD2BBBACAB5B4D4BFBEF3DFDEF0DBDAF6E1
+ E0F3DFDED7C3C2CBB6B5CFBBBAF2DFDEE9D5D4CAB7B6CDB8B7F6E2E1E1CCCCCA
+ B7B6D4C1C1E7D5D4D4C1C1CAB7B6D0BDBBE5D2D1D4C2C1CAB7B6D4C1C1000000
+ 0000000000EDD8D6F3DFDCD1BDBDC7B4B2CCB6B5CEB8B7ECD6D5DAC4C2CAB5B4
+ D0BABAF4DFDEF7E1E0F7E1DFF7E1DFEFD9D8CDB7B5CEB8B7CAB5B4DBC5C4EAD5
+ D2D0BAB9CDB8B7D7C2C1DEC7C6E0CBCADFCAC7D0BAB9CCB7B5DAC5C4E0CAC9E0
+ CAC9CFB9B8D5BFBFD4BFBFD2BEBDD0BBBBE9D2D1E7D1D0D8C2C1CFB9B9E3CECC
+ ECD6D6CFB9B8D0BAB9E6CFCFEBD6D4D9C3C2CFB9B8EAD4D2ECD5D4E2CCCACFB9
+ B8D5BEBEE1CBCAE9D1D1E2CBC9E3CCCCE5CECDE5CFCDE6CFCEDAC3C3E9D1CFEA
+ D2D0E3CBCAECD4D1E7D0CEDBC4C3D1B9B9CFB6B6E7CFCEEED6D5EED5D4D0B7B6
+ D1B8B6E9CFCDE7CDCBD2B8B8D2B8B6EFD5D4EDD1D1DBC0C0D1B6B4DEC3C2ECCF
+ CFDEC1C0D2B6B4EBCFCDF3D6D5E4C7C5E5CAC9EFD2D1D6BBB9DAC0BEE0C5C3DA
+ BEBEDFC3C2E2C5C4EED2D0E0C3C2D7BBBAEBCDCDEDD0CFEACDCCD7BAB9DBBFBE
+ E9CBCADEC1C0D7BBBAE3C9C6EACDCCD8BBBAD8B9B8EECDCDE1C0BFE2C3C1D8B9
+ B8DCBFBEEFD1D0E2C2C1D8B8B7E9C7C6ECCCCAEDCBC9D7B5B2D6B3B1ECC7C6F3
+ CECCE9C4C2EBC5C3F6CFCDDEB7B5D5ADABE2BBB9F2CECC443A3A897372D9B3B2
+ E6C2C1EDCAC9E6C3C2E4C1C0EDC9C7E5C0BEDAB6B5E7C1C0ECC6C5EDC5C4DCB6
+ B5E3BDBBEDC5C3EBC2C1E0B7B5DBB2B1EDC4C2EEC5C3DAB3B2DFB6B4F0C7C6EB
+ C2C0C4A19EDAB1ADEBC0BDE4B7B5DBB0ADD4AEACF2C7C5EFC9C6DBB5B3E1B7B6
+ EABFBDDEB4B2D9B1ADF0C7C5F4CCCAEBC2BFDAB1AEDFB4B1DCB0ADD9ACAAE0B5
+ B3EEC5C3F5CCC9EFC5C3E2BBB8F2CDCBF2CDCAEDC5C3E9C0BEEEC4C2DCB4B2DB
+ B2B0E6BBB9E1B7B5E4B9B7EAC0BDECC1C0E5BDBAD9B3B1E3BEBBE6C1BFEAC5C3
+ DCB7B5DCB6B5E7C2C0E5C0BFDAB4B2D8B2B0E2BAB9E6C1BFE6C1BFE5C0BEE9C2
+ C1E0B9B7D7B2B0DAB4B2E9C1C0EBC5C4EAC5C3E4C1C0D7B4B2D5B1AEDAB6B3E6
+ C1BFD7B3B0D2ADABF0CBC9EFCAC9F5CFCDD2ADABD5B2B1F4D0CEECCAC7D4B2B0
+ DAB8B6EECCCBF0CFCDEFCECCF4D2D0EBCBC9D2B3B1D4B4B2D2B3B2D6B7B6F2D2
+ D1EBCDCBE5C6C5EED1CFE9CBC9D0B2B0CEB0ADE6C6C5F6D6D4F7D8D6CEB0ADD1
+ B3B2DEC0BEE1C2C1CEB1B0D2B5B5EFD5D2F0D6D5EACFCED2B9B8D9C0C0EED5D4
+ E4CACAD2B8B7DCC2C2EFD6D5ECD1D0D4BABADEC6C5E6D0CFDCC5C5DCC6C5EDD9
+ D8E4D0CFD6C3C2E0CBCBEAD5D5EED9D9E3CECDE7D2D1D2BDBBD2BDBDECD4D5EB
+ D4D2E5CECDD2BDBBDBC4C4EDD7D6DEC6C5D2BDBBF0DBD9EDD8D7EFDAD9D5BFBE
+ D5C1C0EAD5D5ECD8D8ECD8D9ECD8D8DECBCAD6C3C2DAC6C6E6D4D2ECD9D9EAD7
+ D6E7D4D4ECD8D7F0DCDBCBB5B4CFB7B7EED8D7F4DEDCE7D1D0E5D0CFF0DAD9CC
+ B6B5CBB6B5CEB8B7E4CDCCD5C0BECBB6B5CDB7B6EFDAD9E7D2D1F4E0DFF7E2E1
+ D4C0BFCBB6B5E2CDCCF9E5E4F8E3E2CFBBBACAB7B6F7E3E2F2DEDCCAB7B6E7D5
+ D4F4E1E1D0BDBBCCB8B7E2CECDEFDBDAECD9D8CAB7B6E5D4D200000000000000
+ 00ECD7D5DECAC9C6B4B2DFCAC7ECD7D5C9B5B4D9C3C2E5D1D0CEB9B7CFB9B8E5
+ CECDF3DEDBF7E1DFF4DFDCDCC6C5CCB6B4E3CDCCD2BDBAD2BBBAE7D1D1DCC6C5
+ CFBAB9D4BFBED8C3C2E0CBCAE4CECDD2BDBBCCB7B5E9D4D2EDD7D7E9D2D1D0BB
+ BBDEC9C7E1CCCBD1BDBBD8C3C3EAD5D4E4CFCDE2CCCBD1BBBAD5BFBFEBD4D2CF
+ B9B8D2BBBAEAD2D1E6D0CFD8C1C1CFB9B7EBD2D2ECD4D2E2CCCACFB9B8DEC7C5
+ E7D1D1ECD5D6E5CFCEEAD2D1EDD6D5EDD5D4E9D1D0E6CFCEF2D9D8EED7D6E4CD
+ CBEAD1D0E9D0CFD9C0C0D2BAB9CFB7B6E6CECCEED5D4EED6D5D0B8B6D1B8B6E5
+ CCCAE3C9C7D2B8B6D2B8B6EFD5D4EDD2D1E9CDCCD1B6B5E2C6C5EBCFCDEBCECD
+ D4B8B7DFC3C2EFD4D1EDD1CFEFD4D1EED4D1D6B9B8D6BAB9DCC0BEDABFBFEACE
+ CDDEC2C0E6CAC9D8BBBAD7BAB9EACECDEDCFCEECCFCED8BAB9DCBEBEEECFCFE0
+ C2C0D7BAB9EACDCDEACECDD8BAB9DBBDBBEFCECDE9C7C6EFCECDD9B9B7DABDBB
+ F0D4D1EACDCBD8B9B8EFCECDF2CFCEF3CFCDD8B5B3D6B3B2EECAC9F3CECCE5C0
+ BEEAC4C1F5CDCBDCB4B3D5ACABE5BEBDF2CDCB463C3C8A7473D7B3B1E5C1BFEF
+ CBC96052512B24242B24235A4C4BDBB6B5E0B9B8ECC5C4967D7D403534E3BDBA
+ EDC4C3EAC0BFDFB5B4DBB2B1EABFBDEEC4C2DBB3B1E1B9B7F3CAC7F0C6C58E74
+ 72584746E3B6B4E0B2B0DBB0AD2C2322B29290EFC7C5DBB5B3E0B6B4E9BDBADF
+ B3B1DAB0AD604F4E463A3AE2B8B6DAB0ADDCB0AD000000DBAEACE6BAB8E7BFBD
+ 141111907574DCB5B3907B791411115F4E4D947978796261130F0F584746C19C
+ 9AC19B992B23224336362B22228D7372DAB3B1E1BBB9E4BFBDCBA9A7130F0F3F
+ 3434EAC4C2EAC3C0130F0F705B59CCA9A6EBC4C2CDACA92B23237965635C4D4C
+ 897170D9B2B1E0BAB7EBC5C3EBC7C5EBC9C6DBB6B5D6B1B0E9C3C1EFCAC7DBB7
+ B4D2AEABF2CCCAEEC9C6F7D1CFD4B1B0D7B5B3F4D0CEF3CFCDD7B4B3D6B4B2E2
+ C1BFEBCAC7F0CFCEF4D4D1E5C4C2D6B5B4EDCCCBDABAB8D7B8B6F3D5D2F4D6D4
+ F3D5D4F3D5D4EECFCED1B2B1CFB0AEEDCECCF7D7D5F9DAD9CFB1AED7B8B6EDCE
+ CDE1C3C2CFB2B0D5B8B6EDD2D1EDD2D1EBD1D0D2B9B9DBC1C0ECD1D1E2C7C6D4
+ BABAE1C6C6EAD1D0EAD2D1D5BDBADEC6C5E3CDCDE9D4D5EBD7D7EDD8D9E1CECD
+ D5C1C0DEC9C9ECD6D5ECD7D7DBC6C5E7D0CFD2BDBBD2BDBBEDD6D5E0C9C7DEC7
+ C5D2BDBBDAC3C2EBD4D2DCC5C4D2BBBBECD5D5E6D0D0ECD7D7D5BFBED5C0BFDC
+ C9C7E3CFCEE7D5D5E7D5D5DAC7C7D6C3C2D6C4C3DECAC9E7D4D4DAC5C5D8C5C5
+ E7D5D5EFDBDBCFB9B8D1BAB9F3DEDBF7E1E0F0DAD9EAD4D2EFD9D8CBB5B4CBB6
+ B5E1CBCAF3DEDCEED9D8CBB6B5CDB7B6EFDAD9E4D0CEF0DCDBF5E1E0D0BDBBCB
+ B6B5DAC6C5F7E2E1F7E2E1CEB9B9CAB7B6D9C5C4DBC7C6CAB7B6D9C5C4EAD7D6
+ CDBAB9CCB8B7D9C5C4EFDBDAF2DFDECAB7B6E7D5D40000000000000000D1BEBD
+ C6B3B2C6B2B1E9D4D2E7D2D1C7B4B2C7B4B2D7C2C1CBB6B5CEB8B7D4BFBECDB7
+ B5E0CAC9E3CDCCC9B3B2CAB3B3EFD8D8D8C1C0CAB4B3E1CBCAD7C1C0CCB7B5DF
+ CAC7DCC6C5CEB8B7DFC7C6DFC9C6CCB7B5DAC5C4ECD7D7DFCAC9CFBBBADCC9C7
+ E6D1D1CFBBB9D5C0BFE7D1D0E6D0CFE2CDCCD1BBBAD4BEBEECD5D5D4BEBDD2BB
+ BAEAD1D1E4CDCDD1BAB9CFB8B7E3CCCBECD4D2D2BBBBCFB9B7D8C1C0E6D0CFEB
+ D5D5E0CBCBEAD4D2EDD6D6E9D2D1DBC4C3D8C0C0EDD4D5EDD4D4E4CCCBEAD1D0
+ ECD4D2E0C7C6D5BDBBCFB6B6D7BFBEEED7D5EED6D4CFB6B5D0B6B6EAD0CFE7CD
+ CCD0B5B4D0B5B5E5CBC9EACFCDE1C5C5D2B7B6D6BAB9E6CBCADCC1C0D2B7B6DC
+ BFBFDABEBDD5B9B9E2C5C4E1C5C3D5B9B8D8BBBBDABFBED7BAB9D8BDBBDABEBD
+ DBBFBED7BAB9D7BBBAD9BEBDDEC0BFDBBEBDD7B9B8DBBEBDEACBCAD9BABAD7BA
+ B8ECCFCEE9CCCBD8BDBBDBBEBDEECFCDEACAC9EECCCBD8B8B7D9B9B8EECFCDDF
+ C1C0D6B7B6E2C2C0F0CECDE7C4C3D6B3B2D6B2B1DFBBBAECC7C5E1BBB9DFB9B7
+ F0CAC7E0B8B6D5ADABD8B2AEE2BDBA937B7B3E3434D7B3B1DFB9B77B67661411
+ 11E6C2C1E3C0BF292222594949E1BAB9EDC6C5927979403534DFB7B5ECC3C1EB
+ C1BFDFB5B3DBB2B1ECC0BFEBC0BEDBB2B0DCB4B2EFC5C3E9BEBB403434000000
+ C79F9DE0B3B1DBAEAC0000002C2323E9BFBEDBB5B3EABFBDECBFBDDCB2B0DAB0
+ AD4438385E4D4C745F5DDAAEACE1B3B114100FA88684E2B7B5E1B8B6000000C0
+ 9A98A58786000000D1AEADECC2C0CCA6A52A22213F3332DBB0AD8E7271292120
+ 594746E3B7B5C6A19F000000A58786E0B9B7E4BEBB8E7574292221BF9C9A5F4F
+ 4EB19392282120D8B0AC937979ECC4C2B395935F4E4EEAC2C0E0B9B7130F0FD9
+ B2AEDBB5B4D9B4B3E0BDBAE0BDB9D7B2B0D6B0ADE9C3C1EEC7C7D8B4B2D5B0AD
+ E5C0BEEFCAC7F2CDCAD4B0AED4B1AEF4D0CEEFCCCAD4B1AEDCBAB8E0BEBBD5B4
+ B3E3C1BFECCAC9D2B2B0D6B5B3F3D2D1E2C2C1D4B5B4E4C6C4F3D5D2F3D5D2F3
+ D5D2F0D2D0D7B8B7D1B2B1DABBB9F0D0CFEED0CED1B2B1D5B7B5F7D8D6EACCCB
+ D1B5B4D2B7B6EACECDF0D6D5E2C7C6D4B9B9DFC5C4EFD5D5E2C9C9D6BEBED8C0
+ BFE1C9C7E0C9C9D7C1C0D7C2C2DBC5C6E7D4D4EAD6D6EAD4D5D8C3C2D5C0BFE2
+ CDCDEFDAD9EED8D8DFC9C7ECD5D4D7C0BFD2BBBBE6D0CEE6CFCEDBC4C3D2BBBA
+ DAC3C2EDD6D5D6C0BED2BDBDE7D2D0EAD4D2E0CBCAD5BFBED5BFBEE4CFCEEBD7
+ D6E9D5D5E6D2D2DAC6C5D6C3C2D6C4C3E0CDCDE6D2D1D5C2C1D6C3C3E7D5D5E3
+ D0CFD2BFBED4C0BEF3DEDEF4E0DFF0DBDAEBD6D4EED9D8D1BEBBCDB8B7D2BEBE
+ F4DFDEE1CCCBCDB9B7CFBBBAE7D4D2DAC6C5E7D4D2E9D6D5D1BEBDCDB9B8D7C3
+ C2F2DFDEEEDAD9CFBDBBCFBBBBE9D6D5DBC9C7CDB9B8DCCAC9F2DFDED7C4C3CE
+ BABAE2CECDEDDAD9D8C4C3CCB9B8EBD6D50000000000000000CFBAB8C6B3B1C6
+ B3B2F6E1DFF4E0DECFBAB9C7B4B2CFBAB9CBB6B5CAB6B4CFB9B8C9B4B3D9C3C1
+ D0BABAC9B3B2CEB8B6F6E0DEE2CBCACAB4B3D2BDBAD2BBBACAB4B3D4BFBECFB8
+ B7CBB5B3E0CAC9EBD4D2CDB7B6CEB8B7D8C2C1D0BBBACFBAB9D4BFBED8C3C2CF
+ BAB9D1BBBAE1CACAE0C9C9DAC5C4CFB9B8D1BBBAECD5D5E5CFCFD1BAB9D4BEBE
+ D6C0BFCFB8B8CFB8B7E6D0CEE5CFCDCFB9B8CFB8B8D5BEBEDFC9C9EAD4D5DCC6
+ C6E6D1D1EBD5D5ECD5D5DEC6C6E0CAC9EDD7D6E5CECEE4CCCBEDD4D4E7CFCDEE
+ D6D4E7D0CED2BAB8D0B7B7D6BEBED6BEBDCFB6B6D1B8B8EBD1D0D7BEBBD1B7B6
+ D1B7B7D6BBB9D8BEBBD4B8B8D2B8B7D4B8B6D8BDBBD4B8B7D2B7B5D6B9B9D6B9
+ B9D6B9B8E1C4C3DBBFBED5B9B8DCC0BFDEC1C0D6B9B8D5B9B8DABFBEF0D4D2ED
+ CFCED8BDBDD8BBBADABEBDD9BDBBD9BBBAE0C2C1E0C1C0D7B9B8D7B9B8EBCCCB
+ E7CAC7D8BBB9D9BDBADEC0BFDABBBADEBDBDD8B6B5D8B7B6E4C3C1DABAB8D6B7
+ B6DABBB8E9C9C6DEBBB8D6B4B2D8B5B3EAC5C4F2CCCBEFCAC9E9C2C0F3CCCAF2
+ CAC7D9B2B0D7B1AEDAB2B08972703E3434DAB6B4E3BDBB413736433939EAC5C4
+ E1BEBB8B7473000000DFB8B7E7BFBEC3A29F130F0FDCB4B2E2B8B6E1B6B5DCB3
+ B1DCB2B0EFC3C1EBBEBDDFB4B2DBB3B1E1B7B5DFB5B3000000896E6C433736E9
+ BAB88C6F6E000000725B5AA78886E0B9B7ECC1BFE1B5B3DBAEADDBAEAC453938
+ 987E7DC19C99DAAEACE0B2B04638388E716FDEB3B0DCB3B0000000DAB0ADDAB3
+ B1000000EEC6C4ECC1BFEABEBB715B5A3F3332DEB1AEEABDB9000000896C6BDC
+ B0ACE6BBB9443938403535DBB4B2C19F9D2922223F3433D8B1AEB0908D413534
+ 3E3332D8B0ACDEB6B4947A79EAC3C1EAC3C0EAC3C0745F5E000000D8B1B0DAB4
+ B2D7B4B1D9B5B3D9B4B2D6B1ADD6B0ADDBB5B3D9B4B3D5B0ADD5AEADD6B1B0D9
+ B4B2D8B5B3D5B1AED4B1AEDBB8B7E0BDBAD4B1AED7B5B3D8B6B4D4B1B0D5B4B3
+ D5B3B1D2B2B0D8B6B5EFCFCEDCBDBBD5B6B5D9BBB9ECCDCDE9CAC9EDCECDEECF
+ CEDEBFBDD5B6B4D4B5B3DBBBB9DBBBBAD2B3B2D6B8B6EDD1CFD7BBB9D4B8B7D6
+ BAB9E6CBCBE7CDCCD6BBB9D5BAB9DAC0BFE7CECDD9BFBED7BEBED7BFBFE4CCCC
+ E9D1D1E0CBCBD7C3C3D9C4C3E9D2D2E9D4D2DAC4C3D6C0C0D8C2C2E6CFCFEED7
+ D7E7D1D0DAC3C3EDD5D5E0C7C6D4BDBBD6BFBDD5BEBBD2BDBAD2BBBAD7C0BFDB
+ C4C3D2BBBBD4BDBDEDD7D6EED9D8D9C3C2D5BFBED6C0C0E5D1D1EBD7D6EAD5D5
+ EBD7D6E4D0D0DAC6C6D8C4C4DAC7C7DBCAC9D7C3C3DECBCBE5D2D2DBC9C9D4C0
+ BFD6C1C1F0DCDBF2DEDCF2DEDCF2DEDCF3DFDEF0DCDBCFBAB9CFBBBAD5C1C0CF
+ BBBBCFBDBBE3CFCEF2DEDCECD8D7EBD8D7F0DCDBE6D2D2D5C1C1D2BFBFDAC7C7
+ DAC7C6D4C1C0E6D4D2ECD9D9D2C1BFCEBABADBCAC9EEDBDAEDDAD9D5C3C2D5C3
+ C2D4C2C2CFBDBBCEB9B9F2DEDC0000000000000000DBC7C6D9C3C2E4CFCDF3DF
+ DEEED9D8EED9D9E1CCCBE1CCCBD6C1C0D9C3C2E3CDCCEBD4D2F7E1DFEFDAD9D1
+ BBBAE5D0CEEED7D6E3CCCBD7C1C0D6C0BFEDD7D6E6D0CFE5CFCEE0C9C7DCC5C4
+ EFD8D7F2DBD9DCC6C4D5BFBEE1CBCAE1CCCBD5C0BFDFCAC9DBC6C4CFB8B8D6C0
+ BFECD6D6E0CAC9E6D0CFCFB9B8D1BAB9EDD7D6EBD5D4DEC7C6DBC6C5DCC5C4DC
+ C5C4DCC4C3EDD6D5ECD4D4E1CAC9DCC5C5E1CACAEAD4D2EAD4D4DAC4C3E4CECE
+ E9D4D2E9D4D2E1CAC9E6CECDECD4D4DCC5C5EAD2D1EED6D6E7CECEEBD2D1EED5
+ D5E4CCCADBC2C2E1C7C7E9D0CEE2CAC9E4CCCBEDD2D2DEC3C3DBC1C1E0C6C5E5
+ CCCAE7CDCCDFC4C3D8BDBDE0C5C3E6CBCADEC1C1DABFBEDFC3C1DFC3C2E6CAC9
+ ECCFCFEBCECDE6CAC9ECCFCEEDD1D0E6C9C7DBBFBEE2C4C2F0D2D1EED4D1E9CD
+ CCDFC2C1DFC2C1E5C7C7ECCDCCECCECDEDCECDE1C3C2E5C5C5EDCDCCEBCCCBD8
+ BAB9DBBEBDE9CCCBE1C2C1EBCAC9D8B7B6D8B5B3EDCBC9EAC9C6E0C0BEEED0CE
+ EBCBC9E6C5C4E7C5C3EAC7C6EAC6C4EECAC7EECAC6E3BEBBF2CBC9F2CAC9E6BF
+ BDE1B9B7E1BAB8C6A5A32B2423ECC9C5EEC9C7443A39453A3AEFC9C7E3BFBEE2
+ BDBB000000937B79EBC3C2EAC1BF000000EAC0BFEBC1BFEBC0BEE9BEBBEDC2C0
+ F0C4C2EEC1BFEEC2C0EDC3C1ECC2C0B1908D000000C7A19E7C6463B592914538
+ 37423534E4B6B45E4D4CEFCAC7F0C6C4EBBEBBE2B4B2E5B9B79A7E7D604F4EE2
+ B7B5DEB2AEEABBB9634F4E634F4EEFC3C1EBC0BE433736937876E7C1BF2C2525
+ D4B0AEF4C9C5F3C7C4917472140F0FEABBB9EFC1BF0000008B6E6DE0B3B1EBC0
+ BD977D7B000000E2BAB9423736AD8E8D413635E6BEBAE7BEBA2921213F3333DA
+ B2B0E0B8B6947C7ACEABA9EBC3C0967C7B000000917675E2BAB8E7C2C0E7C4C1
+ EAC4C2E7C1BFE6C0BEE4BDBBEEC7C5EAC4C2DAB4B2E0BAB8E7C1BFEDC6C4E7C2
+ C1DCB8B7DFBAB8EDCAC7EFCBC9E9C3C2E4C1C0E3C0BEDFBEBBE2C0BEDEBBB9D8
+ B7B6E3C2C1E9C9C7E5C7C5DBBDBBEACCCAEFD0CEE9C9C7EDCCCCE6C7C6E7C7C6
+ EACAC9DABAB9DABBB9E6C7C5DFC1BFD9BBB9E6CAC9E2C5C4DCC0BFEDD2D1EED2
+ D2EDD1D0E9CDCDE0C5C3EACECDEDD4D2E9CFCEE0C7C7E3CBCBEAD1D2EAD4D4EC
+ D7D6DEC9C9DBC5C5E5CFCFE5CFCFDCC6C6DCC7C6E0C9C7EDD7D7EDD5D5E9D1D1
+ ECD2D2EDD5D4DFC6C6DBC3C2DAC2C2D6BFBED7BFBFDEC5C5E5CDCDE7D0D0E3CC
+ CBE6D0CFF0D9D9F0DBD9E7D4D1DEC9C7E2CDCDEDD9D8EDD9D9ECD7D7EDD9D9E4
+ CFCFE1CDCCE3CFCFE0CCCDE0CCCCDFCCCCE3D0D0DECCCCE4D1D1DAC7C6DCC9C7
+ EDD9D8ECD8D7E6D1D1E4D0CFEBD7D6F4E0DFEAD5D4D9C5C5E1CDCCDFCBC9E1CC
+ CCEBD6D5F2DEDCF2DFDEF0DEDCF4E1E0EEDAD9D9C6C5D7C4C3ECD8D7EEDBDAE6
+ D4D2DCCACAE7D4D4E5D2D1D2C0C0E9D6D5EDDAD9EBD8D7DBCAC9E4D1D0ECD8D7
+ EFDCDAEED9D8F4E0DF0000000000000000D2BFBEE4CECDE7D4D2E5D0CEEBD6D5
+ F0DCDBECD8D6D4C0BED5C1C0E4CDCCE4CECDF2DCDBF7E1E0F8E2E0EFDAD9F5DF
+ DEEAD4D2F4DEDCF3DEDCD9C2C1EBD4D2F2DBDAF0D9D7E6CFCEE1CBC9EDD7D5F2
+ DAD9E9D2D1E6D0D0EED9D8EFDAD9EED8D8ECD6D6E4CECDCFB9B8D1BDBBEDD8D7
+ E6D0D0E5CFCFCFB8B7D2BDBBEBD5D4EBD5D4EBD4D4E6D0D0E4CDCBE5CECDEAD1
+ D1ECD5D4E9D1D1ECD6D5EDD7D6ECD5D5EDD7D7E9D1D1DBC3C3DAC4C3E5D0D0E6
+ D0CFDBC5C4E4CDCDF0D8D8E2CBCBE7D0D0EAD2D1DEC6C5E2CAC9EBD2D0E2CAC7
+ EAD2D0EAD1D0EAD1D0E3CCCAE5CDCCEAD1CFE3CAC7E4CCCAE7CDCCEAD0CFEBD1
+ CFE9CDCDE3C7C5E7CCCBE9CDCCE2C5C4E3C9C6DCC1C0DABFBEDFC3C1E1C4C3E2
+ C5C4E7CBCAE2C5C5E5C7C6E3C6C5DEC0BFDEC1C0E9CBC9EACDCCECD0CEE5C9C7
+ EACDCCEED0CFEECFCEEED0CEEECFCEEDCECDEECECDEECDCDECCDCBD9B9B8DABA
+ BAE9CBCAECCFCDEDCECDD7B6B4DAB8B6E9C6C4EAC7C5E4C2C0EFCFCDE5C6C4E3
+ C2C1EECDCAEECCCAE6C2C0EAC4C1F0CBC9EBC5C2EFCAC7F3CBC7EFC7C5EFC9C6
+ EFC7C5F0C9C6000000EFCBC9EFCAC9967F7D141111F0CAC9EDC6C4F0CBC90000
+ 00977E7DB49595EEC5C3000000EEC4C2EABFBEE9BEBDE6BAB8ECC0BFEBBDBBE4
+ B6B4EBBEBBEEC3C0EFC5C37C6464151111EFC3C1EFC3C0463938151111977976
+ EDBEBDB797957E6968F3C7C5F3C3C1F2C3C1F3C6C39A7E7C2D2525F4C7C5E9BA
+ B7F2C2BF9A7B792D2424F5C9C6F3C7C4473A3A9A7F7EF4CDCA7F6B697C6564F3
+ C7C4F5C7C4CEA6A4000000EBBBB9EFBFBD453737604D4CEABDB9EABEBB977D7C
+ 000000EBC2C0443838CEAAA7000000EAC0BEEAC0BD8D7270433737E6BDBADEB6
+ B4EAC1BF7A6463CDA9A6000000604F4EE9C0BFE2BBBAEAC5C3EEC7C5E9C1C0EC
+ C3C1EFC9C6EFC9C5F4CDCBF6CFCDF4CDCBF6CFCCF4CDCBF5CFCCF3CECCEDC9C6
+ EBC7C5EECAC7F0CECCF2CFCDF2CFCDF4D1CFF4D1D0F0CECDF2D0CEF3D1CFF2D0
+ CFEDCDCCEECECCF3D2D0F3D4D2F3D4D2F3D2D1F3D2D0F2D2D0F2D2D0F7D6D4F4
+ D5D2EDCDCBF5D6D4F7D8D6F3D5D4EFD2D1EBCFCEEED2D1F2D5D4E6CBC9EACECD
+ EED2D2EED4D1ECD1D0EED5D4EDD5D4EBD2D1EFD8D7EBD5D5E7D2D0ECD6D6ECD6
+ D5EAD4D4EBD4D4EFD7D7EDD7D6ECD5D5EAD2D2EFD8D7EFD8D7EAD1D1EFD7D7F3
+ DADAF0D8D7F2D9D8F2D9D8E6CECEE9D1D0F3DADAF0D9D7EFD8D7F2DADAF0D9D9
+ F0D9D9F0D9D9F0DBD9EDD9D8EBD6D6EDDAD9EEDADAEDD9D9EDDAD9EAD6D5EAD7
+ D5EDDAD9EBD8D8EAD6D6E6D4D2E6D5D4E3D1D0EAD8D8EAD6D6E4D0CFEAD6D5E6
+ D2D1E3CFCEE0CBCBE9D5D5EED9D8E7D2D1E1CBCBEFDBDAF3DFDEECD8D8E9D4D2
+ F4E0DFF2DEDCECD9D8F6E2E1F2DFDED7C3C3E6D2D2F2DFDEEDDADAF0DEDCECD8
+ D7F0DCDCF3E0DFECD8D8F2DFDEEFDCDBE3D0CFDAC7C6F4E1E0F0DEDCE5D2D1E0
+ CDCBEBD6D50000000000000000DEC9C9F2DEDCF5E0DFECD7D6E9D5D2F2DEDCF6
+ E1DFE7D2D1D7C2C1D9C4C3DCC7C6EED8D8F2DEDCF4DFDEF4DFDCF8E1E0F2DCDA
+ F7E0DFF7E0DEDBC5C4DBC5C4F0DAD9F0D8D7E7D0D0D1BBB9EED7D5F2DAD9EED8
+ D7EAD2D1EFD9D9EFD9D9E7D2D1ECD5D5E7D2D1D1BDBBCFB8B7E4CFCEEAD2D2D1
+ BDBBCFB8B8D7C1C0EAD5D2EBD6D4EBD5D2EAD2D2E0C9C7DEC7C5E7D0CFE4CCCB
+ DEC6C6EBD4D4E9D1D1ECD4D5EBD4D4EAD2D2E3CCCCE0CAC9E7D1D0E6CFCED7C1
+ BFDAC3C2E7D0CFDBC4C2D6BFBEE1CACAD9C1C1E0C7C6E7CFCDE3CBCAE4CCCBE2
+ C9C6E7CECCE2CAC7E6CDCCE7CFCEE3CAC7E7CFCDE5CDCBE7CDCCEACFCEE6CCCB
+ E4C9C7E6CBCAE4C7C6E4C9C6EBCFCEE5C9C7E4C7C6E7CCCBE7CBC9EACDCCE9CD
+ CCE4C7C6EDD0CEEBCDCCEBCDCCEDCFCEEED0CFEED0CEEBCECEE4C7C6E5C9C7EC
+ CECDEBCDCCEECFCEEDCECDE9C9C9EBCCCBEACAC9E9C9C7DBBAB9D8B8B7DABBB9
+ E5C6C5D8BAB9D6B6B5DBBBB9EBC7C6E9C4C2E5C1BFEFCDCAEECDCBDFC0BEE7C5
+ C4F0CDCBEAC5C3E6C2C0ECC6C4EBC5C2EFC9C5F0C9C6ECC5C2EFC7C5ECC3C1EF
+ C5C4000000EEC6C5EDC7C6EAC4C2141111B59795EBC3C1D2AEAE000000CAA6A5
+ 7C6564D0ABA9141110907574AE8E8DE6BAB9E4B8B6ECC0BEE7B9B7E3B4B2E6B8
+ B6EEC1BFF0C4C2443736453838EFC1BFE2B6B3937473000000CEA4A3EDBEBBF0
+ C3C1463A3AF0C5C2F0C1BFF0C1BFF0C3C1EEC2BF000000F3C6C3EFC0BF7D6463
+ 9878762C2322B2908DE3B7B42B2222957978EAC2BFEBC2C05B4948CEA6A4F2C3
+ C1F0C2BF000000EDBEBAEBBAB8B48E8C141110E9BDBAE6BBB97B65642C2323E4
+ BAB7AB8B89433837000000E9BEBBEBC0BEAD8C8A141110EBC2BFE2B9B7E4BAB8
+ 443838957B792C2323ECC2C0AD8E8DC2A19EDFB9B7E9C2BFDFB6B5DBB4B2E5BE
+ BBE2BDB9ECC6C3F5CECBF0C9C6ECC5C3E6C0BEEAC4C2F2CBCAEECAC7E9C3C2EB
+ C7C5E9C5C3EDCAC9EBC9C6F0CDCCF4D1CEF2D0CEEFCFCEEFCFCDF2D2D0EFD0CE
+ EACAC9EFD0CEF4D2D0F2D2D0EECFCEEECFCDEECECDEFCFCDF3D4D1F2D2D0E9CA
+ C7F3D5D2F4D6D4EDD1CFE2C5C3D8BBBAE2C4C3E5C9C7DCC1C0DCC1C0E2C7C5E6
+ CBCAE0C7C6EBD2D1ECD4D2EDD6D6F0D9D8EED7D6EFD8D7EED8D7EDD7D6ECD6D4
+ EDD6D5EFD8D7EFD8D7EDD6D6ECD5D4F0D9D7EED6D6E7D0D0EFD7D6F3D9D8F3DA
+ D9F3DAD9F0D8D7E1C9C9E4CDCBE9D2D0D6BFBED7BFBFDFC9C7E4CDCDE6CFCFE5
+ CFCEE1CCCCDFCBCADCC7C7EAD5D5ECD7D6EDD9D9EDD9D9E7D4D4E6D4D2ECD8D7
+ EBD8D8E6D5D4E7D5D5E5D2D2DECBCBDECBCBD8C4C4DAC7C6E7D5D2EAD6D5E3D0
+ CFDFCBCAEDD9D8EFDBDAE5D0D0E2CDCDE7D4D2F2DEDCEDD9D8E5D1D0F2DEDCEF
+ DBDAE0CDCCF2DFDEE2CFCDD5C1C0E6D2D1F0DEDCE4D0CFCEBABADAC7C7F0DEDC
+ F0DCDBE6D4D2F2DFDEEAD7D6E1CDCCD2C1C0EFDAD9E5D0CECDB8B7CEB9B8EFDB
+ D90000000000000000E0CBCAEFDAD9EED8D7E5D0CEE1CDCBEFDAD9F3DFDCE6D2
+ D0E4CECDDEC9C7F0DAD9F4DFDEF2DEDCEFDAD9E6D0CFF0DAD8DBC6C4E4CECCF6
+ E0DFE5CFCDE0CAC9F2DCDAF2DBDAEED8D7CEB8B7E9D1D0EFD8D7E6CFCEE7D1D0
+ EDD6D7EAD4D2E7D2D0EAD4D1E4CECCD6C0BFD1BBBAD1BAB9D1BDBBCFB9B8D4BE
+ BDDAC5C4E6D0D0E6D0D0E0CAC9E7D1CFE6CFCEE5CFCDECD5D4E5CFCDDEC7C6E9
+ D1D1E3CCCCE7D1D0EDD4D4EDD5D4ECD4D4E0C9C7EBD4D2E6CFCFD7BFBEDBC4C4
+ E5CCCCDAC3C2E1CAC9E4CDCCDCC4C4E9D1D0E7D0CFE1C9C7E4CCCBE6CDCBE5CC
+ CBEAD0CFE7CECCECD1D0E6CDCBE6CDCBE4CCCAEACFCEEDD1D1EBD0CFEACECDEB
+ CFCDE7CDCBE7CCCBEBD0CEE5C9C7E1C5C3E1C4C3E6CAC9EBCECCEACCCBEDCECE
+ E9CCCAEECFCEEDCECDEFD1D0EFD1CFEFD1D0ECCDCDDEBFBEE2C4C3E9CBCAE5C6
+ C5E9CAC9E4C5C3E1C1C0EDCDCBEECECDEFCECDEDCBCAD7B5B3D7B5B4D8B6B5D6
+ B6B4DBBEBBE1C0BFE4C3C1E9C4C2E4BEBBEFCAC7EECBC9E5C3C1DCBAB7EBC9C5
+ EECAC7EBC5C3EAC4C3EAC3C0EFC9C6EFC7C5EEC6C4EFC6C4B394924539391411
+ 11443938463B3AECC7C6CDABA9453A39987F7D625251987F7DEEC4C3D4AEAD14
+ 1111B49492B49392000000B59492EFC2C0F0C4C2EFC1BFE9B9B6E5B4B2E7B9B6
+ EFC2C0000000957976F0C2BFE9BBB8947574000000EBB9B7EBBAB8E7B9B6B091
+ 8D7B6462EEBEBDEEBFBDD0A8A6927574151111987D7BEFC0BED1A6A4140F0FB6
+ 918E7E66645F4D4B151111EFC3C0EDC5C2F3CAC6ECBFBB7C63627E65647E6563
+ 140F0F967674ECBBB8E9B8B59679765F4C4B947976453A39D2ACA9EABFBBE7BD
+ BA443838141010ECC0BDEABEBAE6BAB8000000EBC1BEE1B7B6AB8C89423736EA
+ BFBD604E4E987E7C141111AB8E8DE9C2C0ECC4C2E5BBB9E4BBB9ECC4C3E4BEBA
+ EBC5C2EBC3C1EBC4C1EEC5C3E0B9B6DEB7B5E5C1C0E5C0BEDFBAB8DCB8B6DCB9
+ B8E6C3C1D9B6B5E1BFBEE9C6C4E7C6C5DFC0BEDFC0BEE5C5C4E2C3C2D9BAB9DC
+ BBBAE0C0BEDEBEBBDBBBBBDCBDBBE5C6C5DFBEBBE3C2C0E0C0BEDFBFBDE3C5C3
+ EACCCAF2D2D0E7CBCADABEBBEBCDCCECCFCEE4C7C6DCC0BFE3C9C7E7CECDE3CB
+ CAEDD6D5ECD4D4E5CFCDEDD5D5E5CDCDE6CECDECD5D4EAD2D2E7D0CFE5CDCCE9
+ D0CEE7CFCDE2CBC9E4CCCBEED6D4EFD6D5E9D1CFE9D1D0E6CDCDE5CCCCE5CDCC
+ EBD2D2DAC2C1E4CCCBEDD6D6DEC6C5DAC3C2E3CCCBE4CDCCE7D1D1E1CBCBE3CE
+ CDE1CCCCDCC7C7E4CECEE3CECEE1CDCCEAD6D5DFCACAE0CCCCE2CFCEE3D1D1E3
+ D0D1E3D0D1E5D2D2DECBCBD8C4C4D4C1C0D5C1C0E9D5D4EBD7D7DCCAC9E1CCCC
+ EEDAD9F0DCDBEED9D9E9D4D2E6D2D2E9D6D5EBD7D6DFCBC9EFDCDBF2DEDBEFDB
+ DAF3E0DFE7D4D2E6D2D2E1CDCCD5C2C1CFBBBACEBABAD8C5C5F0DEDCF0DCDBE4
+ D0D0EEDBDAE7D4D4E5D2D1DBC7C6DBC7C6CEB9B8CAB7B5CFBAB9F2DFDC000000
+ 0000000000F5DFDFF2DCDBF2DEDBEFDAD9E5D0CFF0DBDAEFDAD9EBD6D5E1CCCA
+ D4C0BFE3CDCCF2DEDBF4DFDEF3DFDEF2DEDBF7E1E0E4CDCCE7D2D1F5DFDEE9D4
+ D1E5CFCDE5CFCDF4DEDCEED7D6D6BFBEEBD5D2E6D0CED8C0BFDAC4C4E4CECEE3
+ CECDE0C9C7E0CAC9DCC5C5D5BFBED5BFBEDAC4C4D6C0BFDBC5C4E7D1D0E4CECD
+ E7D1D0E9D2D2E2CBCAEBD4D2E6CFCEE4CECEECD5D5E9D2D0E4CECEE9D2D1EDD7
+ D6EED8D7EED7D7EED7D7EED7D6E6CFCFEED7D6F0D9D8EED7D7EDD6D5EED6D5DB
+ C2C1EED5D4EAD1D0E1C7C6ECD2D1EAD1D0E7D0CEE6CDCCE3C9C6E4CAC9E9CDCC
+ E1C6C4E6CCCAE9CECCE4C9C6E4C9C7E7CECCEFD4D2EED2D1EBCFCDEBCFCEE7CC
+ CAE9CDCCEDCFCEE7CBC9EACDCCE2C5C3EBCCCBEBCCCBEFD0CFEED0CEE9C9C7EF
+ D0CEE4C4C3EDCDCBEFD0CFF2D1CFEDCDCCDBBDBBE1C2C0E7C9C7E7C9C7EFCFCE
+ EBCCCBE6C5C4EECDCCEECDCBEECCCAEDCAC7E3C0BEE0BBBADFBDBAE0BEBAEECC
+ CBEACAC9EDCCCBE9C5C3E4BEBBF0C9C6EFCAC7ECC7C5E5C2C0EBC7C5EECAC7EA
+ C4C3E5BFBEE7C1C0ECC5C3EAC3C1EAC2C1EFC6C4ECC3C2ECC3C2453A39957B79
+ EFC6C4E7C3C1E4BFBEEBC4C2EBC2C1EBC3C1E6BFBDE3BAB8F0C6C4EABFBDE1B5
+ B3EBBFBDEABFBBEDC0BEF0C3C1F3C4C2F3C3C0ECBDB9EBB8B5E6B6B4B7959300
+ 0000D0A7A5F3C4C1EDBEBB4537371510107B605FEFBEBBF2C2C0ECC2BF443938
+ EABAB7EFBFBDEFBEBDE4B6B3ECC0BEECBEBAE7B7B4E4B2AEE0ACA9F0BEBBF4C6
+ C3EEBFBDF3C3C0F2C6C3F3CCC7F3C9C5F0C1BFF0C1BFF3C3C0F3C2BF43363596
+ 7674EFBDB9F0BFBBF0C0BBEDC0BDECC1BEEFC4C2EFC3C1EBBFBBEBBFBDEBC0BE
+ E9BEBAECBFBBEBBFBBE5B9B7E9BFBBEBC1BEE2B9B7E1B6B4E0B5B3E3B7B5E9BF
+ BBEFC6C4EEC7C5E6BFBDEDC4C2EEC4C2E7BFBBEAC2BFEFC7C5F2CAC6F2C9C6F4
+ CCC9F3CBC9F6CDCBF2CAC6E2BDBAE5C0BEEDC9C6EAC5C4EBC7C5EBC7C5F0CDCC
+ EECBC9EECCCBECCAC9ECCBC9E9C7C6E6C5C4E4C5C3E1C0BFE2C2C1E7C7C6E7C7
+ C6EACBC9E5C5C4EACAC7F0D0CEEECDCCF5D5D1F4D4D1F6D6D4F3D4D0F7D7D5F5
+ D6D4F0D1D0E7CAC7EED0CFEBCDCCECCFCFE4C9C7ECD1D0EBD1D0E0C6C5EBD4D1
+ EAD2D0DEC5C3EDD4D2DAC2C0DAC1C0E7CECEDEC6C5DEC6C5DCC4C2E0C6C5E5CC
+ CBDFC5C3E1C6C5EED5D2EFD6D5EED4D4EED4D4EDD2D2EAD1CFEED5D4F2D9D8E0
+ C6C5EED7D5F2DAD9EDD5D5E6CFCEEBD2D2E3CCCCECD5D4E9D2D1EDD6D7E4CECE
+ DFCBCAECD8D7E9D4D4E9D4D4EBD7D6ECD7D7E9D5D6ECD9D8ECD9D8EBD7D8E9D6
+ D6EBD8D8E9D6D5DFCACAD7C3C2E1CCCBEFDCDAEFDBDAE4D0D0E4D0CFEED9D8F0
+ DCDBF2DEDCECD8D7EBD6D5EBD7D6F2DEDBE0CBCBE9D4D2F0DCDBF4E0DFF2DFDF
+ E6D2D1EBD7D6EBD7D5D8C4C3D4C0BFD7C3C3D9C6C5E5D2D1E2CFCED7C3C3E4D0
+ D0F0DCDBEAD7D5F2DFDCECD7D6D7C2C1CFBABAD1BEBBE7D5D200000000000000
+ 00F4DFDEECD6D5F0DBDAEFDAD9E9D5D2EFDBD9F4DFDEF0DBDAE4CDCCD2BFBDDC
+ C7C6E9D5D2EDD8D6F2DEDBECD7D5F7E1DFE1CBCAECD6D5F2DCDBDFC9C7E1CBCA
+ E0CBC9F0D9D8E6D0CFD9C2C1F2DBDAE2CBCAD4BDBBE1CBC9E6D0D0EAD4D2E9D2
+ D0EDD7D7E7D1D0D8C1C0DFC7C7EAD2D1E5CFCEEBD4D4EAD2D2E1CBC9EAD4D2EB
+ D6D4E0CAC9E6D0CFE4CDCCE0CAC7E6D0CFE7D1D1E1CBCBE3CCCCE6D0D0E9D1D1
+ E9D1D1EED6D6E9D1D0E7D0CFEED7D6EED8D7EBD2D4EDD5D4E6CDCCDEC4C4EFD7
+ D6EED6D5E2CAC9EAD1CFEAD1D0E5CDCBEAD1CFEAD0CFE5CBCAE9CECDE3C9C6E4
+ CAC7E9CDCBE9CDCCE5CBC9DBC0BEEDD0CFEDD1D0E4C9C6EACFCEE6CCCBEBCECD
+ ECD0CFEDCFCFEDCFCEEBCDCCF0D2D1ECCDCCF2D1D0EDCDCCE9CAC9E9C9C7DABA
+ B9E5C6C4E9CAC7F2D1CFF0D0CFE2C3C1DBBDBBE3C4C2E6C7C6EFCFCEEBCBCAE6
+ C6C4EACAC7E9C7C5ECCAC7EBC7C5ECC7C5EFCCCAEFCCCAEDCAC9EECCCAE7C6C5
+ EFCFCDECCAC7E2BFBDEDC6C3ECC5C2E0B9B7DBB7B5DFBDB9E9C5C2E4BFBDDEB8
+ B6DFB8B6E2BAB9E1B9B7E1B9B7EAC1BEE7BEBDE6BEBD9479795E4D4CEFC5C3ED
+ C5C3E5C0BEEBC5C3EEC6C4F0C7C4EFC7C4EAC1BFF3CAC7F3C7C4ECBFBDEFC3C0
+ EFC2C0EDBFBEF0C2C0F3C3C0F3C2C0F0BFBDF2C0BDEFBEBB7D6463151111F2C3
+ C0F4C4C1EDBFBA1510107E6362453636CFA4A2F2C2BFEFC4C17C6564B18C8AEF
+ BEBBF0C0BEE3B5B2D1A9A6EEC0BDF4C2BFF2BEBAE5B0ACF0BEBBEFC1BEE7B8B5
+ EEBFBBEDC2BFEEC7C4F0C4C1E7B7B5ECBBB9F0C0BEF4C2BF7D6260604B49EEBA
+ B7EAB8B5EBBAB7EABBB8E3B8B5EBBEBBE7BDB9DFB2B0E2B6B3E1B5B3DFB3B1E9
+ BAB7EBBFBBE6BAB7ECC1BFECC1BFEBC0BDE2B7B5E4B8B5E0B4B2E5BBB8EFC7C5
+ EEC6C3E7BFBDEBC1BFEDC3C1E0B6B3E0B7B5E2B9B7ECC3C1EFC5C2ECC3C1EAC0
+ BEF3CAC7EFC9C6E9C2BFEEC7C6F2CCCAEECAC9EDC7C6EFCBCAEECAC9EECCCBEF
+ CDCCF2D0CEECCBCAE9C7C6EBCAC9F0CECDEBCAC9E7C6C4EFCECDF0D0CEEFD0CF
+ EECDCCEECECCF4D4D1F3D1CFF3D2D0F3D4D2EFD0CEE6C6C4EFCFCDF3D2D0E5C6
+ C5E6C7C6EDCECDEDD1CFECD0CFE7CECCEFD7D5EDD5D4E5CDCCF0D8D6EDD4D2ED
+ D4D2F3D9D7ECD2D1ECD1D0EDD4D1E4CBCBE2C9C9EAD1CFEBD1D0E7CDCCE7CDCC
+ E5CCCAE9CECDEBD1D0EAD0CFE9D0CEECD2D1E6CCCCE9D0CEF2D8D7DCC3C2EDD4
+ D2EFD7D7E5CDCDECD2D4EDD6D5ECD2D4EED7D7EED8D8EDD7D7E5D0D0DEC9C9EE
+ D9D8EDD8D7ECD6D6E5D1D0E5D2D1E7D5D6ECD9D8ECD8D8EAD8D7EAD8D7ECD9D9
+ E6D4D4E3CFCEE7D5D2ECD8D8ECD8D8E9D5D4DBC7C6EBD7D6ECD7D7F0DBDBEFDB
+ DAF0DCDBF2DEDCF3DFDEF4E0DFEDD9D8E9D6D5EEDAD9F2DEDCF0DCDBDECBCAE1
+ CDCCEBD7D6E6D2D2E6D2D1F2DEDEE6D2D1EEDBDAECD8D8CFBDBBDCCAC9EBD6D4
+ E5D0CFF3E0DFEFDBD9F0DCDBE6D2D1DECAC9E6D2D10000000000000000FBE5E4
+ F0DBDAF0DBDAF4E0DFF2DEDBEDD7D6F2DEDBECD7D5EDD8D6ECD6D5EFDAD9E0CB
+ C9DCC6C5E0CAC9DEC7C6EFD9D7DBC6C5E6D0CFEED8D7EED8D8E6D0CFEDD7D6F3
+ DEDCE0C9C7E0CBC9F5DEDCF2DBD9EAD4D2E1CBCAEAD5D2EAD4D2EAD4D1F2DADA
+ EFD8D7E6CFCEE2CCCAE3CECCE0CAC9ECD5D4ECD5D6E6D0CFECD5D4ECD4D4DCC4
+ C4E6D0CEE7D0CFE0CAC7E1C9C9E4CECEDBC5C4DFC9C9DEC7C7E5CECDE2CACBE7
+ D0D0E2CBCBE6CECDEED7D6F0D8D8F0D8D8F0D8D7E5CCCBDBC3C2EED6D4F2D8D7
+ EAD0D0E7CFCDEED5D4ECD2D1E7CECDE4CCCBDCC3C1E7CDCCE0C5C4E2C6C5E9CD
+ CCE7CCCBE4C9C6DABFBEEFD4D1EED4D1E5CAC9EBCFCFE2C7C6EACFCDECD0CEE9
+ CDCBE4C6C5E6C9C6E5C7C6E7C9C7EBCCCBE9C9C7E9C9C7E6C7C5DCBDBBE3C3C1
+ E9C7C6EBCAC9EECECCE1C1C0E3C3C3E4C4C3E5C6C5EECECDE9C9C7ECCCCBE7C6
+ C5DFBDBAEAC7C5EDCAC7E6C3C1E1BEBBEAC6C4EFCBC9EECAC9E4C1BFEDCBCAED
+ CCCAE0BEBBEBC5C3E6C0BEE2BAB7E7C0BEEAC5C3ECCBC7ECC9C7E7C3C1E4BEBB
+ E5BEBBE5BBBAE1B9B6E7BFBDEAC0BEEAC0BECDA7A5433736EDC1BFEFC4C2E4BD
+ BBEDC7C5EFC7C5F0C6C4EFC5C4ECC3C1F3CAC6F3C7C4EEC1BFF2C3C1F2C2C0EE
+ BFBDEFBFBDF3C2C0F3C2BFEAB7B5F0BDBAECB9B6463837463938F2C3C0F4C4C1
+ C79D9B000000B8928EB48D8B614C4AF2BFBDF0C3C1EFC4C1453736F2C0BDF3C1
+ BFEDBDB98067657D6463F4C2BFF2BDBAE6B1ADEEBBB8E9BAB7E3B4B1E5B5B3EA
+ BFBBEBC3C1F0C3C1E9B9B6EDBDB9F0BFBBF0BEBA967472443534EAB6B3E0ADAA
+ E5B6B3E1B4B2E3B9B7E9BDB9EBBEBAE9BBB9E7BBB9EABDBAEABBB9E9BAB8EBBF
+ BBE6BAB7EABEBBEBC0BDEABFBBE6B9B6E9BDB9EBBFBDEEC5C2EFC7C5EEC5C3EE
+ C3C1F0C4C2F0C6C4F0C6C4F2C9C5F0C7C4F4CAC7F6CBCAF6CCCAF5CCC9F6CCCA
+ F4CBC9EDC5C4EBC5C2EDC7C5ECC6C5EDC7C7EAC4C3E0BDBAE9C6C5EECCCBF2D0
+ CEF0CFCDE9C7C6ECCACAEFCECCEBC9C7ECCCCAEFCFCDEFD0CEEECECDEBCCCAEB
+ CAC7F3D4D1F3D2D0F3D1CFF2D1CFEBCBC9D7B8B6DFBFBEE9C9C7DEC0BEE3C6C4
+ EDD0CFE9CECCEAD0CEE9D0CFEED6D5EBD2D0E6CECCF0D6D6E6CDCCEDD4D1F3D8
+ D7EDD4D1F2D8D6F3D8D7F0D7D6ECD2D2EFD5D2F2D7D6EED4D2EFD6D4EDD2D1EC
+ D1D0ECD1D0EFD6D5EBD1D0E9D0CEE1C6C6E7CFCEEDD5D2DAC0BFF0D8D7F0D8D7
+ E0C9C7E6CFCEF3DAD9F3D9D9F2DBDAEDD7D8EBD5D4E7D1D1E4CECFEAD5D5E4CF
+ CFEAD5D5E4D0D0E0CCCCE2CFCFE7D5D6EBD7D7E6D4D4E6D5D5E6D5D5E3D0CFE1
+ CCCBE0CBCBE9D5D4EAD6D6E1CCCBD9C4C3E3CECDE3CFCEECD8D7EAD6D5E1CCCB
+ EBD7D5ECD7D6ECD7D7DCC9C7E9D2D2EEDAD9EFDBD9F2DCDBDECBCAE9D6D5F2DF
+ DFF0DEDCEEDAD9F6E1E0F2DFDEF5E2E1F3E0DFD7C3C2F5E0DFF7E2E1F3DEDCF5
+ E0DFEFDBDAEED9D8EED8D7F0DCDAEBD6D50000000000000000FBE5E4ECD6D5EE
+ D8D7F4E0DFEED8D7F4DFDEF4E0DFF2DCDAECD7D5EAD4D2F0DAD9E4CDCCECD7D5
+ EED8D7EFD8D7F6E1DFEFD9D7F0DAD8F0DAD8ECD7D5E9D2D1F4DFDEF6E0DFEED7
+ D6EBD4D2F7E0DFF7E0DEF2DAD9F2DAD9F4DFDEEBD6D4DFC7C7F3DCDBF0D9D9EC
+ D6D5E3CDCCD1BDBBCFB8B7EAD1D1F0D9D8EAD2D2EFD9D7F0D8D8ECD4D4ECD5D5
+ EAD2D1DCC5C5EAD1D1E4CECEE1CACAE6D0D0E4CECEEAD2D2ECD4D4EDD7D6E6CE
+ CEE1CAC9EDD5D4EDD7D6F0D8D7EDD4D4D4BABAD2B9B7E6CCCCF0D6D5EDD2D2EE
+ D5D5EFD6D4EED5D4ECD2D2EAD0CFE3C9C7EAD0CFEACFCDE3C7C5E7CDCBEACECC
+ E6CCCADBC1BFEDD1CFEDD2D1E6CCCBE6CCCBDBC1C0E6CCCBEBD0CEE2C6C4E1C4
+ C2DEC2C0DFC1C0E7C9C7EDCECCEDCECDEFD0CFEECECDEACAC9EFCFCDF0D0CEEE
+ CDCCF3D1CFECCCCAEECDCCE9CAC7ECCCCBEECECCEACAC7EECECBE1C0BED4B2B1
+ D9B8B6EBC9C6E5C3C1D7B3B2DAB7B5EECAC7EFCBC9EAC6C3EECCC9EFCDCBEAC9
+ C6F0CCCAEFCAC6EEC5C2ECC3C1ECC6C3EFCAC7EECBCBE3C0BEDAB5B2DAB2B0DC
+ B4B2DAB3B0DCB3B1E9BFBDEEC3C1EFC3C15F4E4CEBC0BDECC1BFE0B5B3E0B9B7
+ E7C0BEE6BEBAE4B9B7E2B8B5EDC3C2ECC2BFEABEBAEEC0BDF3C3C1F5C4C1F6C5
+ C2F6C5C2F4C2BFEEBBB8F3BFBBEEB9B7000000987B79F3C3C0F4C3C090706E00
+ 0000F4C0BDEEB9B62C2222D4A7A5F2C3C1F2C6C37E63629C7B79F5C2BEF5C4C0
+ F6C7C3D2A7A5F5C1BEF5BFBBF3BAB8F3BFBBF0C1BEEAB9B6EFBFBDEDC2BFEEC4
+ C1F2C3C0EDBDB9EFBDBAF2BFBBF2BEBAD2A4A12C2222F2BDBAECBBB8F0C0BEEC
+ C0BEE9BFBBEABDBAEBBFBBEBC0BDE7BDB9E9BBB9E7B9B7E6B8B6E7BBB8E2B6B3
+ E6BAB8EBBFBBE6B8B6E4B7B5E3B6B4EEC3C1EEC6C3EFC5C3EFC3C2EEC2C1F0C6
+ C3F4CAC6F6CCCAF4CAC7ECC2C0F3C9C6F4CAC7F7CDCAF7CDCAF6CDCBF4CBCAF0
+ CAC7EEC6C5EEC9C6EAC5C3EECAC7EECAC9EECBC7F2CFCCF2CFCEF4D1CFF2CFCD
+ EDCCCAEDCBCAEFCDCCEECCCBEECDCCEFCFCEEBCBCAEECFCDEACAC7E1C0BEE3C2
+ C1EBCCCAEDCCCBF0D0CEE5C5C3D6B6B4D7B7B6D9BAB9D7BAB9D9BEBDE4CAC7E6
+ CDCBE2CAC9E2CAC9E6CECDE2C9C6E4CBCBECD2D1E0C6C4EDD1D1F2D7D6E9CECC
+ F0D6D6F3D8D6F2D7D5EDD4D1EFD5D4F3D8D6EDD2D1EFD5D4EFD5D4EFD6D4F2D8
+ D7F3D9D8F3D9D8EDD4D2EED5D4F3D9D8F3D8D7E7CECDF3D9D8F3DAD8ECD2D2E5
+ CCCCF0D8D7EED7D6F3DBDBF0DADAECD6D6E1CCCCE7D2D2ECD7D7EBD6D5EFDBDA
+ EDD8D8DFCCCCE3CFCFE9D5D6EAD7D7E7D4D5E7D5D5E9D6D5EAD6D5E0CBCADBC7
+ C5E5D1D0EFDBDAECD8D7E4CFCEEBD5D5EDD9D9EDD9D8ECD8D7EED9D8EFDBDAEC
+ D7D7F2DEDCECD8D8F4E0DFF4E0DFF4E0DFF2DEDCF0DEDCF2DFDEF4E0E0E9D6D4
+ E7D4D2F0DEDCE6D2D1F3E0E0EFDBDAD2BFBEF9E3E2FBE4E3F8E3E1F9E3E2F9E5
+ E4F7E2E1EFDBD9EFDBDAE6D2D10000000000000000EAD5D2D8C3C1ECD7D6EED8
+ D7E4CECCF2DEDBF2DCDBECD7D5DBC6C4E9D2D1F0DAD9E3CDCCE4CECCD8C2C1D9
+ C3C2EDD7D6EFD9D8F2DEDCF2DCDBF0DAD9E6D0CFF2DCDBF4DFDEE9D4D2E1CCCB
+ EFD9D8F2DBDAEED7D7ECD6D5F3DEDCEDD8D7E9D2D0F3DCDBF3DCDBEFD9D8DEC7
+ C6D1BBBBCFB9B8E3CBCBEFD9D7E4CECDE6D0CEECD5D4ECD6D5F0D8D8EDD7D5E5
+ CECDEED7D7E6D0D0E0CACADFC9C9E4CDCDE9D2D1ECD4D5E9D1D1E5CDCDE4CDCD
+ E5CDCDE4CCCCEED6D6EDD5D2D2BABAD2B8B8E0C6C4E7CECCE2CAC9E1C7C5DCC3
+ C3E4CBCAEDD2D2EBD1D0E3CAC9E7CECCE6CCCBE4C9C9E5CAC9E7CCCBE2C6C4DA
+ C0BFE3C7C6E7CCCBE1C5C5E6CACADFC3C2EBD0CEECCFCEE6CBCAEFD4D2EFD2D1
+ EBCDCCECCECCF0D1CFF3D4D1F3D1D0F0D0CFEECFCEEFCFCEEDCCCBEBCBC9EFCF
+ CDEAC9C7EECDCCE1C0BFE2C2C0E6C6C5E4C3C1E9C7C5DFBDBAD5B4B1DBB9B7EB
+ C9C6E7C4C3D7B4B2D8B4B2E4BFBEECC7C4E6C2C0EFCAC9EAC5C2E3C0BEF2CECC
+ F0CBC9E7C0BEE4BDB9EEC4C3EFCAC6EFCBC7E0BEBADBB6B4E0B8B6EAC0BEDEB5
+ B3D9B0ACDBB0AEECC1BEF0C5C2D2AAA8614E4E453838917472E7BEBBEDC5C4E9
+ BFBDE2B6B4E5B9B7EDC3C1F0C4C2EBBDBAE9B9B6E6B6B3E4B3B0EDBAB7F0BDBA
+ E9B5B3E1AEAAC69795403030000000403231C69C99B18B89140F0F0000009573
+ 71B28786140F0F463736D7ABA8BA99964738381511107E6362F2C0BBF4C3C1F3
+ C1BEF3BFBBF6C0BBF6BEBAF5C1BEF2C0BEEEBDB9F3C2BFF3C6C3EDC2BEE9B8B5
+ E2B1ADECB9B6F2BEBAD4A6A4967572000000E5B3B0EBB9B6EDBEBBECC0BEEEC1
+ BEE5B7B5EABDB9EBBEBBE1B4B1E3B5B3E1B3B0E3B6B3E7BBB9E5B9B6E7BAB8EA
+ BBB9E9BAB8E5B7B5DCB2AEE3BAB7E9BFBDEBBFBDE7BDB9EDC1BEEFC3C1F0C6C3
+ EABFBBE5B9B8ECC1BEEAC0BDDFB3B1E5BAB8F3C9C6E9C0BDEBC3C0ECC4C2EBC4
+ C3EBC5C3EEC7C6EAC6C4EAC5C3E9C5C3E2C0BEE4C1BFECC7C6E4C2C0E4C3C1E6
+ C4C3E4C1C0DFBDBAE4C4C2EDCDCBEDCDCCECCDCCEECDCCE5C6C4E2C2C0EDCBC9
+ E6C6C4EAC9C6EBCBC9DEBEBDE9CBC9EDCFCEDABFBED8BEBDDFC7C5E4CDCBE6CD
+ CBE7CECDEBD1D0E9CFCEEBD0CFEAD0CEE1C7C5EACFCDF0D6D4E5CBC9EED4D1F0
+ D5D4EFD4D1E5CAC7EDD1D0F0D6D5EACECDEDD2D1EED4D2E5CCCAEFD5D5F0D7D6
+ EFD6D5EED5D2EAD1CFF3D9D8F0D8D7E1C7C7EED6D5F0D7D7EBD1D0D8C0C0DAC2
+ C1DBC4C3F0D9D8F2DADAE4CECEDCC6C6EAD4D5ECD7D7EDD8D8EEDADAEED9D9E6
+ D4D4E4D1D0E7D4D4EAD7D7ECD8D8EAD7D6E9D5D5EAD6D5EBD6D5E6D2D1ECD8D7
+ EEDAD9EDD9D8E6D0CFE5D0CFE4D0CFEFDBDAEFDBDAF2DEDCF2DEDCEED9D8ECD8
+ D8E4CFCFE4D0D0E7D2D1F2DEDCF0DBDAE7D4D2E6D1D1F0DEDCE6D1D1E7D4D2ED
+ D9D8E5D1D0EDDAD9DFCAC9CDB8B7DAC5C3F2DEDBE6D1D0F2DEDBF2DEDCF3DFDE
+ F4DFDEEBD6D5E5D2D10000000000000000F2DCDBD2BFBDEFDBD9F5E0DFF5E0DF
+ F7E1E0F0DAD9D5C0BED4BFBEE5CFCDD2BEBDCCB6B4D2BEBBD0B9B9CDB8B7CEB9
+ B8D4BFBDF0DAD9F2DCDBDBC5C4D0BAB9E6D0CFEFD9D8D1BBBACEB9B8D8C1BFD8
+ C1BFD6C0BED0BAB8CFB9B8D2BEBDD9C3C2EAD4D1E2CCCCD7C2C0DCC6C6D4BDBD
+ CFB9B8DCC6C5E6D0CFD5BEBEDAC3C2ECD4D2E9D1D1EDD6D6D5BFBED6BFBFECD4
+ D5E9D2D1DCC6C6D9C2C2D9C2C2DEC6C6E7D2D0EDD8D7E6CFCFD9C2C2D6BFBEDA
+ C3C2EDD5D2EDD5D4D6BEBDD5BBBAE1C7C6EBD1D0E4CBCAE2C6C6E2C7C7EDD2D1
+ EDD2D1E7CDCCD7BDBDD7BEBDE7CDCDE7CDCCE6CBCAD8BBBAD6BBBADAC1C0DCC2
+ C1DABFBFD6BBBADEC3C1E6CBCAEBCFCEDABEBDD8BDBAEED2D0EDD0CED8BBBAD8
+ B9B8D9BAB9E1C1BFF0D1CFEBCCCBEACAC9E0C0BFD8B8B6D7B7B5DBBAB9E4C3C1
+ F0D0CEE0BFBED8B7B6D8B7B6D8B6B4E6C4C2DCBBB9D6B5B2DFBEBBE9C6C4ECCA
+ C6D6B3B2D6B3B1DEB9B7E2BDBADFB8B6DCB6B4D6B0ADD9B4B1EBC5C3E7C5C3DB
+ B7B5DBB5B4DEB4B2E2B9B7F0C9C5EEC9C6E6C3C1EAC4C1ECC4C1DEB4B1D9B0AC
+ DAB0ACE5B9B7EDC1BEEABDBAECBEBA90716FBF9594DBADABE9BFBBEFC5C3E4B8
+ B6DEB0ADE7B9B8F0C4C1E7B9B6DCAEABDBABA8DBAAA8DBA8A5D8A6A2E2ADABEB
+ B7B4E4B0ACDAA6A3DCA7A4E5B2AEF3C2BEF6C3C0E7B4B1EAB5B2DEA8A5DCA4A1
+ DCA4A2DFA8A5E4B2AEF0C4C1F0BDB9E0AAA7E2AEABE4B2B0E3B3B0DBA9A6DEA8
+ A5EFB7B4F5BDB8F2BDB9E0ADABE3B1ADEDBEB9E3B9B5E0B4B1E3B1ADDEABA9EA
+ B7B4F2BDBAF3BFBAF3BBB78A6866DAA7A4EBB9B6EBBBB8EEC1BFEFC1BEE9BAB7
+ EBBDB9EABEBAE3B5B2DFAEADDFB0ADDFB2B0DEB2AEDCB0ACE0B3B0E9BAB7ECBD
+ B9DCB0ADDAB0ADDBB3B1DBB1AEDEB1AEEBBFBBEDC2BFE6BBB8DCB2AED9ADAADA
+ B0ACF6CBC7F6CBC7DCB2AEDEB3B1E5BBB9E2B8B6DAB3B1DAB4B1E1BAB8E7C1C0
+ EBC5C3EECAC7EAC7C4EAC5C4DBB9B7D8B4B3D8B4B3DFBAB9EAC7C6EDCBCADCBB
+ B9D9B7B6DFBFBDE4C5C3E1C1C0E0C1BFE9C9C6E6C5C3E0BFBDDEBDBAE7C6C5EE
+ CDCCEFCFCDEECFCEF0D2D1EED1CFDAC0BFD8C0BEDEC6C4E9CFCEEBD2D1EDD2D0
+ EACFCDE7CECCDCC2C2DBC1BFDAC0BFDBBFBFE5CBCAE0C4C3EACECDEACFCDDFC3
+ C1D6BAB9DABFBDDCC1BFDFC3C2EDD2D1EFD5D4E0C6C4E6CBCBD6BBBAD6BBBAE0
+ C6C4DBC1C0EBD1D1E2CAC9D6BEBDDAC2C1DFC6C5D5BDBBD1BABAD7BFBFDFC7C7
+ ECD5D4E5CECED6C0C0D7C2C1E2CDCCE2CDCCD8C4C4DBC7C6E6D2D2DCC9C7DAC6
+ C6DCCAC9E5D2D2ECD8D8DBC7C6D9C4C4E0CBCAEBD6D5EEDAD9EBD7D6EFDBD9EF
+ DAD9D9C3C1D5C1BFD4C0BFE0CCCBE7D4D2E2CDCCD8C2C2D6C1C0D4BFBED1BEBD
+ D0BDBBDAC5C5F4E0DFF3DFDED7C2C2D4C0C0D9C5C5D6C3C2E4CFCFF3DFDEEFDB
+ DAF2DFDEE3CECDCDB7B6D1BDBBF0DBD9E0CBCAD7C2C1D2C0BEDFCCCAE5D1D0D2
+ C0BFD1BFBD0000000000000000FBE5E4E1CCCBF0DBD9F9E2E1F7E2E1EBD5D4CB
+ B5B4CDB7B5DFC9C7EED8D7C9B4B2CAB4B3ECD7D6EBD5D4CDB8B7CCB7B5D5C0BE
+ F0DBD9EFD9D8CDB5B4CDB6B5E6D0CFE0CAC7CCB6B5D9C3C1F2DBD9E5CFCDE4CD
+ CBD8C1BFCAB4B3CFB9B8E1CBCAD9C4C3D2BEBDD4BEBEE1CBCAD2BDBDCFB9B8D8
+ C1C1E6CFCFD4BDBDCFB8B8E0C7C7EAD2D1E4CDCCD1BBB9DBC3C3EDD7D5ECD4D5
+ D6C1C0D6C0BEDBC4C3D7C0BFD8C2C2E6CFCEE6D0D0D8C2C2D6C0BFD9C2C1E7D0
+ CFE6CECDD7BFBED5BBBAE1C9C7EAD0D0E5CBCAE7CDCCE3CAC9EDD1D1EDD2D1DC
+ C1C0D6BABAD6BAB9E7CDCCECD1CFECD1CFD5BAB9D5BABADEC3C2E3C7C6D6BBBA
+ D6BBB9DFC2C2DEC2C1DABEBDD7BAB8DCC0BFE5C9C6D7BAB8D4B7B6DABDBAD7B9
+ B8D4B5B4E3C3C2EFD0CEE1C1BFD5B5B3E0BFBDE4C3C1D7B6B5D8B7B5F3D0CEEB
+ CAC7D6B5B3D4B2B1E6C3C1EECCCAE1BFBDD6B4B3E1BFBDEFCDCBEFCDCAD6B2B0
+ D5B1AEE3BFBBEAC3C1D8B3B1D5ADAAD4AAA8E6BEBBEAC3C0DAB5B3D9B7B5DBB7
+ B4DBB4B2D9B1ADEAC0BEEFC7C4E5C0BEDAB6B3D9B4B1D9B1AEDBB1AEE2B7B4EA
+ BEBBE9BDB9EABDB9EABDB9DFAEACD8A8A6D8A8A6EDC0BDEDC3C1DBB1ADD9ABA8
+ ECBFBBF4C6C3DEB1AEDAABA8ECBAB7ECBAB6D8A6A3D7A4A1EBB8B4F3BEBAE3AD
+ AAD9A29EDCA5A2F2B9B7F9C5C2FBC6C2F9C4C1EBB6B3D8A29EDAA29EECB3B0E7
+ AEABE4B0ABF4C6C3E5B3AEDBA4A2E4ADAAEDB9B6E3B3B0DBA7A6DBA5A3E6ADAA
+ EDB3B0DEA9A6DBA9A6E0ACA9E2B1ADDBB1ADDFB1ADECB9B6E1ADABE3B0ACEEB8
+ B6F3BBB8E3ACA9D9A39FD9A5A3EAB8B5ECBEBAE6B8B5EDBDBAEEBFBBEEC0BDEA
+ BAB8DBABA8DCACA9E5B6B4DFB2AEDBAEACDBAEABE5B7B5EDBEBAE6B7B4D9AEAB
+ DBB3B0E3B8B5DBB0ACD8ABA8E2B5B3EEC2BFEFC3BFD6A9A5D5A7A4DBAEACF5C9
+ C6ECC0BDD8ADAAE5B9B8E0B5B3D8B0ACE2BAB7DAB4B3D9B2B1E4BEBAEBC6C4F3
+ CDCBF2CECBEECAC7E2BEBDD7B2B1D7B3B2E1BFBDEBC9C7E9C5C4D8B7B6DBBAB9
+ E9C7C5E0C1BFDABBBADFBEBDE0BEBBD8B6B4DCBAB8DFBEBBDCBAB9EECFCDEECF
+ CEDEC1BFD8BDBAD7BDBBD7BEBBDEC3C2EAD1D0E9CFCDECD1D0EBD0D0E7CDCBE0
+ C5C3D8BEBBDBBFBEDBC0BFDABEBDD6BAB8DABEBEE3C6C5EACECDD6BAB9D5B9B7
+ E7CBC9DEC2BFD4B9B7E0C5C4EFD6D4EACFCDDCC2C0D4BBB9D4BAB8DCC2C1DCC2
+ C1EBD0D0D5BBBAD5BBBAE6CDCCE3CBCAD2BAB9D2BAB9DBC5C4ECD6D4F2DAD9D2
+ BDBDD2BEBDDFC9C9DFCBC9DAC4C4D5C1C0DCC7C7ECD7D6D9C4C4D7C4C3DAC7C7
+ ECD8D8E7D4D2D5BFBED5C0BFE2CECCE6D2D1EEDAD9E6D2D1F2DCDBF3DCDBD6C1
+ BFD1BDBBD5C0BFECD8D7E5D0D0D0BBBAD2BEBDEAD6D4DFCAC9CEB9B9CEB9B9E0
+ CBCAF5E1E0EFDBDACEBABAD2BFBEE7D4D2D4C0BFCFBBBAECD7D6F0DCDCF0DCDB
+ CDB8B7CAB6B4E2CCCBF4DFDED7C2C1CFBBBADBC6C6E7D5D4D5C2C1CEBAB9CFBB
+ BA0000000000000000FDE7E5ECD6D5E5CFCEEFDAD9F0DBD9CDB8B7C9B4B2D2BF
+ BEE4CECCF6E0DFCDB7B6CCB7B5F0DBDAEFDAD8CEB9B7CCB7B5D8C2C1E9D4D2EB
+ D5D2CBB5B3CDB7B5EFD9D8E6D0CFCDB7B5E2CCCBF3DEDCEBD5D2EBD4D1E3CCCB
+ CBB5B3D1BAB9E7D0CFD8C2C1D5C0BFE7D2D1EAD6D4D2BDBBCFB9B8E5D0CEE9D1
+ D1D8C2C0D1BAB9D4BDBDE7D1D1E3CCCBD2BBBAE6CFCDECD5D4DBC4C4D6C0BFDF
+ C7C7E9D2D1E2CCCBD6C0BFDBC4C4EAD2D2E4CECDD6C0BFE0C9C6EED6D6EDD5D5
+ D7C0BED5BBBBE7CDCDEDD4D2E9CFCFE5CCCAE1C6C5E7CDCCE7CCCBD7BBBAD6BA
+ B9D6BAB9E1C5C4EBCFCFEBCFCED6BAB9D6BBBADCC1C0E3C9C6D8BEBDD7BBBADB
+ C1BFD7BBBAD7BAB9E9CCCBEBCECCE2C5C3D2B7B5D9BDBAE9CBCAE2C4C3D5B6B4
+ D6B8B6DFC0BED5B5B4D7B6B4E7C7C5E6C5C3DCBBB9D5B3B1E9C6C4E7C4C3D5B2
+ B1D6B4B2EBC7C5E9C6C4E1BEBDD5B1B0DAB7B5EDC9C7EDCBC7D5B2B0D8B4B2EC
+ C6C4F2CCCAE9C1C0D5ACAAD6ACAAEBC2BFE2BAB7D7B2B0DBB7B6E3C1BFE3BDBA
+ D9B2B0DAB0ADDEB4B1D9B2B0D9B4B2DBB7B4E3BBB9EBC0BEECBFBDECC1BEECC0
+ BDEFC0BEF2C2C0E7B7B5DAA9A7DAA9A6F0BFBBE3B5B3D9AEABDAADAAF0C0BDEC
+ BFBBD9ACA9E1B1AEF6C5C2F7C4C2DEAAA7D8A4A1F6C0BDF6C0BDE3ABA8D79F9C
+ E6ADA9EEB6B3EDB8B5ECB8B5F5BFBBE6B2ADD8A39EDEA4A1F5BAB6F6BBB8F4BD
+ B8F8C9C5E7B4B1DBA4A1E7B1ADF3BEBAEFBEBADBAAA6E5B0ACEFB5B2EFB5B2DE
+ A8A5DBA8A5E1ADA9E5B4B2DBB2B0DEAEAAE5B2AEE9B5B2E9B4B0EDB6B3F0B9B5
+ DEA5A2DAA4A1DAA6A3E3B3B0F0C2BFEDBEBAF0BFBBF0C1BDEABAB7DCACAADAA8
+ A6E9B7B5EDBEBBE9BBB8DAACA9D9ABA9EEBEBBF0BFBBDFB1AED9AEACE6BAB8EF
+ C3C0EEC0BDD8A9A6DBADAAF9CBC9F7C9C5D4A7A3D6A7A4E2B4B1F5C9C5D8ACAA
+ D9ADABF5CAC7E0B6B4D6ABAAF3CBC7EEC5C4D7B1AEDAB5B3ECC6C4EECBC9EBC7
+ C4EAC4C2EECAC7D7B3B2D7B4B2ECC9C7ECC9C7E6C4C3DABAB9E0C0BFEDCECDDF
+ C1BFDABAB9EBCBC9E5C2C0D7B5B3E0BEBDE4C3C1D9B9B8DFC1BFDBBFBDD7BBBA
+ D8BEBBDCC2C0E5CCCAE7CCCBE5CBCADEC3C2E7CDCCEBD0CFE7CDCCDABFBDD7BD
+ BBE2C5C5DCC1C0E6CAC9D6BAB8D7BDBAE7CCCBE9CDCBD4B9B6D7BAB9F2D6D2EF
+ D4D1D4B8B7D6BAB7F0D6D4E9CECDD7BDBBD5BAB9D5BBB9DCC2C1E6CDCBE1CAC7
+ D5BBBAD9C1C0F3DAD8F2D9D8D5BDBDD4BEBDE3CDCCE6D0CFE6CFCED1BBBBD5BF
+ BEEDD8D7EAD4D5D5C0C0D5C1C0E1CCCCECD8D8DECAC9D6C2C2DCC9C9ECD7D7E4
+ CFCFD5BFBED8C3C2E5D0D0E6D1D1EFDAD9E9D4D2F3DCDAF3DCDAD4BFBED1BDBA
+ DCC7C6F2DCDBE1CCCBCFB9B9E0CBCAF4DFDEEAD5D2CEBABACEB9B9DFCAC9F0DB
+ DAD5C0BFCEB9B9DCC9C7EFDBDADECBCACEB9B9D2BFBEE7D4D2E6D1D0CAB6B4CC
+ B7B5F6E0DFF5E0DFD0BDBACFBBBAEDDAD9DBC9C6E2CECDCEBABAD4C1C0000000
+ 0000000000F9E4E3EBD5D4DBC6C5F9E4E3F5E0DFCAB5B4C7B3B2D2BDBBDAC4C2
+ EAD4D2CEB9B7CEB9B7E4CFCDDAC4C3CEB9B8CDB8B7E7D1D1E3CDCBEBD5D2CBB5
+ B3CEB8B6E6CFCEEBD6D5D1BDBBD8C1C0E9D2D1E7D0D0F4DEDCF8E0DFCEB6B4CB
+ B3B2D6BFBED1BBB9E5CFCEEDD8D7EED9D8D4BFBECFBAB9ECD7D7EBD5D4E4CDCD
+ D5BEBED5BFBEDBC5C5DCC7C5D5BDBDE5CECEE9D1D1D6BFBED7C0C0E5CECEE7D2
+ D0ECD4D4D9C2C1D9C2C1E2CBCBE2CCCBD6C0BEE3CCCCEED7D6EAD1D1D8C0BFD5
+ BBBBEAD2D0EFD6D6EFD6D5EED4D4E9CECDE6CBCBE1C6C4D6BAB9D7BBBADAC0BE
+ D8BEBDE7CDCBEBCFCED7BBBBD8BDBBE7CDCCECD0D0DCC1C0D6BBB9DABFBED7BA
+ B9E2C5C4EED1CFE7CBC9DEBFBED4B6B4E9CAC9EFD2D0E4C6C4D6B9B7D6B8B6DB
+ BBB9D5B6B4D8B9B7EBCBC9E7C6C4E5C4C2D4B2B1E4C2C0EBC9C5D4B0ADD6B2B0
+ EDCAC9EBC9C5E3C0BED5B3B1DCBAB8EBC7C5EECAC9D5B2B0DAB7B5EFCBC9F2CC
+ CAEDC6C3D6ADAAD6AEABEBC2BFE0B6B4D7B1ADE2BDBAE5C0BEE7C4C3DAB5B3D9
+ B1AEDAB0ADD9B0ADE5BEBAEEC9C5E6C0BEE6BEBAEDC2C0EDC1BFEBBFBBEBBEBA
+ EFC1BFE5B5B2DAA9A6D8A7A5E1AEABDCABA8DEB1ADE1B4B1E9B8B5E6B5B2D9A9
+ A7DFB1ADF4C2C0F5C2BFDEAAA7D7A39EF9C2BFF5BFBBE5AEABDAA29FEFB6B3F7
+ BDB9F5BFBBF5C0BDEFB9B6F4BDB8DCA6A2DBA39FE7ABA8E7ABA8EDB4B1F4C3C0
+ EAB7B3DCA39FE9B1ADEFBAB7EDBAB7DCAAA7E7B1ADEFB5B1EFB4B1DFA9A6DBA8
+ A5EDB7B4F2C2BFE1B6B3E0ADAAE5B1ADECB7B4F2BBB7F2B8B5EFB7B3DBA49FDC
+ A6A3DEAAA7DEACA9F0C1BDF0BFBAF3C0BDF2C1BEE9B7B5DBA9A6DAA8A6ECBBB8
+ ECBDB9EDBDBADCADAADAAAA7EDBBB9F0C0BDDBB0ACD8ADAAE4B6B3EEBEBAEFC0
+ BDD7A8A5D8A9A7F7C7C4F5C5C2D5A6A3D6A6A3D9ABA8EFC1BFD7AAA8D7ACA9EF
+ C4C2DEB4B1D8AEABF0C7C5ECC5C3D7B2B0D9B4B2EBC5C3F2CBCAEEC7C6ECC7C5
+ ECC7C6D9B6B4D9B6B5EFCDCBEDCBCAEACAC7DABAB9E1C1C0EDCECCDEBFBDDAB9
+ B8EFCDCBEECBC9D9B6B4DFBEBDE7C7C6D8BAB8DBBFBED8BEBBD7BEBBE7CCCBEA
+ CECDE3C6C4E4CAC7EDD1CFE4C9C7E9CECCEACECEE7CECD7062620000005F5353
+ CDB4B4EFD4D1D6BAB9D7BAB9E9CDCBEBCECDD5B8B5E5CAC7F3D7D5F2D6D2D4B8
+ B7D5B9B7F3D7D5EFD4D1D6BAB9D7BBB9DCC1C0DBC1BFEED4D4E5CDCCD5BEBBE0
+ C7C6EFD8D7EED9D7D9C2C1D6BFC0E4CDCDE0C9C9D9C3C3D1BBBBD7C1C0EAD4D5
+ E6D1D0D4BFBED6C0C0E6D2D2EDD8D8ECD7D7D5BFBEE5D1D0EEDAD9EDD9D8D5BF
+ BEDBC5C5E7D4D2E6D2D1EBD6D4E9D2D1EED8D7F2DAD9D6C0BED0BBBAD9C4C3EE
+ D9D8D8C4C3CFB9B8E5D0CFF2DCDBEDD8D8D0BBBACEBAB9EAD6D5EFDAD9D2BEBE
+ CEB9B9E1CCCBF2DEDCE3CFCECEB9B9D0BDBBE6D1D1E6D0CFCAB6B4CEB9B8F0DB
+ DAECD7D6CEBAB9D1BEBBEEDAD9DCCAC7E1CECDCEBBBAD4C1C000000000000000
+ 00F9E4E3D7C1C0D0BBBAF4E0DEF0DBD9D2BDBAC7B2B0D7C2C0E0CAC9F0DBDACE
+ BABACEB9B9F0DCDBEFDAD9D1BEBBCEB9B8F0DCDBE4CECDF3DEDCCDB7B6D1BDBB
+ F0DBD9E4CFCED0BDBBE5D0CFF0DBDADCC7C6F0DAD9F0D9D8C9B3B2CEB7B5DEC7
+ C6D1BAB9E9D2D0EED9D8EBD5D4D4BFBFD0BAB9EAD4D2ECD6D6E5CFCFD5C0C0D5
+ C1C0E0CCCADCC6C5D6C0BFE7D2D1EAD2D2D5BEBED6C0BEE0CACAE7D1D0E6D0CF
+ D8C1C1D7C0C0DFC7C6DBC4C4D6C0BEDBC3C3EED6D5E5CECCD7BFBED5BBBBE6CE
+ CCEED5D4EFD7D5EFD6D5EAD0D0E5CBCBD7BDBAD5BAB9E5CBC9E6CBCAD7BBBAE7
+ CDCBEBCFCED6BAB9D6BAB9E9CDCBECD0CFD6BBB9D6BBBADFC3C1D7BBB9E0C3C2
+ EED1D0EDCFCDE6C7C6D4B6B4E2C4C2F4D6D4EACCCBD6B7B6D8BAB8EBCDCBD6B6
+ B5D7B8B6F4D4D1EFCECCDFBDBAD0ACABDFBBB8EECAC7D2B0ADD4B2B0EBC9C5E9
+ C5C4DFBBBAD6B4B3DFBBBAE2BFBEEAC5C4D5B2AED7B4B1ECC7C5EEC9C6E4BDB9
+ D5ACAAD6ADACEEC4C1E7BEBAD8B0ADE4BAB9EBC4C2EAC3C1DAB7B4DAB4B2E0B5
+ B4DBB0ACEDC2BFEFC5C3EDC7C4E1BAB7DBB3B0E5B9B6EDC0BDEBBEBAEFBFBDDE
+ AEABD9A9A6D9A7A5E4B1ADDCAAA7E1B0ACEABEBAF0C0BDEEBBB8D8A7A4DFAEAC
+ F2C1BDEEBAB7DBA7A4D8A39FF4BDB8F5BEBADEA6A3DAA39FE9AEAAF4B7B4F6BD
+ B8F7C2BEF4BEB9F4BBB8DAA39EDBA29DECB0ABE3A7A3E4AAA6ECB9B5E3B0ABDE
+ A39FE6ADAAEFB9B6E9B5B2DEAAA6EBB2AEF2B5B2EFB3B0E4AEABDCA7A4F0BAB6
+ F3C3C0E0B4B0E1ADAAEAB5B1E4ADAAECB5B2EDB3B0E0A5A2DBA29EE1AAA7E2B0
+ ACDBAAA7E2B1ADE5B3B0EEBDB9F0BEBBEEBBB8DEA8A6DAA7A5E4B3B1EBBAB7E5
+ B6B3DAA9A7DAA9A5F0BFBBF0C1BFDBB1ADD8AAA8E9B7B5EFBEBAF3C2BFD7A8A5
+ DAABA8F2C2BFF4C3C0D6A6A3D6A6A4E3B4B2F4C5C3D8ABA9D8ACA9EABFBDE4B9
+ B6EDC3C1ECC3C1E6C0BED8B2B0DAB6B4F0CBC7F3CBCAECC5C3ECC6C5EBC6C4DA
+ B6B5DAB7B6EECBC9E6C5C3E9C9C7DABABADFC0BEE9CAC9DEBDBBDAB8B7ECCAC9
+ F0CECCEFCFCEEACBC9E3C5C4D8BBBADCC1C0D9BFBDD8BEBBEED1CFF0D4D1ECCF
+ CEDBBFBDD9BDBADFC2C1E3C7C6E9CDCCE7CCCCDBBFBDA48D8D92817F796A69CF
+ B5B4D6B9B7D6BAB8DCC0BFDFC2C0D5B8B5DBC0BEECCFCDE7CBCAD4B8B7D6BAB8
+ F5D8D6E9CCCBD0B5B3EACDCCF3D7D6D6BDBAF2D7D6E9D1CFD5BBBBDFC6C5EED6
+ D6EED8D7D7C2C1D6BFBFEED9D7EED8D8EAD4D2D2BDBDDCC5C5F0DBD9F0DAD9D4
+ BEBDD4BEBDECD5D5F0DADAECD5D5D2BEBDE1CCCBEFDADAEBD5D5D5BFBED8C2C2
+ EBD6D6E7D2D1EFD9D9EBD5D2EED8D7EFD9D8D6C1BFD0BAB9DBC6C5F4DFDEE6D1
+ D1CFB9B8DAC5C4F4DFDEF4DFDECFBAB9CEB9B9E9D2D2E9D2D2D2BEBDCEB9B9DE
+ C9C7F2DEDCE9D6D4CEBAB9D1BEBDE0CCCBE2CDCCCCB7B5CDB8B6ECD7D6F0DEDC
+ D0BBBACFBBBAF3DFDEECD9D8DCCAC9CEBBBAD2C0BF0000000000000000F9E3E2
+ D1BDBBD2BFBDE6D2D0F0DBD9E6D1D0C7B3B1CCB7B6E6D2D0EFDBD9CEBAB9CEBA
+ B9F6E1E0F5E1E0CFBBBACEBAB9E7D4D2EAD7D5EBD7D6D0BEBDD2C0BEECD8D8D9
+ C6C5CFBDBBDCC9C7DFCBC9CFBABAD4C0BFD4BEBDCCB6B5D4BFBDEED8D7D0B9B8
+ CFB9B8E9D1D0EDD6D5E4CECDCFB8B8D9C2C1EAD4D2DCC7C7D5C1C1D9C5C4DCC7
+ C6D6C1C0D6C0BFE5CFCEE5CFCFD6BFBFD5BFBED9C2C2DEC6C5DFC7C5D6C0BFD6
+ C0BEE2CBCBDAC3C2D6BFBED7BFC0E2CBCADEC5C5D5BBBAD5BBBAE1C7C6E9CFCE
+ EFD6D5EFD6D5EED4D4DBC1C0D5BABAD5BAB9E9CDCDE9CDCDD7BBBADAC0BFDBC1
+ BFD6B9B8D6B9B8DCC0BFDBC0BED6B9B8D7BBBAE3C7C6D7B9B9D4B8B6DFC1C0E6
+ C9C6EBCDCBD4B6B5D7B8B7EECECDDBBDBAD2B5B3E9CAC9F8D9D7DBBDBAD4B4B3
+ DCBBB9E9C6C4D7B5B3D1ADABDCB9B7DAB7B5D4B1B0D4B1B0DBB8B5E5C2C0D8B5
+ B3D6B2B0E3BFBEE3BFBDE2BEBBD6B1AED8B3B1F2CCCAEFC9C6DEB7B4D5ADAAD6
+ ACACEFC6C4EFC5C3D9B1AEDCB4B2EAC1BEE3BAB8DAB4B2E4C1BEE6C0BDDCB2B0
+ E1B4B2ECC0BDE1B8B5DAB5B2DAB3B0E1B5B3EFC1BEF0C2BFEFC0BDDBABA9D9A8
+ A6DAA8A5F2BEBAE3B0ACD8A5A2DFB0ACF4C5C2F5C3C0DAA7A5D9A8A5EEBEB9ED
+ B9B6D9A4A1D9A49FEBB2AEEDB5B2DAA49FDAA39EE3A9A6EDB2AEF5BAB6F6C0BD
+ F6BFBAF2B9B6D9A29DDBA19DE6A9A5DC9E9BDC9F9BE7B4B0DCA8A5DCA19CE3A9
+ A5F2BAB7E7B4B1DEA9A6E4ABA8F0B4B0EDB1ADE0A9A5DCA7A4E7B2AEEABAB7DB
+ ADAAE1ACA8E6AEACDEA6A2E4ACA8E4A9A7DBA29DDBA29EE7B2ADDFABA8DAAAA7
+ DCAAA7EDB9B6F3C0BDF2BFBDEDB8B5E5B1ADD9A6A4DEACA8EEBEB9E0ADAAD9A6
+ A4D9A5A3EAB9B6E4B6B4D8AAA7D8A7A4F0BEBBF0BFBBE4B5B2D7A8A5DAAAA7F4
+ C3C0F0C0BDD5A5A2D6A6A3EFC1BEF8CAC7E1B4B2D7ABA8E0B5B2EABFBBF4CAC6
+ EEC5C3DBB5B3D8B1B0E4BDBBF3CCC9F0CAC7EDC7C5E4C0BFE2BEBBDAB6B6DAB8
+ B6E6C5C4E7C6C4E5C5C5DABBB9DEBEBBE7C7C5DFBDBBDAB8B7DCBBBAEDCDCCEE
+ CFCEE7CBC9DABFBED8BDBAEBCFCDE5C9C7D8BDBAE3C5C4EBCECCDFC2C0D7B9B7
+ D7B9B7E6C9C7E3C4C2EBCDCCEBCDCCDEC1C0D8BBB9DCBFBEE2C4C3403837D6B9
+ B7E0C1C0E0C2C0D7BAB8D5B7B5DFC1C0EED1D0E5C9C6D2B5B3D4B7B6F0D4D2D2
+ B6B4D0B5B4ECD0CEF2D6D5D0B6B4E0C5C4EDD2D2D6BDBDD8BFBFEBD2D2E1CACA
+ D5BFBDD5BFBDEED8D7EDD6D6DBC4C4D2BDBDD6BFBEEDD7D6EDD7D6DEC6C6D2BE
+ BBDAC4C2E1CBCBD6C0C0D4BEBDD6C0C0E4CECED6C2C0D5BFBED7C2C1ECD5D5EE
+ D9D8F3DCDAEED8D7EBD5D1E5CECDD2BBBACFB9B8D8C2C1F3DCDCEBD6D6D2BFBE
+ D4C0BFEDD9D9EAD5D5CFBBBACEBBBADCC7C6DFCAC9CEBAB9CEB9B9E2CECDF3DF
+ DEDFCCCBCEBAB9D2BFBEE9D6D4DCC6C5CBB6B4CCB7B7DCC9C7F2DFDED9C5C3CF
+ BBBADFCCCBE2CECDD1BEBECEBBBAD1BFBE0000000000000000EED9D7D4BFBEE3
+ CDCCDFCAC9DEC9C6DFCAC9E9D4D2CEB9B8D0BDBADBC7C6D1BEBDD4C0BEEFDBDA
+ E4D0CFD0BDBBD0BEBBD5C2C2D7C5C4D7C4C4D2C1C0D4C1C0E9D6D6E7D5D5D7C3
+ C2DAC6C6D8C4C4D9C5C4ECD9D8EAD6D6D2BEBDE7D2D1F3DBDAD0B8B8CEB7B6D2
+ BBBAE6CFCFEAD2D1D5BFBED4BFBDD5C0BFD8C3C2E0CBCAE4CFCFE4CFCFDAC5C4
+ D6C1C1E5D0CFE0CBC9D6BFBFD7C1C1E6D1D0EBD4D4EDD7D6DBC4C3D7C0C0E7D0
+ D0E7CFCED8C0C0DAC3C2E2CBCAD9C0BFD5BDBADAC1C0E4CBCAE2C9C7EAD1D0EE
+ D5D4E7CECCD7BDBDD5BBBAD9BFBFEACFCEEACFCFD9BFBEE1C5C4E6CBCAD7BABA
+ D8BBBAE5C9C6E4C7C6D9BDBAE2C4C3E7CBCAD7BBB9D2B6B5D5B7B6E2C4C3F3D4
+ D2DEBFBED5B7B5D7B8B7D2B3B2D2B4B3F6D5D2F3D2D0EECDCBD7B7B5D4B5B3DB
+ BAB8E7C7C4E9C7C5E3C1BFE6C4C2D7B5B3D6B3B1DCB8B7D8B6B3D7B3B2D8B4B2
+ E7C3C1DFBAB8D7B3B1D5B0AEDAB5B3EEC9C6EAC3C2D7B2B0D6B0ADD9B3B1ECC4
+ C3ECC3C1E5BEBBDBB3B1DBB3B1DAB2B0DFB7B4E7C0BEE9C3C0E3BBB8DCB1AEDB
+ ADABDBAEABDAB2AEDEB8B6EBC1BEEEC1BEF2C3C0F0C1BEE4B4B1DBABA8E1ADAB
+ F4C0BDE3AEABD8A39ED9A6A3E5B6B2F5C5C1EEBBB8DEAAA7DEACA9E3B2ADDBA6
+ A3DBA5A2E6ADAAE1A8A5E0A6A4DBA39FEFB5B2F0B4B1F6B9B6F4BDB8F6BFBAF7
+ BFBADFA6A2DEA39EDFA19CDC9D99E4A6A2EFB8B4E9B4B1DCA19CE1A6A2EFB7B3
+ E1ACA9DEA8A4E0A6A3E0A39FE1A39FDEA7A4DCA6A2E1AAA6ECBDB8E3B3AEE2AA
+ A6DFA8A4DFA6A2EBB2ADE7ABA7DCA19DDFA6A2F0B9B6ECB8B5DBA9A6E3AEABF2
+ BDBAF4C0BDF3BEBAF2BAB7F3BEB9EAB7B4DCAAA6E1ADAAE1ADAADBA6A3DCA9A6
+ E6B7B4DBADAAD8A7A4DAA8A4EBB8B6F0C0BEDBABA8D7A7A4E0AEABE9B8B5DFAE
+ ABD4A4A1D5A5A1DEAEABF2C2C0EFC2C0DCB0ADD9AEABE3B8B6ECC3C1DAB3B1D9
+ B3B0EAC1C0EDC5C3F3CBC9F0CBC7EEC7C5E1BDBADCB9B7DAB7B6DBB9B8DFBDBB
+ DFBFBDDEBEBBDABAB8DCBAB9E4C1C0E4C3C2DFBEBDDBBDBBE1C4C3EACECDDEC2
+ C1D9BDBBE2C5C3F0D4D1EFD1CFDEC0BEDBBEBDDBBDBBD9BAB9D9BAB9E4C5C4EE
+ CFCEE6C7C5EDCFCEEED1CFEED0CFE6C9C6DEBFBDDCBEBB413938615554EED0CF
+ DFC1C0D5B8B7D5B7B5E7CBC9EFD2D0D9BBB9D2B5B4D5B8B7DCC0BED2B7B5D2B8
+ B6DABFBED8BDBAD1B7B6DBC1C0E9CECEDCC3C2D8C0BFDAC3C1DBC4C4D7C1C1D7
+ C0C1EDD5D5DCC5C5D6C0BED5BEBED5BDBDD9C2C2E6D0CFEDD7D6D8C1C1D5BEBD
+ D9C3C3DBC4C3D5BFBEDAC4C2E4CECEE6D0CFD5BFBEDBC5C4E7D2D1F0DAD9F3DC
+ DBF3DCDAE3CBCAD5BEBDCFB7B6CFB8B8D2BFBDD9C5C5EBD6D6DECAC9D4C0BFD5
+ C2C0D5C1C0D2BFBFD6C2C1DFCACADAC6C5CEB9B9CFBBBBF0DCDBF4E0DFD2BFBE
+ CEBABAD8C5C4DFCCCBD4BEBDCCB7B5CDB9B8D2BFBEE0CDCCE5D1CFD7C4C2D0BD
+ BBD2BFBED1BFBDCEBBBBD8C4C30000000000000000ECD7D6EFD9D8F0DBD9EDD8
+ D6EDD7D6F8E2E0FBE6E5F2DEDCE2CDCCF2DFDEF2DFDEE9D6D5F2DFDEF0DCDBE5
+ D1D1E5D2D1E4D1D1DECBCBE3D1D1E5D4D2E0CDCEEEDCDBECD9D9E5D2D1EBD7D7
+ EFDCDBEFDCDBE9D5D5EAD6D7DAC6C5E7D2D2ECD7D6D6BFBEDAC4C3D5BFBED8C0
+ BFE0C9C7DBC5C4E3CECCE3CECDE2CDCCE9D2D2E6D1D0E9D2D2E6D1D1E3CECEE7
+ D2D1E4CECED6C0BFD8C3C2EAD4D1E5CECEEDD6D4D8C0C0D7C0BFECD4D4E9D1D0
+ EBD2D2E7CFCFEDD4D2E9CFCEE7CECCEDD4D1E9CECDE6CCCBEAD0CFEED4D2E7CC
+ CCDBC1C0E6CCCBE5CCCAE7CDCCE9CECDE2C7C7E4CAC9E5CAC9DCC1C0DEC1C1DF
+ C2C1DBBEBDE1C3C2EACCCCECCECEE1C2C0DEBFBED8BAB9EECFCEF3D5D2EBCCCB
+ E3C3C1F3D2D0DBBAB8D8B8B7ECCCCAE2C2C0E9C9C6D9BAB8DCBBBAF4D4D1EFCF
+ CDEBCCC9E2C1BFECCAC7EECBCADEBAB8E0BBB9E9C5C3E6C2C0ECC6C4E7C2C1ED
+ C7C4EEC7C4E5BFBDE4BEBBE9C2C1E5C0BEDEB8B6DBB6B4E2BDBAE0B8B6DCB4B1
+ E9C0BEE7BFBEE5BBBAE4B9B7E7BEBBE0B6B4E9C2C0E9C4C2E5BBB9E4B7B4E0B1
+ AEE2B4B2E2B8B5EAC3C0F0C5C2F0C2C0F0C0BEE4B5B2DEACA9E7B4B1F4BFBBE9
+ B4B1DCA6A3DAA4A2E7B4B1F4C4C1F4C1BEECB7B4F0BEB9F5C2C0F3BEB9F6BFBA
+ F4BAB6E9AEACEAAEABECB2AEF0B5B2EBAEABF4B5B2F4B8B5F5BEBAF7BFBAF2B7
+ B4EBB0ACEEAEAAEFAEAAEFB1ACE9B0ACF5C3BFE4A7A3E2A6A2F0B6B2F4BDB9EF
+ B8B4E7ABA8E1A29DE7A9A5EEB7B3EEB6B2E7B1ACE3B6B1EDBAB6EDB4B1E3AAA6
+ E4A9A6EDB2AEEFB3AEEDB0ACE9B0ACF2BAB7F3C0BDE4B1ACE9B3B0EAB6B2EEBA
+ B7EAB3B0EBB4B1F2BBB8EEB9B6ECB7B4EEB9B6F3BEB9F4BDB9F5C3BFF4C6C2E6
+ B6B3EFBDB8F4C0BDF5C3C0F5C4C1F3C1BEF0BFBDF5C3C0F3C1BFF3C1BEE6B6B3
+ DBACA9F0C0BDFBCBC7F7CAC6EBBEBBEABEBBF2C6C4EAC1BEDEB5B3EAC1BFEAC2
+ C0E4BDBAEDC6C4EFC9C6EDC7C5E3BFBEE5C2C1E7C5C4EAC7C6E1C0BEE0BEBDE0
+ BFBDE9C5C4EAC6C6EAC7C6ECCBCAEBCCCBE9CDCBEBD0CFECD1D0E7CCCAEACDCB
+ EDCECDEFD2D0EED0CEE4C6C4E7C9C6E3C4C2DBBDBBE0C1BFEACCCAE5C6C4E6C7
+ C5E4C5C3E5C7C5E3C3C2D9BBB9E2C2C0E7C9C7433A3A000000E6CAC7E1C3C1E6
+ C9C6E7CBC9ECCECCEFD2CFE5C9C6D9BDBBE3C6C4EED2D1E9CCCBE7CBCBE3C7C5
+ E3C7C5DCC1BFEACFCEE9D0CEE1C7C7E1CBCAE6CECDE7D0D0E7D0D0DEC6C6EED7
+ D6E7D0CFDBC4C4DBC5C4DBC5C4DEC7C5EAD2D1F3DBDBE6D1CFE2CBCBEAD4D2EC
+ D6D6ECD7D6EDD6D6ECD4D2F4DCDCEAD4D2ECD5D5EDD7D5F3DBD9F3DBDAF2DBD9
+ F0D9D8E6CFCEE6D0CFE0CBCBE3CFCEEAD6D6EFDADAEDDADAECD8D8EDD9D9EBD8
+ D7F0DCDCEFDCDBE5D1D1EBD8D8E7D4D4E9D6D5EFDCDBEDD9D8DBC9C7DECCCBF2
+ DFDFF4E1E0F0DCDAECD8D7ECD8D6E5D2D0E6D2D1EFDBDAF3E0DFE6D5D2E6D2D1
+ EEDAD9EBD8D7EFDBDA0000000000000000DAC5C3E6D1D0EAD5D2E0CBCAE0CAC9
+ E5CFCDF6E0DFF5E0DFE6D4D2F3DFDEF0DEDCE3D0CFF0DEDEECD9D8E5D2D2E6D5
+ D5E7D7D7DCCCCAE5D4D4ECDADAE4D2D2ECDADAE3D1D0DAC6C6DECACAE9D6D5E6
+ D5D4E1CECEDFCBCADFCACAE3D0CFE6D2D2DEC7C6ECD5D4EED7D6E6CFCFE4CDCC
+ E3CDCCE6CFCFE5CFCEDCC9C7E2CCCCE4CFCFE6D0CFE6D1D0E4CFCEE7D2D2E6D0
+ CFD7C1C1D6C0BFE6D1D0E3CCCCE0CAC7D4BDBBDFC7C5F2D9D8F0D9D8F2D9D9EF
+ D8D7EED6D5EED5D4EED6D4EFD5D4EFD5D2E7CDCDEED4D4EFD5D4EDD2D1EDD2D1
+ EFD5D4EDD2D1EAD1D0EBD1D0EBD0D0EBD0D0EBCFCFEACECDE5C9C7E7CACAE5C9
+ C7E3C4C4EACCCBEFD0D0F0D0CFF2D4D1EBCBC9F4D5D2F5D6D5F2D1CFF3D2D0F5
+ D5D4DBBBB9F0D1CFF3D4D1EECFCEE7C9C6DBBBBAEFCFCDF5D6D4EDCCCADFBFBE
+ EBCCC9F6D5D2F7D5D1F0CECDE7C4C2EEC9C7EECBC9F0CBC9EEC9C7EFCBC9F0CA
+ C9EEC9C6ECC6C3E9C2C0E4BFBEE5C0BFE7C1BFEAC4C1EAC2C0E3BBB9EBC3C1EB
+ C3C0EBC2BFEBC1BFEBC1BFEABFBBECC3C1EDC4C2EDC7C4EDC4C1EDC0BEEFBEBB
+ E6B8B5ECC2BFEFC6C3EEC3C0EEBFBBEFBFBBEBB9B6EFBBB8F3BEBBF4BEB9E4AD
+ AAD9A29EDCA7A3E2B1ACE2B1ADDFA9A6EAB4B1EDBAB7EDB9B5F5BEB9F2B7B4F3
+ B8B4EEB3B0F3B7B4F2B5B2E5A8A4E9AAA6F2B4B1F3BBB8F5BDB8EBB0ACE9AEAA
+ E7A8A5F4B2ADF2B0ABECB0ACF6C3BFE6AAA6E7AAA6F0B5B1EFB8B4F3BAB6E7AB
+ A7E6A7A3E6A6A2F0B8B4EFB6B2E7B2ACE4B7B3F0BAB6F0B6B2EEB4B0EEB3AEED
+ AEABECADAAF2B4B0ECB3AEEFB9B6F4C1BDEDB8B4F3BEB9F4BFBAF2BAB7ECB4B1
+ E6B0ABF2BDB9F2BBB8F4BFBAECB6B2F2BAB6F0BBB8EDBEBAE3B2AEE0ABA8EDB8
+ B4EDB9B6EAB9B6EAB7B4E4B2AEE9B6B3F0BDBAF5C2BFF6C4C1EDBDB9E4B5B2F5
+ C5C1F8C7C3F6C6C4E3B5B3ECC1BFF2C9C5E7BEBBDFB5B2F3C9C6F2C9C7ECC4C2
+ EDC5C4EFCAC7EBC5C4E5C1C0E4C3C1ECCBC9ECCAC9EAC7C6E7C3C2E7C3C2EDC9
+ C6EDCBCACCB1B0968281B49D9CEBCFCEEBCFCEEBCECDE9CDCCEECFCEEBCCCAF3
+ D4D1D2B8B6947F7E998584998583CAAEACEACAC7EDCCCBE6C7C5E4C4C4EACBC9
+ E7C9C7E0C2C0D5B6B5E0C0BFE0C0BF423A39000000EDCECCE7C9C7EFD0CFEBCD
+ CCE9CBC9EED0CEF0D4D2EDD0CEEDD0CEF0D5D4EFD4D1F0D5D4EFD4D2E3C7C5ED
+ D1D0F2D8D5E6CDCCE5CDCCEAD2D1E5CECCE9D1D1EDD6D5E5CDCDEED8D7EDD6D5
+ E7D1D0EDD6D5E9D2D1E0CACAE9D1D0F3DADAE5CECDE5CECDEBD4D4EAD4D1F4DC
+ DBEED7D7ECD4D4F3DBDAEDD7D5ECD5D2ECD2D1E5CECCDFC6C5DCC5C4EDD5D4EC
+ D5D5ECD5D5E6D1D1EAD6D5F0DBDBEFDBDAE9D5D5F0DEDCF2DFDCEDDADAF2DEDE
+ EEDBDBE3D0D0EDDADAEEDCDBEEDBDBE9D6D5F0DCDBE9D7D6DAC7C7F0DEDCF4E1
+ E0F4E0DEF4DFDEF2DFDEECD8D6F2E0DEF3E0DFF3DFDEF0DFDEF0DCDBECD9D8E5
+ D4D2E4D1D00000000000000000E1CCCBE0CBC9E0CBCAD1BDBAD2BFBEE1CCCAEE
+ D9D8F2DFDCE6D2D1F0DFDEE7D6D5DCCAC9F0DEDCEFDCDCE7D6D5E6D5D5ECDADA
+ E1CFCEE9D6D6EBD9D9E9D7D8EDDCDBEAD7D7EBD8D7E9D6D6EBD8D7EBD8D8EAD7
+ D6E9D5D4E4D0CFE9D5D5E7D4D4DAC6C6EAD5D2EED7D7E9D1CFE5CFCEE5CFCFEB
+ D5D4EAD5D2E6D0CFE4CFCDE6D1D0E6D0CFE9D4D1E4CECEEBD5D5EAD2D2DCC5C5
+ D6C0BFD8C3C2DBC5C4D7C0BFD5BEBDEBD4D2F2DAD9EED7D7EED7D6EFD9D7EED5
+ D4EDD2D2EBD1CFF0D6D5EFD5D4E7CDCCEFD4D2EDD2D0DEC2C2EACFCEEDD2D0EC
+ D1D0E7CDCCEBD0CFEBD0CFEBD0CFE6CCCBE6CBCAE7CBCAE5C7C6E7CBC9E2C4C3
+ ECCDCBF0D0CFEACAC7EACAC7E6C6C4F0D0CFF3D2D0E9CAC7EFD0CFF3D2D1E0C1
+ C0F2D1D0F3D4D2EECECDEACBC9D9B9B7DEBDBAE0C0BED4B4B2D5B5B3E5C4C3F0
+ CFCDF5D5D1E9C7C5E4C1BFECC9C5F4CFCCF2CCCBEAC4C2EAC4C2EEC7C6EEC7C6
+ EAC4C1E4BFBDE2BBB9E5BEBDE2BDBAE3BDBAE9C0BFDFB8B5EAC2BFEAC1BFE7BF
+ BDEBC1BFEBC0BEE9BDBAEBBFBDEBC0BEEBC3C0EBC4C2ECC1BFEDBEBBE4B3B1ED
+ BFBBEFC4C1EEC4C2EFC2BFF0C0BDEEBDB9EAB7B3F0BBB9F4BEBAF3BDB8E3ABA8
+ E5ABA8EEB8B5EAB9B5E3B0ABEAB3AEE3ADAAF0BEB9F3BBB8E9B0ABEDB3AEF3B7
+ B3F5B8B4F3B6B2EEB0ACE9A8A5F0B1ADEFB5B2F4BAB6F3B7B3F3B7B3EDAEAAF6
+ B2ADF4B2ADEFB3AEF6C5C1F2B4B1F0B1ACF5B9B4F6BEB9F6BDB8F5B6B2F3B0AB
+ F3B2AEF7C0BBF6BBB6EEB8B4E6BAB6F3BAB6F3B7B3EEB3AEF0B2AEEEB0ABEDAD
+ A9F0B4B0E3AAA6E9B4B0F2BDB8EDB5B2F0BAB6F3BDB9F4BAB6F4B9B6F2BAB7F2
+ BBB8F2BAB8EFB8B5EEB6B2F5BEBAF0BDB9EEBDBAE7B4B1E3ADAAEBB7B3EDB9B6
+ EEBAB7EFBAB8EEBAB7EEBBB8D2A5A27E63622D2323000000130F0F7B62609A7C
+ 7AECBDBAD8AAA6DBB1ACEBC0BEE3B8B5DFB4B2EDC2C0987F7D14101000000000
+ 0000605251B09593E6C4C3EDCAC9EECAC7EBC6C5EDC9C6EAC6C5D0B2B02C2525
+ 2B2525AD9997E9CDCCEBCECDECCFCEE9CCCAE9CCCBEBCCCB7867661412120000
+ 00423938988483988382947F7E6053527C6B6AF0D1CFEED0CEE9CBC9F2D2D0ED
+ CDCCDBBEBBD8B9B7E0C0BE3D3534000000E7C9C6EBCBCAEFD1CFE9CCCA7A6B69
+ 2C2625000000000000141212423A3A423A3A443D3C423B3B1311100000000000
+ 00B09D9CE7CFCEEED6D5EDD6D5EED6D5EED7D7E7D0CFEED8D7786C6C433C3C14
+ 1313453F3E433D3D2B2626443D3D8D7F7ECFB9B9EDD6D4E1CAC9ECD4D2E6CECE
+ E3CBCAEDD7D6AB9998423B3B1413120000000000005E54549A8C8BD5C1C1F6DF
+ DEF0DBDAEBD6D7F0DBDBE9D5D4DAC6C6EDDAD9F0DCDCECD8D7F2E0DFF0DCDCE4
+ D0D0DCCBCAE0CDCCDCCAC9D9C5C5E5D1D1E7D4D4D4C0BFD9C6C5F0DCDBEDD8D7
+ F3DFDEF0DCDBECD8D7EFDBD9EEDAD9EBD6D5ECD7D6EFDBDAE1CECDE0CECDEFDC
+ DA0000000000000000F3DFDCF7E1E0F9E4E2F2DCDBF0DCDAEED9D8F2DEDCF4DF
+ DEECDAD9F2DFDFECD8D8E4D1D0EDD9D9EDDBDAEBD9D9E7D8D7ECDADAE5D4D2E5
+ D4D2E1D0CFE6D5D4E6D5D4E4D1D1ECD9D9ECD9D8E2D0CFE6D5D4E7D5D5E7D5D4
+ E3D0D0E9D5D4E7D4D2DAC7C6DAC6C4E0CAC9DBC6C4DAC5C4E6D1D1ECD7D5ECD6
+ D5E6D1D1E5CFCFE6D0CFE7D2D0EBD4D5E7D1D0EBD5D5E9D2D1E6D0CFDFC9C7D7
+ C0C0D7C0BED7C0BFD9C2C1E6CECDEED7D7E5CECDEED7D7EFD8D8EED6D4EDD4D2
+ E4CBCAEED4D2ECD1D0E3C9C7EDD0D0E3C7C6DAC0BED9BEBDDFC4C4E6CCCBE1C5
+ C4E2C6C6E5CBCAE6CBCAE1C5C4E5CAC9E7CBC9E1C4C3E6C9C7E4C5C3EACCCAEB
+ CCCAE2C3C1DFBFBEE7C5C4F0CFCEEFCFCDE4C3C2EECDCCEFD0CFDABBB9E9CAC7
+ EECECDE9CAC7E4C3C2DBBBB9D7B7B5D5B5B3D4B4B2DFBFBDECCBC9F5D4D1F5D5
+ D2F4D2D0EDCBC9F2CECBEECAC9EDC7C6F2CCCAEFCAC7F0CBC7EEC7C6E9C3C1E9
+ C3C1E5BFBDE2BBBAE2BAB9E6BFBDE9C1BFDCB4B2E7BFBEE6BEBBE3BBB8E5BBBA
+ E4B9B7E1B4B2EABDB9E6BAB8EABEBBE9BFBBEBC4C1E9BDB9E1B1ADECB9B6EDBE
+ BAE7BDB9ECC1BEECBEB9F0BEBBF2BFBAEFBAB7F3BEBAF3BDB8EFB6B3F2B7B4F4
+ BAB7F4BFBBF4C2BEF6C0BBF5BEB9F6C0BBF6C0BBF0B7B3EFB5B1F3B6B2F4B7B3
+ F2B4B0ECADAAECACA8EBA9A5EFB3AEF3B9B5F3B6B3F2B5B2E9AAA6EEAAA6EDA9
+ A5E7A8A4F0BEB9E3A7A3EAA9A5F2B5B1F3BBB6EEB6B2EFB1ACEFACA8EBAAA6F4
+ BAB6F3B7B4EBB6B2E4B6B2EEB5B2ECB1ACE5A9A5EFB0ACEEADAAEDABA8EFB3AE
+ E6ADA9E7B4B0F2BAB7EBB2ADF2BAB6F5BDB8F5BAB6F5BBB8EDB6B3EBB5B1F0B8
+ B5EFB6B2F2B7B5F6C1BDF5C4C1F5C1BEEEB7B4EDB8B4F4C0BDF2BEBAF3BFBBF3
+ BFBAF4C0BBF4C0BDF2BDBAF4C2BE9C7D7B000000957674F5C4C2F8CAC6F3C6C3
+ E3B5B2E6B9B6F5C7C4F2C4C2E1B5B3EEC2BFF2C7C58D7372000000141111ECC7
+ C6E6C3C1E2BEBBE7C2C0E6C1BFDEB9B7E3BFBE907B7A000000433B3BE7CBC9EC
+ CECCECCDCCE9CBC9EACCCBE7C9C7CFB3B2443B3B000000463D3CD2B5B3E6C5C3
+ F3D1CFEFCECDEFCECCEECFCDD1B5B3443B3BCAAEADE1C2C1EACBC9EDCDCCE9CA
+ C7D7B7B5D2B2B13D3333000000EACAC7ECCDCBF2D2D1ECCECDEDD0CECFB6B400
+ 0000433C3BECD0CEECD0CEE4C9C7EFD4D2EDD1CEE4C9C7D1B9B8453D3D2B2625
+ E6CDCDEDD5D4ECD5D2EED6D6EBD2D2766A691413135E5554C7B2B2E3CCCBE9D2
+ D1E7D1D0EAD4D2B4A2A11412122C2828F0D9D9EDD7D6F3DBD9EBD2D1ECD4D4F3
+ DAD9EDD5D4F0D7D5DAC3C10000002C2727DEC6C5EDD7D6F0D9D9F2DAD9E5D0CF
+ E6D2D0F0DBDAE7D4D2DBC7C7EAD7D6EAD6D6ECD8D7F2DEDEF2DEDCEDDAD9ECD9
+ D9F2DFDEEFDCDCEDDAD9ECD7D7EBD7D6E6D1D1F0DCDBF3DFDEE3CECCEFD9D8EC
+ D8D7DCC9C6EDD9D9EEDAD9EDD8D8EFDBDAF2DEDCEDD9D8EFDEDCF4E1E0000000
+ 0000000000EFDAD9F5E0DFFBE5E4F6DFDEF5DFDEF0DBD9E9D4D2E4D1D0E5D4D2
+ EFDEDCEFDCDBEBD8D7E7D6D5E6D5D5E9D8D7E6D5D5EBD9D9EBD9D9E9D7D8E7D5
+ D5EBD9D8E2D0D0DBC9C9E7D5D4EAD7D7E5D2D2E2D0CFEAD6D7EBD8D7E9D6D5E9
+ D5D5EAD6D7E7D5D4EBD6D6ECD7D7E1CCCCE0CBCBE6D1CFEAD4D2EAD5D4E9D2D2
+ E7D1D1EAD4D4ECD4D5ECD5D5ECD6D6EDD6D5ECD5D4EDD6D4EED8D7EBD4D1EDD5
+ D4EAD4D1DFC7C6EED7D7F2DAD9EBD4D4F2DADAF2DAD8F2D9D8F2D9D8ECD2D0EF
+ D6D5EBD1CFE9CFCDF2D7D5EDD0D1EACFCEDEC3C2E5CACAEED2D1EBCECDE5CAC9
+ E7CCCBEED1D1E9CCCBEDCFCEEFD1D1EDCFCEEDCFCFEDCFCDF3D5D4F3D5D2EDCE
+ CCDEBDBBD7B7B6E9C7C6F0CFCEE9CAC9E9C7C6E5C5C4D9B9B8E6C7C6EFCFCEEF
+ D0CFEFCECDEBCCCAEBCBC9EDCBCAEECDCBF3D0CFEFCECCF2D0CEF4D1CFF2D1CE
+ EECECBEECCCBEECBC9ECC9C6EDC7C6EEC7C6F0CAC7EDC6C5EAC4C2ECC5C3E9C1
+ BFEAC2C0E7C0BFE7C0BEE7BFBBE2B9B7EAC1BEE7BFBDE2B9B8E6BEBBE4B9B7E3
+ B7B5EBBFBDEBBEBBECBDBAEBBEBBEDC1BFE9C1BEE4B7B4EAB8B5ECB8B6ECBAB8
+ F2C6C3EFC3C0EEBFBAEEBBB8ECB8B5EDB8B4EFB8B5E6AEACE2A8A5EDB2AEE5AC
+ A9E4B1ACEFBAB7EDB5B2EBB3B0F2BDB9ECB4B0EBAEAAF0B3AEF4B5B1F3B4B0F0
+ B1ADF3B2ADEEACA8F0B1ACF2B7B3F3B6B3F3B6B2EEB0ABF5B0ABF4ADA9EDABA7
+ F3BDB9EEB2ADEFACA8F0B2ADF0B7B3ECB2ACEFAEABF4AEA9E6A6A2F2B7B3F4B7
+ B3EFBBB7E7B7B2F0B4B0F0B4B0ECADA9ECABA7EEABA7EFADAAF3B5B1E7B0ABEA
+ B4B0F4BBB7EBB1ADF0B7B5F6BBB7F7BAB7F7BEB9F3BBB7F5BDB9F5BDB8E4AAA7
+ EEB7B3F5C3BFF4C0BBF5BFBAF4BEB9EEBAB6F4C0BBF5BFBBF3BEB9F4BFBBF4BF
+ BBF0BBB9EFBBB8F3C0BD9C7D7A000000927371F0C1BEF3C5C3EABDB9E0B3B0EA
+ BDB9F6C6C4F6C9C5E1B4B2F3C6C3F8CDCAF0C5C3000000453B3AEDC7C6E6C0BE
+ E0B9B7E9C2C0E6C1BFE0BBBA937E7D000000433B3AE6C9C7E3C4C2E7C9C6E4C4
+ C3E5C5C3E6C6C5E2C1C12C25250000007B6868EFCFCDEFCECDEAC7C6EFCECCEC
+ CCCAEBCBCAEECECCEDCCCBF2D1CF463D3CCCB0AEE9C9C7EBCCCAEECFCDDBBAB8
+ D6B6B4403737000000F2D1CFEDCECCF0D2CFE6C9C6E9CBCAE7CBC9000000443C
+ 3BF0D5D2EFD2D0EACECDF0D4D2E9CCCBDEC3C1E6CDCBE9CFCD131111DCC2C1E9
+ D0CFE7CECDEDD5D5443D3D000000988989EED7D7EAD2D2E6CECDEAD2D4EBD4D4
+ EED8D6EDD7D6CAB6B6000000F4DCDBF3DAD9F4DBDAECD5D5EFD8D6F0D8D6E9CF
+ CEE4CCCAF4DBDA0000003F3939D5BFBEDEC6C6E7D0CFF0DAD9E7D2D1E5D0D0EC
+ D8D8E6D2D1E5D1D0E7D5D2E2CFCEEAD7D7EAD7D7E6D2D1ECD8D8EFDCDCF2DFDE
+ F2DFDEF0DEDCF2DEDCEAD6D5DFCCCBEFDBDAF7E2E1F2DCDBF0DBDAEFDAD9F2DE
+ DCF4E0DFF4E0DFF2DFDEF3DFDEF4E0DFF2DEDBEDDAD9F3E0DF00000000000000
+ 00E5CFCDF0DBD9F9E2E1E6D1CFE6D2D0ECD8D7EDD9D9ECD8D9E1CECDECDAD9EC
+ D8D8ECD8D8EDDBDAE5D4D4EBD9D9EAD9D8ECDBDAECDADAE6D5D4ECD9D9EEDCDB
+ EAD7D8DFCBCBE3D0D0EAD7D7E5D2D2EAD7D7E9D5D5E2CFCFE2D0CFE2CECEE9D6
+ D5E5D1D1EAD6D6EBD7D6DFCACADFCACAE9D2D2EAD5D4EBD5D5EBD5D5E6D1D0EA
+ D5D2EAD4D2ECD5D5ECD7D6EDD6D6E7D1D0ECD5D4EED7D7F0D9D7F0D9D7EDD5D5
+ DEC6C5EED7D6ECD4D4DBC5C4EFD8D8F0D8D7EED5D5EFD7D6EDD5D2F4DAD9EFD6
+ D5EFD6D4F0D7D6EDD1D1EFD5D4E9CDCDEFD4D4F3D6D5EED1D0E5C9C7E2C5C4EC
+ CFCEE6CAC9E9CBC9E7CAC9DCBFBEDFC1C0E5C6C5EECFCEEDCECCEDCDCCE7C7C5
+ DFBFBEEDCDCBF0D0CFF2D1D0F2D1CFF0CFCEE1C1C0EBCBCAEFCECDEBCBC9E9C7
+ C5E0C0BEEECCCCEECDCBEECDCBEFCECCDBBAB8DFBEBAEBCAC7EBCAC7ECCAC7F2
+ D0CDECCBC9EDCAC7E5C1C0EAC5C3F0CBC9ECC5C3E5C0BEECC5C2E9C2BFE5BDBB
+ E3BAB9E0B7B5E3BAB8E4BAB8EBC1BEEBC1BEE9BFBBEBC2C0EAC0BEE7BDBAEBBE
+ BBE7BBB8EBBDB9EBBDBAECBEBBEBBFBBEAC1BEE7BAB6E9B5B3EBB7B3F0C0BDEE
+ C3C0E3B5B3E7B5B3E9B4B0F2BAB8F3BBB7F0B7B4E7AEAAEEB2AEEBAEAAE5ADAA
+ EFBDB8ECB4B1EDB4B0F2BAB7F2BAB6EFB4B1EDB0ACF4B5B1F3B3AEEFAEAAF2B1
+ ABF2AEAAF2ADAAEFB3AEEDB1ACEEB1ACECADA9F3AEA9F3AAA6F3ADA9F5BDB7F0
+ B4B0F0ACA8F4B4AEF5BAB6EBB0ABF2B0ABF0A9A5EDABA7F4B8B4F5B6B2F4C1BD
+ EEBAB5F3B5B0F2B3AEEDACA8EEABA6EFABA7EDACA8EFB3B0E4ADAAE9B2ADEFB5
+ B1E4ABA7EDB3B0F5B7B3F6BAB7F7BFBAF5BDB8F6BDB8F6BAB6ECB1ADF2BBB8F4
+ C0BDF4BBB8F4BAB7E9B3AEEDB8B5F0B9B6ECB6B3E9B2AEEEB8B5F3BDBAEFBAB8
+ E9B6B3EBB8B5977674000000907270F0C3C0F4C6C3EFC1BEE4B6B3E4B7B4EFC2
+ BFEEC1BEDAACAAE4B7B4F4C7C5ECC2BF000000453A39F0C7C5EAC0BEE5BEBBED
+ C7C5EECBC9B19896000000141212CCB1B0E6C9C5E5C5C3EDCCCBEDCBCAECCBCA
+ EBCBCA5D4F4F000000443B3BE9C7C5EECDCBEECCCBE7C5C3E9C7C5EBCAC7F3D1
+ CFF2D0CEF2D1D0EECECCD1B5B3141110DFBFBEEECDCCEECFCDE6C5C3E4C3C245
+ 3C3B000000EBCCCAE6C6C4EDCFCDE6C9C5E7CBC9EACDCB000000433B3BECD0CE
+ EFD2D0EBCFCDEDD1CFEED2D1EACFCDEED5D2ECD1D08C7D7CAB9998E7CECCE6CD
+ CC796C6C000000908181EDD5D4EDD6D5EED6D5EED7D6EED8D6E7D1D0EFD8D7EF
+ D8D7E3CCCB7B6D6D9A8A89F2D9D8F0D9D7EFD8D6EDD6D5EED6D5EDD5D2DBC3C1
+ EED8D6000000443D3DE0C9C7EFD9D8F4DEDCF5DFDCF2DBDBF0DCDBF3DFDEF2DE
+ DCF2DEDCF0DCDCE3D0D0ECD9D9F2DEDCF0DCDBEFDBDBE9D6D6EBD7D8EEDBDBF2
+ DEDCF4E0DFEFDBDAE5D1D1F0DEDCF6E1DFF5E0DFEFDAD9ECD7D6EBD7D5EBD7D6
+ F0DCDBF0DCDBF2DFDEF5E1DFF2DEDBEBD7D6F0DEDC0000000000000000F2DCDB
+ F3DEDCF8E2E1DEC9C6E0CAC9DFCBCAE6D2D2ECDAD9E4D2D1E6D4D2E3D0CFEBD8
+ D7EEDCDBE6D5D5E1CFCFE2D0D0EBD9D9EBD9D9EBD8D8ECDAD9EEDEDBEAD7D6E7
+ D5D5EBD8D7EAD7D7E6D4D4EBD9D8E0CCCBD4C0C0D1BEBED8C4C4E1CECEDCCACA
+ E7D4D4EBD7D6E4D0CFDECAC9E7D4D2E7D2D1E6D2D0E9D4D2E4CECEE9D4D2E6D0
+ CFE4CDCDE4CECEE7D1D0E2CCCBE3CDCCEBD4D2EBD2D2EDD6D5E6CDCDDBC2C2E7
+ CFCEE6CECDE0C7C6EDD5D2E9CFCFE4CBCAE9D0CFE7CDCCF2D9D8EFD6D4F0D8D7
+ F3DAD8EFD7D5F2D8D6EDD2D1F0D6D6F4D8D8F4D8D7F0D5D5EED1D0F0D5D2ECCD
+ CDEBCCCBD6B8B7D4B6B4D5B6B4D5B6B4E2C3C1F0D1D0F4D5D2EDCCCBE7C7C6EE
+ D0CFF2D1D0F2D1D0F0D0CFEFCFCEE6C5C4EFCDCBEFCECCEBC9C6E4C2C0DAB8B7
+ E9C7C5E5C4C2EDCBCAEFCECCECC9C7E6C4C3EDCAC9E9C6C5E7C4C3EFCCCBF2CE
+ CCF2CECDECCAC7F3CECCF2CDCBEFC9C7EDC6C5ECC5C3E9C1BFE9C0BEEDC4C2E5
+ BDBAE6BEBAEAC0BEECC1BFECC2BFEABFBDEBC0BDEAC0BEE9BEBBEBBFBDE7BAB8
+ E9BAB7E7B8B6EAB9B6EBBBB9EBBFBAECC2C0EBBDB9E6B3AEEAB3B1E1B0ACDBB0
+ ACDBACA9DCA9A6E3ACAAF2BAB7F2B9B6EFB6B2EEB3B0E7AAA7EAADA9F2BBB7F0
+ BBB7EFB5B1F2B7B4F0BAB6EFB6B2E5A8A4EBABA7EDABA8E9A7A3EAA7A3EEA9A5
+ EFA8A4E7A8A3E2A5A1E3A59FE3A49FEDA7A3E9A29CEFA8A4F0B6B1EBAEAAEEA8
+ A4F3B1ADF3B7B3E9ACA8E4A19DE09893E4A29DF0B4B0F5B6B2F5C3BFF0BAB5ED
+ AEA9EEAEAAE7A4A1EAA6A2F0AAA6F0B0AAF3B6B3E7B1ABE9AEAAF2B7B3EBB2AD
+ E9ADA9EDAEAAF0B6B2EEB5B1EEB4B0EFB4B0EFB1ADEAB2ADEEBBB8F0BAB7EFB5
+ B2E2ABA7DCA7A3E2ABA7EDB5B2E1AAA6DBA5A1E0AAA6F0BBB8F0BBB8EDB9B6ED
+ BAB7977675000000967976F5C6C3F6C7C4F4C5C2E4B7B4EBBEBBEFC3C0EFC3C1
+ DEB1ADDFB4B1EEC3C1EABEBB000000433736EFC4C3E4BBB9E9C2C0EFCCCAD2B6
+ B4141212141111BFA4A2D9B9B6DBBAB9DBB9B8E9C6C4EDCBC9EDCBCACFB2B000
+ 0000141111E9C7C5E9C9C7E9C9C6EECDCBEBCAC7EDCBCAE9C7C6EFCFCDE4C3C1
+ EBCBC9EDCCCAEBCBC92A2323796968EFD0CFF3D1CFEFCFCEEBCBC9453C3C0000
+ 00E7C9C7ECCDCCF2D2D1EED0CEEDCFCDF3D5D2000000443D3CEDD0CFF0D5D2ED
+ D0CFF0D4D2EDD1D1EAD0CEEFD5D4EED5D4EAD0CFE2C9C6E5CCCBC9B1B1000000
+ 594F4EDFC6C6E6CDCDE9D1D1E7CFCFEED6D5EED7D7E7D1CFEFD8D7F2D9D8E9D1
+ D0EBD4D1F0D9D8F4DBD9F4DBDAF3DBD9F2DAD8F9DFDEF4DBD9EAD2D1F6DFDE00
+ 0000453E3EDAC4C4E7D1D0ECD6D5F0DAD9EBD5D4E5D0D0F0DCDCEAD6D5DCCAC9
+ D9C5C4D1BFBEDCC9C9ECD9D9EFDBDBECD9D8E1CECDECDAD9EBD7D8E9D5D5F3DF
+ DFF3DFDEE7D4D2ECD7D6EFD9D8F3DEDCF0DBD9EED9D8ECD7D6F0DCDBEDD8D8DC
+ C9C7D9C5C4E9D5D4E6D1CFEAD6D5EDD8D80000000000000000F7E1E0F8E2E0FC
+ E5E4F7E0DFF9E4E2EDDAD9EBD7D6EFDCDBEFDCDBF2E0DFEEDBDAEFDEDCEFDEDC
+ ECDAD9EDDBDBE9D7D8ECDADAECDADAEDDBDAE9D7D8EEDCDBEEDBDBEAD7D6ECD9
+ D8EAD7D6EAD7D7EDDAD9E2CDCDD1BEBED1BFBEDAC7C7E7D5D5E7D5D5EAD6D5EC
+ D8D7E1CECDDECACAE9D5D2E6D2D1E7D2D1EAD5D4E9D2D2EAD4D4E6D1D0E5CFCF
+ E7D1D0EBD4D5E6D0CEDCC6C5E1CBCAE9D1CFEDD6D6EAD2D1E6CECCECD5D2EBD2
+ D2E1C7C6EFD7D6F0D7D6E9CFCFE2C9C6E6CCCBF3D9D7F3D8D7F2D8D6F4D9D9EF
+ D7D6F3D8D8E4CBCAE7CDCCF3D8D6F3D8D7F0D5D5F3D7D5F3D6D4E7C9C7EDCECC
+ D7B8B7D9B9B8EACAC9D8B9B8D2B2B1DEBFBDEDCDCCE0C1BFE2C3C1EECFCEF2D2
+ D1EFD1D0EFD0CFF0D0CFEDCBCAF2CFCEF3CFCEF2CECCEDCAC9E9C6C3F0CECCEF
+ CCCAF0CFCDF2D0CEF2CFCEF0CECBF2CECCECCAC6E9C5C3EAC5C3E4C1BEEBC7C6
+ E7C5C3F0CECBF0CDCBEFCCCAEEC9C6EDC6C5EBC4C2EDC5C2EDC4C2E1B7B5E1B7
+ B5E7BEBBEDC1BFECC0BEE4B8B5EBBFBBE7BAB8EBBFBDEDC1BEEBBFBDECBDBAE6
+ B7B5EBBAB8ECBAB8EBBAB8EDBFBDEEC5C1EABAB7ECB8B4E0AAA7DFAEABE1B6B3
+ DCADA9DCA8A4E1A9A6EBB3B0ECB3AEECB2ADE3A7A4E6A7A4F0B3B0EDB8B4EAB1
+ ACEBAEAAF2B8B4F4BAB6F0B3AEF2B2ADF5B3AEF3B0ACF3AEAAF3ADA9F3AAA6E7
+ A49FE2A5A1E3A49FEEADA8F5AEAAEFA49FF2A8A4F4B5B1F3B7B2F2AAA5F5B2AD
+ F4B6B2EEB1ACE19C98E09591E3A29CECAEA9F0B3AEF4C4C0F4B9B5F3B3ADEFAD
+ A9E7A39EEDA5A1F5B0AAF3B3AEF5BAB6EFB7B2F2B5B1F5B9B5ECB1ACE9A9A5F0
+ B3B0EFB5B2EAB0ABEDB2ADEFB2ADEDB2AEEEB9B5ECB6B2E9AEAAECB2ADDFA8A5
+ DCA5A1E2A9A6ECB4B0E1A9A6DCA6A3E0A9A6F2BDB9F0BDB9F2BEBAF4C1BF987A
+ 78000000997B79F4C4C1F5C5C2F3C3C0EDC0BDF3C5C3F4C6C4F5C9C6EBC0BEE2
+ B9B6F0C5C3EEC3C0000000443837EFC5C3E6C1BFE6C4C2EDCDCC2C2626000000
+ 8E7B79DAB9B7E7C5C2EBC9C5D9B6B4D7B5B3E0BDBBEAC6C45F51510000007362
+ 62E4C3C1EAC7C6EAC9C7EDCBCAE9C7C4EDCBC9E5C4C2EECCCAEAC7C6EECBCAEA
+ C9C6EACAC7736362141111E9C9C7EFCFCDF0D0CEEBCBC9453D3D000000ECCCCA
+ F0D1CFF4D6D4F0D1D0EFD1CFEECFCE000000443C3BEDCFCDF0D4D1EACDCBEED2
+ D1E9CECCEAD0CEEFD5D4EFD5D4EDD2D2E9CECDEDD4D1605555000000CAB3B3EA
+ D1D0E9D1CFE7CFCFE4CCCBE9D0D0EAD0D0E9D1D0EDD6D5EED7D5E5CCCCF2DAD9
+ F3DAD9EFD8D7EAD2D1F0D8D8EDD6D4F4DCDAEDD6D5E7D0CFF4DCDC0000004740
+ 40E5CFCDEED9D8F4DFDEF6E1E0EFDAD8E0CBCBEFDBDAE2CDCDDAC6C6D4C0BFD1
+ BFBED6C2C2DAC7C6EAD6D6E6D2D2DAC6C6EEDBDAEDDADAE3D0D0EFDADAE9D2D2
+ DFCAC9E5CFCEDFCAC9E3CDCBEFD9D8F0DCDAEDD7D7F3DFDEF0DCDBE6D2D1D7C3
+ C2E9D5D4EEDAD9E9D5D4EEDAD90000000000000000F9E4E2FCE6E5F9E3E2E0CA
+ C9F2DEDCEBD7D6E5D1D0F2DEDEF2DFDEE7D6D5D9C6C5E2D0CFECDBDAEDDCDBEC
+ DADAE6D5D5E9D7D7EDDCDAEDDCDADBCAC9E9D6D6EAD7D7E4D1D1E6D4D4E7D6D5
+ ECD9D9EDDAD9EDDAD9D2BFBFD2C0C0E2D0D0E7D5D5E3D0D0E3CFCEE6D2D2DFCB
+ CADFCBCAEAD5D4E4CFCEE3CECEDBC5C5DBC5C5E3CECDE5D0CFE5D0CEE9D2D1EC
+ D5D5E6D0CFDEC6C6D9C2C2E0C9C9E6CECDEDD4D4E3CCCBE6CECEE7CECEDBC4C3
+ EBD1D0E7CFCEDFC4C4E2C7C6E6CCCBEBD1CFE2C7C5E4CAC9E3C9C9E0C6C5E9CF
+ CDDEC4C2DAC1BFE9CFCEEBD0CEDCC1C0EBCFCEF2D5D4EDCFCDF6D7D5F3D5D2E9
+ CAC7F0D0CFDEBEBBD2B2B1D6B6B4EDCDCBE9C9C7E5C5C4E7C7C6EBCDCBEACCCA
+ EACAC9E2C1C1DBBAB8EBCBC9EDCAC9E9C6C4DBB8B7E3C0BEDFBBB9DFBAB8ECC9
+ C6EECAC9ECCAC7E9C6C3DFBAB9DCB9B7DBB8B6E3C0BED8B4B3D9B6B4D9B6B4EB
+ C7C4EBC7C4E9C5C3E0BDBAE6C1BFE3BDBAE7C0BEEAC2C0E4BAB8E3B9B7E6BBB9
+ EABEBAE1B5B3DBAEACE9BBB8E7BBB9EBBEBBE9BEBAEBBFBBEFC1BFEDBFBBEBBB
+ B8E7B6B4EBB7B5EBBAB7EABBB8EAC0BDEEBFBAEDB7B4ECB5B2EBB9B7E2B5B2DC
+ ABA8DEA8A4EDB5B2F0B7B3F2B5B2EEB2ADE7A8A4EDACA8EBB0ABE7B2ADE9ADA9
+ EBAEAAF3BBB7F4B7B3F0B0ABF3AEABF3AEAAF4ADA9EDA7A3F2A9A4ECA49FE2A4
+ 9FE5A4A1F4B0ABF4ADA9E99D98EBA19BEFADA9E9AEA9E79E9AEFABA6F2B4AEF2
+ B3AEE59E99E1948EE9A6A1F2B2ADEDB1ABECBFB9EAACA8EDACA7EEAAA5ECA59F
+ F6ACA8F7B1ABF3B4B0F0B7B3E7ABA8E9ABA7F4B8B4EFB1ACF0B0ABEFB3AEE9AD
+ A9EBAEAAF5B6B2F5B6B2EDB6B2E3AEAAE5AAA7EAAEAAEFB6B3E3ABA8DEA6A2E5
+ ABA8EDB4B0E5ACA9DEA7A4E0A9A6F2BDB8EFBAB7F0BEBAF3C1BE967875000000
+ 2C24234538374638382C23234437367E6664F3C7C5F5CAC6ECC2BFDEB2B0E7BA
+ B7F0C2C1000000453A39EDC9C6E4C2C0EACAC77968670000005F5150EECAC9EE
+ CBC9E6C3C0EECBC7D9B5B4D7B3B1DBB7B4EECBC92C2525000000E9C7C5EBC9C6
+ E7C5C3E9C6C5EAC7C5E0BEBDEDCAC7E2C0BFE2C0BFE6C5C4E9C7C6EECFCDEDCC
+ CA897574000000C9ACABEECDCBEECECDEBCCCA463D3C000000DEBFBBDABBB8E7
+ CAC7EACBC9ECCECCECCECB0000003E3736DEC0BFE4C6C4DFC1C1E2C6C5DAC0BF
+ D7BDBA726565E3C7C7E5CBCBE7CDCDECD1D02C2727141212ECD1D1EED5D4EAD1
+ CFE1C7C5D9C0C0E0C6C6E1C7C6E3CCCAE9D1CFDBC4C2DCC5C3EFD9D7F2DAD9E9
+ D1D0DFC6C5EAD1D0F7DFDBF4DCDBEAD1D0D9C2C1E4CDCC000000453E3EE3CCCB
+ F0DAD9F3DCDBEDD8D6E4CFCEE7D1CFF2DCDBF0DCDAEEDAD9DAC6C5D1BEBED8C4
+ C4E9D5D5F2DEDEECD8D8DECBCAE9D6D5EEDBDAEDDBD9EFDBDAE1CCCBE4CFCEE5
+ CFCEE3CDCBDEC7C6E4CFCDEBD5D4E6D1D0DCC9C7E5D0CFEEDAD9EEDAD9EBD7D5
+ DAC6C5D2BFBED2C0BF0000000000000000FBE5E4FCE6E5D4BFBDC9B4B3D0BBBA
+ CFBDBBD0BEBDE5D1D0E4D1D0D1BFBED1C0BFD4C2C1E4D2D2E9D8D8DBCBCBD4C2
+ C2D9C7C6EBD9D9DECBCBD4C1C0D5C2C2D7C5C4D2C0BFD1BFBFD4C0C0EBD7D7EC
+ D9D9ECD9D9D4C2C0D4C2C1E5D4D2E7D5D5DAC7C6D4C0BFD5C1C1D6C3C3D8C4C3
+ E2CDCDE4CECED9C5C4D6C1C0D6C1C0E0CACAE1CBCAE4CFCEEAD5D4E7D2D1DAC4
+ C3D6C0C0D8C1C1D7C0BFD7C0BEE5CECDEBD2D4EED7D6DCC5C5D6BEBDD7BFBDD6
+ BDBBD5BAB9DAC0BFECD1D0F2D8D6DCC1C0D6BBBAD7BFBEE2C7C7EAD0CFDCC2C2
+ D6BBBADCC1C1DAC1BFD7BDBDD5B9B7D7BAB8E6C9C6F8D9D8F3D5D2DCBEBDD8B9
+ B8D1B2B0D1B2B0DFBEBBF3D1D0EFCFCEE9CAC9E9C9C9E0C2C1D7B7B6D6B6B4D7
+ B8B6D8B7B6E9C7C5F0CECDDBB9B7D5B2B1D7B3B2D6B2B1D5B1B0DFB9B8EAC5C3
+ E5C0BFDAB6B5D6B2B0D6B3B1DBB7B5E9C4C2D8B4B2D6B2AED6B2B0ECC7C4EFCB
+ C9DAB6B4D9B5B3D9B5B4E7C2C0ECC5C3EEC5C4EBC2BFE7BEBADFB3B0D7ABA9D7
+ AAA7D7A9A7E2B4B2EBBDB9E2B4B2D9ACA9DCB0ACECBFBBE6B7B5DBABA9DCABA8
+ DFACA9DEAAA7DCABA7DFAEACEDC3C0EFBDB9EAB2ADE4ACA9DEACA9DEB0ACE1AD
+ A9F0B7B4F2B7B3F2B6B3F0B3AEE9A9A6E2A29DE09F9CE1A9A5E2A8A4E0A29DE6
+ ABA7F3B7B3F4B3AEEFACA8F0ABA7F0ABA6EDA5A1F3A8A4E79C97E3A19BE5A49F
+ F2AEA9F3ADA9E39893E29691E5A19BE5ACA7E69C98EEA8A3F2B3ADF3B3ADE79F
+ 9AE3948EEDABA6F4B3AEF3B7B2E3B3ADE2A39EE4A19CE39D99E49B96F5AAA5F7
+ B2ACECADA8E1A7A3E1A49EE5A9A4F4B6B3F3B1ACEEAEA9E3A6A3E0A49FE1A29E
+ F4B2AEF5B9B4E1ADA9DFA5A1DFA39EE3A9A6F2B7B4E9ADAADFA4A1E9ADAAF2B8
+ B4ECB3B0DEA6A3DEA7A4E4B0ABE1ADAAE1B0ABDBABA88B6C6A000000907170DB
+ ACA9DCADABDFB0ACC29A98403433141111D4AEACDBAEACD9ACA9D8AAA8F3C6C4
+ 0000004339388A75748A767471605F000000292222ECC7C5ECC7C5EBC5C4DEB8
+ B6DAB5B4D8B2B1D8B3B1E1BDBBEFCCCA0000002C2524EBC7C5DCB9B8D7B4B3D8
+ B5B3DBB9B7D8B5B4E3C0BED5B2B0D1B0ADD2B1AEDEBDBBEBCCCAD8B9B7867271
+ 000000917C7BEBCCCAEECECCEDCDCC443C3B000000D0B2B0D0B1B0D8BAB8E2C2
+ C1D6B8B7D0B2B10000003D3434CFB2B0D5B7B6E0C4C2DEC2C1D6BBBAA18C8B13
+ 1010D6BABAD4B9B8D9BFBFEAD0CF000000443D3DE7CECDE4CBCAD5BBB9D4BAB9
+ D2BAB9D6BFBEDBC3C2DAC2C2D2BBBAD1BBBAD9C2C1EDD5D5EDD7D6D1BAB9D0B8
+ B7D8C0BFF6DFDEF4DCDBD0BAB9CFB9B8D4BDBD0000003E3838DBC4C3E9D2D1D8
+ C1C0CFB9B8D2BBBAD1BBBAD1BDBBE0CBC9E7D2D1E3CFCFD1BEBED1BEBED6C3C2
+ DBC9C7D5C2C2D1BFBED1BFBFDBC7C7E6D1D1D6C1C0CDB8B7D1BBBACFBAB9CBB6
+ B4CBB6B4D2BDBAF3DEDCF0DBDACEBAB9CEBAB9D8C4C3EFDAD9DBC6C5CFBBBACF
+ BBBAD0BDBB0000000000000000D5C0BFD2BFBDC7B3B1D1BDBBF4E0DFE4D1D0CE
+ BBBBD2BFBFDBC9C7DAC6C6D1BFBED9C6C6E6D6D5E0CFCED5C4C4D5C3C2E0CECE
+ E9D8D8D5C2C2D5C2C2E2CFCFD8C5C4D1BFBECFBDBBD9C5C5DECBCBE7D4D4DAC7
+ C7D4C2C1D6C3C3DBCBC9E6D4D4DAC6C6D4C1C1E0CCCBE3D0CFE5D0D0E3CECEE6
+ D2D1D6C1C1D6C1C0DCC7C6E7D2D2E5D0CFE9D2D1EDD6D5DCC6C5D6C0BFD9C3C2
+ EAD4D4E0C9C7D6BFBFD9C1C0EAD2D2E9D1D1D6BEBED7BFBEEDD4D2EDD2D1D4BA
+ B8D5BAB9EFD4D4EFD6D4D7BDBBD6BDBAE9CECDE9CECDE4CACAD6BDBBDAC0BFE9
+ CECCD2B7B6D8BDBAEBCECCD1B4B3D2B6B5E5C9C7D1B4B4D1B3B1D1B2B1D2B3B2
+ D5B5B3E5C6C4E9C9C7E7C6C5DFC0BFDEBFBDD9BAB8D6B5B4E0BFBEEBCAC7E5C5
+ C3EAC9C6E9C7C5D5B3B1D6B4B2EECAC9E9C5C4D5B1AED6B1AEEFCAC9F0CBC9D9
+ B4B2D6B1AEDBB7B4EAC5C2EAC5C3D6B2B0D6B1AEDAB6B4E9C3C1ECC7C4D9B4B2
+ D9B4B2D9B5B3E6C2C0EBC5C3ECC4C3E9C0BFEAC0BEE6BAB8E3B7B5D7A9A7D8AB
+ A8EDC0BDEBBDB9E3B4B2D9ABA8E6B8B5F0C1BFDCAEACDBABA9E9B7B3EDB9B6DF
+ ABA7DBA7A4E5B2AEEDBDB9E1B5B2DEABA8DFA6A3DFA7A4E7B6B3EDBEBAEFBAB6
+ F2B7B3F2B5B2F3B5B1EEADAAE09E9AE19D99EBABA7F0B9B5E1A39FE0A29DEBB1
+ ACF5B6B1F3AEAAF4AEAAF6AEA9F2A8A4F4A9A4E49792E39B96E3A19CF3ADA9F4
+ ADA9E49692E59691F0A7A3F2BAB5ECA19BF0A8A3F0B0AAEEACA8E49995E4948E
+ E7A6A1F4B2ACF4B9B4E4B1ABE6A49EF3ACA8EBA39DE59A95EFA49EF2ADA8E5A7
+ A3E2A5A1E2A39DE4A7A3F0B0ABEEABA7E7A8A5E1A49FE1A39DE19F9BF2B2ADF4
+ BDB9EAB1ACE1A29EE1A5A2E7ADA9F0B5B1E7ABA7DFA39FEDB1ACF2B6B4EEB5B1
+ DEA6A3E1AAA7F4BEBAE4B1ACE0AEABDCABA78C6D6B0000008D6F6DDCACA9E6B6
+ B4EFC1BEE5B9B6DFB4B2463A39141110C09795D9ACA9D8AEABE9C2BF00000029
+ 22228972718D7675937D7B73605F3F34345A4B4AC4A3A1D8B2B0D8B2B0DAB3B1
+ DFB9B7E6C1C0EAC5C3EECBC9000000443A39E5C2C1D8B4B3D7B3B2E4C0BEECC9
+ C7DBB8B6EDCAC7DEBAB9D1B0AED5B3B1E6C6C4DEBEBBD4B4B387727200000094
+ 7F7EE9C9C6EACBC9EBCCCA433A3A000000D1B3B1D5B6B4ECCDCBDEC0BED0B2B0
+ D1B3B20000001412113D34333D3434443D3C453D3D3D3636131010000000E4CA
+ CAD5BAB9D4B9B8D9BFBF000000423B3BE4CAC9E2C9C7E0C6C5D4BAB9D2BBB9E3
+ CBCBD9C1C0DAC2C1D2BBBAD5BDBDE9D1D1E5CECED9C2C1D0B9B7D0B9B7D4BEBD
+ E5CFCEE9D1D0CFB9B8D2BBBAEAD4D10000003F3939DBC4C3E1CAC9CFB9B8DAC4
+ C3EDD7D6E4CECDD0BAB9D6C1BFEAD4D4EAD5D4D1BEBDD6C3C2ECD8D8E6D4D2DA
+ C6C5D1BFBED4C1C0EAD7D7E9D5D5CDB8B7D8C2C1EDD7D6E5CFCECCB6B5CBB6B4
+ F3DEDCF7E0DFEED8D7CEB8B7D4C0BFF2DEDBF0DEDBCFBBBAD2BEBDE7D4D2ECD7
+ D60000000000000000D2BEBBCAB5B4C7B4B2DAC5C4EAD6D5E9D5D4D0BEBDD2C1
+ C0DAC7C6D6C3C2D0BEBDE6D4D4E9D7D8E0CDCED5C3C4D6C4C4E4D1D1E7D6D6D5
+ C3C2DECBCBEDDADAE6D4D4D0BEBDCFBDBAEAD7D6EAD7D6EBD8D8D7C3C3D8C5C5
+ DAC7C7DECBCBE9D6D6E3CFCFD9C5C4E2CECDE2CDCDE5D1D1E6D2D1EAD4D4D5C1
+ C1D6C1BFE4CFCDE5D0CFE6D0D0E3CDCDECD5D5D9C3C2D6BFBFE5CECDEAD2D2E7
+ D1D0D7C0BFD6BFBEECD5D5E2CCCBD5BEBBE1C7C6EFD6D5F2D9D7D6BEBBD4BAB9
+ EBD0CFEFD5D4D7BEBDD6BDBAF2D7D6E0C5C4D8BEBDD5B9B8DEC2C1E1C6C4D5B8
+ B7DABDBBF6D8D7D6B9B7D1B4B3D6B8B6D1B3B2D8BBB9EECFCEE6C7C5E1C1C0EA
+ CAC9EECFCDEECDCDE3C3C2E1C1C0DBBBBAD6B5B3DCBBBAE6C5C3EBCAC7EECBCB
+ E7C4C3D5B3B1DFBDBAF0CECCF0CDCBD6B3B1D5B1AEEEC9C7F0CAC9DAB4B2D6B0
+ ADEEC9C6ECC6C4EECAC6D6B2B0D7B3B0EFC7C6EFCBC7ECC6C3D9B4B1DBB6B4DA
+ B5B2E2BDBAF0CBC9EFCAC7EDC6C4ECC3C1E5BAB7E4B7B4D7A9A7DCAEACEFC0BE
+ EBBBB8E2B3B0DAABA8EFBEBBF3C2BFDAACA8DFB1ACF3C2BFF0BFBAEBB7B4DBA7
+ A4EAB4B1E3AEABDFADAAE3B7B5E9B5B1E3A8A5EBB2ADEEBDB9EEBEB9F0B8B4EE
+ B2ADEFB3AEE3A5A1E09F9BE49F9CE7A29DEAACA8E3A9A5E1A19CE5A7A3F4B6B2
+ F2AEA9F4ADA8F4ABA7F2A8A3E69B96E49691E69894E49F9AEDA7A2F3ABA6E799
+ 94E79590EEA29CF2BBB6F2A59FF3A8A3ECA9A4E7A59FE59A95E69691E6A6A1F0
+ ACA8F3BBB6E9B2ABEAA6A1F7B1ABF5A9A5EEA19BF3A7A2F3B0AAE5A9A5E5A5A1
+ E4A49EE5A6A1F5B0ABF2B0ABE4A6A2E2A49FE4A29DE29E9BECB1ADF4BAB6F3B3
+ AEE1A39EE5A9A6E6A9A5EDAEAAE9AAA6E0A29DECB0ABF2B5B3EDB2AEDEA6A2EC
+ B4B1F6C0BBEAB7B4E2B0ACDCAAA690706D00000091726FDEADABE9BAB7F4C6C3
+ F0C4C1E5B7B4B793910000003F3232DCB3B0D9B4B2E6C5C30000003F3534D8B4
+ B1EFCBC9EEC9C6EAC4C2D9B4B28B7372130F0FBE9B9AE9C1BFEEC7C5E9C3C1E4
+ BFBEE3BEBDEAC5C2000000433938E9C3C1D9B6B4D6B3B1E0BDBAEDCAC9E3C1BF
+ F4D0CEEECCCBD6B3B1D5B5B3E1C0BED8B7B6DEBDBB41383800000095807FE3C3
+ C1E9CAC7EBCBC9423A39000000D1B2B0D8B9B8E2C4C2E3C4C3D1B3B0D6B7B600
+ 0000453D3CDABBB9D1B5B3EDCFCFEACDCBD4B8B6D5BAB8000000E5CBC9D8BEBD
+ D4B9B8D9BEBD000000433C3BE6CDCBE5CDCBE7D0CFD4BBB9D8C0BFEED6D5E4CC
+ CBDFC7C5D2BDBADAC3C2E6CFCEEDD4D5D8C1BFD0B9B7D6BFBDD5BEBDDFCAC7E6
+ D0CED4BBBBD5BEBDE6D0CF000000413B3BD9C2C0D5BFBECFB9B8E7D1D0E7D1D0
+ E6D0CFD1BBBAD1BDBBDCC6C6E6D1CFD0BAB9E5D0D0EFDBDBECD8D8EAD6D5D1BE
+ BDDAC6C5ECD9D7D9C4C3CDB6B5EDD7D6E7D1D0E6D0CFCCB7B6D0BAB9ECD6D5E3
+ CCCBD8C2C1CDB8B6E2CDCCF2DEDCEFDAD9CEBAB9E0CCCBE9D5D4F2DFDE000000
+ 0000000000E5D1CFCDB6B5C9B4B3D6C2C1F2DEDCF2DFDED1BFBED6C4C3EBD7D6
+ DECCCBD0BEBDE6D4D2EEDCDCE7D6D5D7C5C4D5C3C2ECDADAEBD9D8D4C1C1DBC9
+ C9EFDCDCEDD9D9D1BEBED0BDBDEBD7D7EAD6D6DFCBCBD4C1BFE1CECFE3D1D0D8
+ C5C4E3CFCFE1CCCCDAC7C6DAC6C5DCC7C7E2CECEE6D1D1E7D4D2D5C0C0D5BFBE
+ E7D1D1EAD5D4E7D2D2E5CECEEBD4D5DAC4C3D6BFBEE4CECCEDD6D4EDD7D6D7C0
+ BFD7C0BFE7D0D0E1CAC9D5BDBBDCC4C3EED7D5F2D9D8D6BEBBD4B9B9ECD2D0E9
+ CDCDD7BDBDD5BBBAF0D6D5E5CBCADBC1C0D5B9B8ECCFCFF2D6D5E5C9C7E7CCCA
+ F2D4D1D6B7B7D1B5B3D6B8B7D5B7B5F2D2D1F5D7D5F3D5D4EDCECCE6C9C6F0D1
+ CFEFD0CFEECECDEDCCCCE9C7C6D7B7B5DCBAB9E0BEBBEBC7C6EFCCCAE7C5C2D5
+ B2B0D8B5B3EECBCAEECCCAD7B5B2D5B3B0E7C3C0E5C0BEDBB6B3D6AEACEDC5C3
+ F0CAC7EEC9C5D6B0ADD7B1B0ECC5C2F0CBC7E0B8B6D9B4B2E6C0BEDEB6B5DBB4
+ B2EEC6C5EEC7C5EAC3C0EEC7C4E3B9B7E1B6B4D7AAA8DEB0ADECBEBAE6B7B4E0
+ B0ACDAA9A7F2C1BEF3C2BFDAAAA7DEADAAF4C3C0F3C1BDE9B6B2DCA7A4ECB6B3
+ E2AAA8DFA9A5EEBBB8EEC2BFE7B2AEECAEABE5ADA9EAB9B6F0BFBAEFB5B2EFB2
+ ADE3A5A1E09F9BE5A29DEEA8A4F2ACA8E6ACA8E2A49FE9A7A3F5B8B4F2B1ABF4
+ ACA8F4A9A5ECA19CE49792E69792F6A29CE69E98E59E98F2A8A3EB9C98E7938D
+ ED9B96EDB3ADF4A7A2F5A8A3ECA9A3E5A39DEB9D98EB9894E7A7A2E9A49EF2BD
+ B7E9ADA8E7A29CF4AAA5F3A39EF3A29CF5AAA5EEACA7E4A7A2F4B1ABECACA7E5
+ A19BF6AEAAF4B4AEE6A7A3E5A39EECA7A3E5A5A2E7B0ACF4B4B0F3B2ADE1A39E
+ E6A9A5F3B3AEF3B3AEE7A9A5DFA29DE5A8A5F0B6B2EBB1ADDEA6A3E6B2AEF6C2
+ BEF0BBB8E4B0ACDEA9A690706E000000967875DFB0ADE3B5B2ECBDBAEBBAB8E9
+ B8B4F5C4C1000000000000EAC6C3DFBDBAEDC9C50000003F3434D9B2AEF2C9C6
+ EFC6C4E4BDBAD9B2B0DBB4B2584847130F0FEBC4C2EEC7C5ECC5C3E0B9B6DEB7
+ B5EAC4C2433938423737E9C4C1D9B4B3D5B3B1D9B7B5DCBAB8D6B5B3E2C0BEEB
+ C9C6D4B2B1D4B2B1D9B8B6D7B7B5E9C7C5141111000000EACAC7E9C9C6EBCBC9
+ EDCCCA433B3A000000CFB0ADE3C3C2EFCECDECCDCBD0B1AED6B7B5000000443B
+ 3BDABDBBD1B5B4F0D4D1EDCFCFD2B6B5D7BBBAB49F9EEDD2D0DCC2C0D4BAB8DA
+ C0BF2B2626141212E4CCCAE5CDCCE4CBCBD4BBB9D7BFBEEDD6D4DFC7C5DAC3C1
+ D2BDBAE1CAC9EBD2D2EFD8D6D4BBBAE1CAC9E7D1D0D6BFBEE5CFCEECD7D5D7C0
+ BFD5BDBBEDD6D6000000443D3DDFC7C6E0C9C6CFB9B8EBD5D2EDD6D6E3CDCCD4
+ BDBBD6C0BFEAD4D2E5CFCDD0BAB9E2CCCBEFDADAECD6D6E6D1D0CFBAB9D5C0BF
+ EAD6D5D5BFBECDB6B4EDD7D6E6CFCEECD7D5CCB7B6CFB8B8EAD4D2E2CCCBDAC3
+ C2CCB6B5D2BFBEEED9D8F0DBDACEBAB9DBC6C5DCC9C7DECAC900000000000000
+ 00E0CBC9CAB5B4C9B4B3E0CCCBF6E3E2EFDCDBCEBABAD1C0BEF0DEDCDECBCAD0
+ BEBDDECCCCEEDCDCE4D2D2D4C1C1D2C0C0EDDBDAEDDBDBD2C0C0D4C1C1EAD6D7
+ E1CCCBD0BDBDD0BEBEE2CFCEDFCBCAD2C0BED4C1BFDBC9CAD9C7C6D6C4C3D6C3
+ C3D7C4C3D6C3C3E2CECDE0CBCCD8C3C3DCCAC9DCC9C7D5BFBDD5BFBDE4CFCDEC
+ D5D5E9D2D2E4CECDE7D2D1DAC4C3D5BFBDDBC3C3EDD5D4EAD2D2D7BFBFDAC3C2
+ EDD5D5E3CDCBD2BAB8DBC2C2F2D8D7F4D9D8D2B8B7D0B7B6E6CDCBE6CCCBD5BA
+ B8D5BBB9E0C5C5E1C6C5DEC4C3D5BAB8D9BEBEEBCFCDEFD2D2EBCECDE2C4C3D6
+ B8B7D6BAB8E2C4C3D7B9B7DABBB9E7CAC7DEBFBED4B6B4D4B6B4E0C2C1EED1CF
+ EECFCEEBCCCBDABAB8D4B4B2DCBBB9DCBBB9D6B4B2DEBBB9E1BEBBD5B1AED6B3
+ B1E9C5C2E7C3C2D5B2B1D6B3B1E2BFBDE5C2C0D8B4B2D6B0ADDFB7B6EBC3C2E0
+ B6B5D6AEABD7AEACE2BAB8E3BBB9D6B0ADD8B1AEE3BAB9DAB3B0D7B0ADE0B8B6
+ EBC2C0F2CAC6EFC6C5ECC4C1DCB3B0D8ACA9DBAEABF0C0BFEEBFBBDFAEACDAA9
+ A6E5B4B1F2C0BDDEABA8DBA9A7EEBDB8F3C1BEE0ADAADCA8A5E7B1ADE6B0ACE1
+ A9A5EDB5B2F2BEBAE6BBB7E2ACA8E1A39FE2A9A5EFC0BBF0BAB7EDB1ADE3A5A1
+ E2A39DE39F9BECA6A1EEA5A1E3A19BE2A8A4E7A6A1EDACA8EFB0ABF4ACA8F0A7
+ A2E49994E39590E79791F8A39DED9E99E49B96E99E98E79A95E7918BEF9A95E9
+ A9A4E79C97F2A29CE7A39DE6A29CF2A29BF29C97E6A69FE69E99EDBBB6E7A8A3
+ E9A29BEEA29CE79691E99692EDA59FE4A59FE4A49EF4B1ACECAAA5E49B96EBA6
+ A1EDABA7E5A49FE5A29CEBA7A3E5ACA8E4A6A1F0ADA9EEADAAE1A29EE2A29CED
+ ACA7F3B1ADE4A5A1E0A29DEBAEAAF3B7B3E2AAA6DFA8A4E4B1ADF4BEBAEBB4B1
+ E0A9A6DFAAA68D6D6B00000090726FDEB0ACE3B3B0E3B1AEDBAAA7E2B3B1E9BD
+ B9000000000000ECC9C5DEB9B7D9B3B10000003F3433D8B0ACE5BBB9EFC6C3E0
+ B6B4DAB1AEE0B7B58B7270000000907674EFC7C5E2BBB8D6B0ADD6B0ACEBC3C1
+ B19592000000F2CDCAD6B2B0D4AEACDCB9B7D8B5B4D4B2B1DAB8B7D9B7B6D4B3
+ B1D5B5B3DEBDBBD4B5B3877271000000433B3AE7C7C6EACACAEBCCCAEACBC943
+ 3B3A000000CFB0ADD5B5B3E9CAC7E7C7C6CFB0ADD0B1AE000000423A39D4B6B5
+ D2B6B4EED1D0ECCFCED1B5B4D5B9B8EDD1D0ECD0D1D6BBBAD4BAB8DAC1C07B6D
+ 6C000000CBB6B4E9D0CFDBC4C2D4BBBAD5BDBBE5CECDD7C0BED5BEBDD2BBBADA
+ C3C2EAD1D0D9C0BED2BBBAE7D1CFECD4D4D5BDBBDCC6C4ECD6D5D4BDBBD5BDBB
+ EBD2D10000003F3939DFC9C6D6BFBECFB9B8F2DBD9F0D9D8E3CCCCCFB9B8D1BD
+ BBEBD5D4DAC5C4D0BAB9D7C1C0EFDAD9EED9D9E2CCCCCFBAB9D5C0BFF2DEDCE6
+ CFCECDB6B4E5CFCEF2DAD9E7D1D0CCB7B5CEB8B7EAD4D2EDD7D7DAC4C2CBB6B4
+ D0BBBAE6D1CFDFCAC9CEB9B9D1BEBBEDD8D8EAD6D50000000000000000D0BABA
+ C7B2B0C9B4B4D9C6C5F3E0DFD2C1C0CEBABACEBBBADFCCCBD4C0C0CFBDBBD1BF
+ BED9C7C6D5C5C4D2C0C0D2C0C0DAC7C6EDDBDAD8C5C5D0BFBED8C4C4D7C4C3D0
+ BEBED1BEBEEBD6D7DAC7C6D1BFBED2C0BFEAD8D7E9D6D6D8C5C4D6C3C3DAC6C6
+ D6C2C3D9C5C5D8C3C3D6C3C3DFCACADECAC9D5BFBDD5BFBDE4CECEEAD5D2EAD2
+ D2E4CDCDEAD2D2EAD2D1D9C2C2D4BBBBD7BFBED6BFBED6BFBDE3CCCAE6CDCDD5
+ BDBBD0B7B6DCC3C2F3D9D8E3C9C7D0B7B6D0B7B6DEC3C1E3C7C5D2B9B7D4BAB9
+ D8BEBDE0C5C4E7CCCBDEC2C2D5BAB8DABFBFEED2D1E5C9C9D7BABAD6B9B9E7CA
+ C9F2D5D2E2C3C2DABDBBDABBBAD6B7B6D4B5B3D4B5B3DEBFBDEECFCEEED0CEEA
+ CCCBDBBDBBD4B5B3D7B7B5D6B6B4D5B4B2DEBAB9EFCCCADAB6B4D5B1AEDAB6B4
+ D8B3B1D5B1AED6B1AED7B4B2DAB6B4D6B1AED6B1AED6B1AED9B3B1D9B2AED6AE
+ ABD7AEACE1B7B5D8AEACD5ACA9E0B8B5E6BEBBDAB3B0D7B0ADE2B9B6E9C0BEF2
+ C9C5EAC0BEDFB5B2D8ADABD7ADAAD8ADAADCB0ACDEB0ACDAAAA7DAA9A6DEACA9
+ EDBBB8E6B3B1DCA9A6DEA9A7E0ACA9DCAAA7DCAAA6E6B2AEEAB3B0E3AAA7E4AA
+ A7E3AAA6E1ACAAE1B4B0E1AAA6E4A5A1EEB3AEEFC1BDF0B9B6EDAEAAE4A5A1E3
+ A19BE49E9AE49C98E39995E6A7A3F2B3ADF2ACA8EFB1ABF6B1ABECA19CE49691
+ E3948EE99691F7A29BF09B96E59C97E99D97E79A95E79089E9928BE7A49DE99D
+ 97E99892E7A19AE7A29CF29E99F09A95E9A69FE79F9AE9BDB7E7A39DE79D98E9
+ 9994E6948EE99893EBA39DE5A8A3E5A29CF6B2ACEFA9A4E59B96E7A59FE7A5A1
+ E6A29CEA9F9BEFB1ABE7AAA6E5A19CE9A7A2E6A7A2E19F9BE29E9AE3A19CE4A2
+ 9EE1A29DE0A29EEBAEAAF4B9B5DFA7A3DFA9A5EBB3B0F6BEB9EFB7B4DFA9A5DF
+ AAA78D6E6C0000008E706FDEACA9E0ACAADEAAA7DBACA9E1B6B4A78A89000000
+ 413736EAC3C0DEB6B4D9AEAC000000443837DAAEABDAB0ADDBB2B0D9B0ADDAB2
+ B0E6BDBB78636200000089706FD9B2B0D6B0ACD6AEABD6AEACF2CBC9F0CAC92D
+ 26267F6C6ADCB8B6D2AEACD8B6B4D8B5B3D4B1ADDFBEBDDCBAB9D4B2B1DAB8B7
+ EDCCCAD4B2B1120F0F000000AD9594EBCBC9EBCBC9EACAC9E0C2C03D35350000
+ 00D0B0ADCFB1ADDABAB8E6C7C5DCBDBACFB0AD0000003D3434D0B3B3D6B9B7E3
+ C6C4D5B9B8D0B4B3D2B6B5EDD1D1E3C7C6D2B9B7D2B9B9DFC6C4EDD2D2141212
+ 5E5554E4CCCBD5BDBBD4BBBAD4BBB9D7C0BED5BEBBD2BBBAD2BABAD1BAB8D7BF
+ BDD2BABAD4BBBBEDD4D5EBD4D2D4BDBBD6BFBEE5CECDD5BEBDD1B9B9D4BDBA00
+ 00003E3837D9C1C0CFB8B7CFB9B8F0DAD8EFD8D8D5BEBECFB9B8D0B9B9E1CAC9
+ D1BDBBD0BAB9D6C0BFECD6D6E2CDCCD1BDBBCFBAB9D0BAB9F2DBDAEED8D6D0BA
+ B9CEB7B6D0BBB9D0BAB9CCB7B5CEB9B7DBC5C5D6C1C0CCB7B6CBB6B4CAB6B4D5
+ C0BFE3CECDD9C4C2CDB8B7D2BEBDD5C0BF0000000000000000D7C1C0D0B9B8D0
+ BDBBDCCAC9E6D4D2D8C5C4D2C1BFD9C5C4E9D6D5DFCCCBD7C4C3DCC9C9E7D6D6
+ E1CFCED9C7C6D8C5C5E6D4D2F0DEDCE9D7D7E3CFCFE4D1D0DECBCAD6C3C2DCCA
+ CAECD9D9E9D5D4D9C6C5D9C5C5EAD6D7EAD8D7E4D1D1E5D2D1E5D1D1DECACAE1
+ CCCCE2CDCDDEC9C9E6D1D1E5D0CFD9C3C2E1CBCAECD4D5E9D2D2E7D1D0E3CCCC
+ EAD2D2E7D0CFE6CECDDEC5C4D9C1C1DCC5C4E1CAC7E0C7C6DAC2C1E1C9C7DCC3
+ C2E1C7C5E7CECCEACFCEDBC1C0DAC0BEE9CDCCF3D7D6EACFCDE6CCCBEED5D4ED
+ D2D1F3D7D7F4D9D8E6CBCBE3C6C6ECD0D0E4C7C7E1C5C3E7CBCAECCECDF2D2D2
+ EDCFCEE5C7C6E2C4C3DFC1C0DABDBBDFC0BFE1C2C0E7C6C4E7C7C5E3C3C2E4C4
+ C3E2C3C2E4C5C3DCBDBAE2C2C1ECCBC9F0CECDEBC7C5D9B5B3E9C3C1ECC6C4DF
+ B9B7E7C2C0E2BDBAE7C2C0EBC5C3E7C2C0E0BAB8ECC6C4F0C9C7E5BEBAEAC1BF
+ F3C9C5EABEBBEBC0BEF5C9C7F4CAC6E7BEBAE4BBB8F0C7C5F3CAC6F5CAC7EBC1
+ BEE3B8B6DBB1ADDFB4B2E0B6B3DFB4B1E2B6B3DEAEACDFADABEBB9B6EEBBB8F2
+ BEBAEBB7B4EBB6B3EFB9B6ECB7B3E7B3AEF4C1BDEEB8B5ECB4B1F2B6B4EEB4B0
+ EDB2ADEDB8B4EFC1BEF0B6B3EDAAA6F0B5B1F2C2BEF2B7B3EEACA8EBA7A2E7A2
+ 9CEDA59FEEA29DF3A9A5F4B8B4F2ADA8ECA8A3F5B4AEF5A9A4EC9D98E99893EB
+ 9792F59D97F49994F2A7A1EFA39CED9E99ED948DED928DEFA69FEFA69FED9A94
+ EAA29BEEA7A2F49E99F29A94EFAAA4EEA8A3F3C2BDEDA49EEDA19AEE9B95ED97
+ 92EF9F9AEEA9A4EDABA6F0AAA4F4B0AAF0A49EECA59FF2ACA8F0ABA6EBA29CF2
+ ADA8F4B8B4EDA9A4ECA7A4F4B2ADEFACA7EBA6A2F3ADAAF3ADA9EEABA7EDADA9
+ EAABA7F0B4B0F6BBB8EDB6B2E5ACA9F6BDB8F6BDB8F2B9B6E4ADAAE6B3B1997B
+ 79000000977674EAB5B2EFBBB9ECBEBAEAC2BFF2CECB2C2525000000B09290E4
+ BAB8E7BEBBE7BAB7000000453837EBBFBDE5BAB8E5BAB8E3BAB7EBC1BFEBC2C0
+ 141111000000DEB5B3E3BBB9ECC4C2DFB7B5EEC7C6F5CECCEBC5C2D6B5B32D26
+ 26D2B3B1E6C3C1EFCCCAEAC6C4E9C5C3EECBC9EAC7C5E0BFBDE9C6C5F0CFCD44
+ 3B3A000000726160EACAC9EBCBC9EBCBC9ECCBCAEBCBC9413838000000DCBDBB
+ E4C4C2E0C0BEEDCECCF3D2D0E2C2C1000000403837DABBBBEACDCBEDD1D0E5CA
+ C9D9BEBBE7CCCCF0D6D49887878D7D7DD9BFBEECD2D0EFD6D5988787000000CD
+ B8B6E1CAC7E1C9C6E5CDCCE6CECCDFC6C5D5BDBBD8BEBDE0C6C4948483736867
+ E9D1CFEDD7D5EDD6D5E3CCCBE4CCCCEED8D7EAD4D1D8C0C0E2CAC7000000463F
+ 3EE9D0D0DCC6C4E4CECCF3DBDAE7D1CFE3CDCCE3CDCCEED8D7EFD8D8E5CFCED8
+ C1C0E9D2D1EBD5D5E2CCCBDEC7C7D2BDBBD0BAB9EAD4D1EAD4D2E7D1D0E4CFCD
+ E0C9C7D7C1C0E4CDCCE7D2D1E5CFCED8C2C1D2BDBBDBC6C5E7D1D0E5D0CEF3DF
+ DCF8E2E1ECD6D5D5C0BFF2DEDB0000000000000000EED8D7EDD8D6E6D2D1F3E0
+ DFF2DFDEEDDADAE6D4D2ECD8D8F4E1E0F5E1E0F2DFDFF2DFDEF4E2E1F0DEDCF0
+ DCDCF2DEDCF2DEDCEFDCDBE2D0D0ECD8D7EEDBDBE6D2D2DECBCAE7D5D5E9D5D4
+ E5D1D0DCCAC7D5C2C1E3D0CFE6D2D2DAC7C7DAC7C7E9D5D5E9D5D4E5CFCFE2CE
+ CDE1CDCDE4D0CFE7D1D1DCC6C5ECD5D5EBD4D2E7D1D1E7D0CFDFC9C6DEC6C6E0
+ C9C7E5CDCCE6CECEDEC6C4E6CFCEECD2D1E7CDCDDFC5C4ECD2D1F0D7D6EED6D4
+ EED5D2F4D9D8F2D8D6E7CDCCEBD0CFF4D8D7F4D9D8F3D9D7F3D9D8EACFCEEDD2
+ D1EED4D2ECD0CFDCC2C1E0C5C4E1C5C4EACFCDEACECDE6CAC9E7CACAE6C9C7E0
+ C2C1E0C2C1E6C7C6E4C6C5E9C9C7E6C6C4EDCCCAE7C6C4E4C3C1E5C4C3EBCBC9
+ EBCAC9EBCAC9EECECDEECECCEFCECCEBCAC7E3C1BFF2CECCF3CECCF0CAC7EEC7
+ C5EAC2C0F2CAC7F3CCCAF2CCCAEEC6C4EEC7C5F3CDCAF3CBC7EFC7C4EFC4C2ED
+ C2C0F4C9C6F4C7C5F3C6C3EEC2C0ECC1BFEEC3C1EFC5C2F0C5C2EDC1BFE2B6B4
+ E9BDB9F3C7C5F0C4C2EDC2BFF0C6C3DFB3B0EBBDB8EEBDB9E5B2B0EAB6B3F2BD
+ B9F4BEB9F4BFBAEFB9B6EEB8B4F4BEBAEEB9B6EFB9B6F3BAB6F2B5B2F2B4B1F3
+ B4B0F3BAB6F4C4C0F3B7B3EBA6A2F0B4B1EEBDB7EFB3AEF2AEA9F0ABA6ECA49E
+ EEA29CF0A19BF0A9A4EDACA8EDA39DF5B2ACF5ACA6F6A7A2F5A29BF39E98F79F
+ 99F2948DF5A39CF4A69FF2A29CF39A94F39590F4A59EF6ACA6F49D97F0A69FF4
+ ACA6F49C96F29A94F2A9A4F3B0A9F4BFB7F4A8A2F4A39DF29B95EE9590ED9F99
+ EDABA6EFA9A4F2ABA5EFA6A1EC9E99EEA8A4F0AAA5F2A7A2F2A7A2F2B5B0F3B0
+ ABF3AAA5F4B0ABF4B0ABF4ADA8F4ADA8F6B1ABF5B1ACF4B2ADF5B5B1F3B5B1EF
+ B6B2F4BBB8F3B8B4F2B7B3F5BBB7F6BBB8F5BEB9EFBAB7F4C2BF9A7A76000000
+ 987472F0BEBAF4C7C4F3CDCAEFCAC7453A39000000997F7DEFC3C1E5B8B6EBBD
+ BAB5928E000000141110F2C4C2F0C5C3EFC4C2EFC5C2EEC3C245393800000098
+ 7F7DEFC7C4F0C9C6F3CBCAEFCAC7F4CECBF3CDCBEDC7C5F0CBC9D6B6B42C2625
+ CBACA9EDCAC7F2CDCCF0CDCBEBC7C5E2C0BEDFBDBACAAAA9443B3A0000006052
+ 52E4C2C0EBCAC7E9C7C5EAC9C6EAC9C6E9CAC72C2525000000E4C5C4E4C4C2DA
+ B9B8EBCBCAF2D2CFEACBCA000000453D3DEACDCCECCFCEEDD1D0EFD4D1EDD1D0
+ EDD1CFECD1D0988785968585EBD1CFEDD1D1E9CECCEFD6D5988787141312D1BA
+ B8EFD6D5EED5D4EED5D4EAD1D0D5BDBAE1C7C5EAD1D0443D3D2B2726ECD2D2B4
+ A1A1605656EDD6D4EBD2D2EED8D6EED7D6E4CECDE9D1CF000000443D3DE1C9C7
+ EDD6D5F0D8D8F3DBDAE5CFCE413B3ACFBAB9F3DEDCF3DBDBECD6D5E9D1D1EED7
+ D7EBD6D5D8C2C1E7D1D0E5CECDE0CAC9E5CECDECD6D5EDD7D6ECD6D4EBD5D4E6
+ D0CFEDD7D6EED9D8EDD7D6E7D2D1D5C0BFDFCBCAE6D0CFD4C0BFE3CECCF9E3E2
+ F4DFDED2BFBDF9E4E30000000000000000F8E2E0ECD7D6E6D1D0F4E0DFF5E2E1
+ F4E1E0ECD8D7EAD7D5F4E0DFF6E1E1F0DCDBF0DEDCF5E1E0F2DEDCF0DEDCF2DE
+ DCEFDEDBF0DEDCE6D4D4F2DEDCF2DEDCE6D4D4E4D0D0E7D5D4EDD9D9ECD9D8EA
+ D5D5E0CBCBE6D2D2EBD6D6E6D2D2DFCBCBE7D5D4EBD7D6E6D1D0E6D1D1E3CFCE
+ E9D4D4EAD4D5E0CAC9E7D1D0E6D0D0EAD2D1E9D1D1E7D0CFE3CBCBE7D0D0EDD5
+ D4EDD6D6E6CECEECD2D2EED5D4EAD0CEE7CDCDEDD4D2F3D9D7F4DAD8EACFCEF5
+ DBDAF5D9D9E9CECCEED4D1EDD1D0F3D7D6F5D9D8F0D6D5EBD0CEEBD0CEEDD1D0
+ EACECEE4C9C7E9CECDEED2D1EDD1D0EACECEEBCFCEECD0CFEFD2D1EDD1D0ECCF
+ CEEACDCDEDCFCEEECFCEEACAC7EFCFCEEFCECCE7C5C3EAC6C5EFCDCCEBCAC7ED
+ CCCBEECDCBEFCFCCF3D1CFF2D1CFEDCBCAF3D0CEF3CFCDEDC9C7EAC4C2E4BEBB
+ F2CBC7F3CBC9F2CAC9EDC4C2E5BDBBF0C9C5EFC6C4EBC3C1E3BAB7E4BAB8F0C6
+ C3F0C5C2ECC1BEEDC0BDEABBB9ECBFBDECBFBBEFC2C0EFC3C0EBC0BDE4B8B5F3
+ C5C2F2C4C1F2C5C2F2C6C3E5B9B7EDC1BDF2C3C0EAB8B5ECB7B5F3BEBAF3BDB9
+ F4BDB8EEB6B3EAB2ADECB4B0E6B0ABEBB5B1F0BAB6EFB6B2EEB2ADF2B3B0EFAE
+ AAF3B8B3F4C4C0F4B5B1F5ADA9F3B6B2F4BFBAF3B3ADF2ACA8F0A9A4EFA49EF2
+ A29CF09E9AEEACA7EBA5A1F2A9A4F5B2ABF7A8A2F5A29CF39D97F59C96F2948D
+ F59A94F5A6A1F4A39CF69D97F5938CF59F98F6B1A9F49A94F0A59DF4AAA4F096
+ 8EEE9791F2A9A3F4B4AEF4B9B2F0A39CF49F9AF39993F29892EFA49DEFADA7F0
+ A6A1F2ACA6F2A29CF0A59EF2A9A4F2A8A2F2A39DF0ADA8F0AEA9EEA39EEDA6A2
+ EDA7A3F0A7A3EEA6A2EEA7A3F4AEA9F0ACA8F2B0ABF5B5B2F4B8B4F0B6B2F4B7
+ B4F2B5B2F2B7B3F4BAB6F4BDB8F4BFBAF2BEB9D4A5A2463635000000604C4B96
+ 7B7A97807F7D6867141111443837D4ACAAF0C2C0EEC0BDEBBBB8987B79463938
+ 443736000000614F4E987C7B957A797A63621411112C2424B69695F0C7C6F3CB
+ C7EEC6C5EFC9C7EBC5C2F2CCCAEFCAC9EAC3C2F2CDCAF5CFCDF4CFCD63535260
+ 5251B59A99EECAC9E9C5C3C1A3A27362611411112C2525B49998EECCCBEBC7C6
+ EFCDCBE6C5C3E6C5C3E9C7C5947F7D000000000000443C3BCDB1B0E0C2C0E7C9
+ C7D0B6B55B4F4F0000002B25258E7D7B9381819382819482818D7D7C93828144
+ 3C3C141212938181EED4D2E9CFCDE2C7C6EACFCEEED5D2D0B8B75E5453615656
+ B09C9CEED5D4EED5D2C9B0AE766969141111000000000000AE9C9BE7D0CF1413
+ 12433D3D9181819485849485848E807F9081800000002C2928968787998A8998
+ 89899B8C8B6057571412117C706FF3DBDAF2DADAEDD7D7E2CCCBECD6D5EDD7D6
+ DBC4C4E6D0CFE9D1D0DEC7C5E0C9C7E7D1D0E5D0CFE7D0CFEFD9D8ECD6D5EDD7
+ D6EDD7D6ECD6D4E7D2D1E0CCCAEDD7D6EBD6D4D9C4C2E1CCCBF6E1E0F5E0DFD4
+ C0BEF2DCDB0000000000000000F9E4E3F9E3E2EED9D8EFDBDAF0DEDCE9D7D6DA
+ C7C6DAC5C5ECD8D8F0DEDCE6D2D1E5D1D0EEDAD9EDDBDAF0DEDCF2DFDEF2DEDE
+ F2DFDEEDDBDAF2DFDEF2DEDEEDDADAEBD8D7EDDAD9F0DCDBEEDBD9EAD6D5E6D2
+ D1E7D4D4ECD8D8EBD7D7E4D1D0EAD6D6EAD6D6E6D1D0E4D0CFDECAC9E6D1D2E6
+ D0D0E0CAC9E7D1D1E7D1D1E9D0D0EDD5D4EDD6D4EBD2D2E9D1D0EDD6D5EDD5D4
+ E3CAC9E7CFCDECD1D0E9D0CEECD2D1E9D0CFEFD6D6EFD6D5E5CBCAE9CFCDEDD2
+ D1EBD0CFEFD5D4E7CCCBF0D6D4F6DAD9F0D7D5F0D5D4F3D8D7F3D8D7F0D6D5EA
+ CECDEBCFCEEDD1D0EBD0D0E7CCCBECCFCFEDD0D0EDD1D1EED2D1EDD0CFE9CBCA
+ EBCDCCEECECDE2C2C1EBCCCBEACAC7DCBBBADEBDBAEBC9C6E4C1BFE6C5C3E7C6
+ C4EDCBCAF2CFCEEECCCAE7C6C4F0CFCDF2D0CEF0CDCCEAC6C4DFBAB9F2CCCAF2
+ CCCAEFC7C5EEC5C2EAC1BEF3C9C6EFC4C2EAC0BDE3BAB8DFB5B3EFC5C3EEC3C0
+ ECC0BEEDBFBBEBBBB9EDBEBAEBBBB9EBBDBAEBBEBAE3B5B3E3B6B4F0C3C0F0C2
+ C0EFC1BEEDC0BDE2B5B2E9BBB8F0C3C0E3B5B2E2B2AEE7B3B0ECB6B3EEB7B4E6
+ B0ABE5ACA9E7AEABE3AAA6EBB3AEF2B8B6EEB6B3EEB2AEF0B3AEECACA8ECAAA6
+ F0B4B1F6C4C0F5B4B0F3A9A5F4B7B3F5BEB8F5B1ABF5ACA7F2A6A1F2A39DF39F
+ 99ED9E99EDADA8F4A8A2F4ADA8F4A8A3F4A19AF39C96F69B95F59791F5948DF5
+ A79FF6A49DF79F99F59089F3968EF5B5ADF49791F4A59DF5AAA4F2958EF29993
+ F3A8A1F5B9B3F5B3ABEE9E97F39A94F2948DF29A95EFA7A1ECA59EEEA59EF0A5
+ 9EF2A19AEFA7A1F0A6A1EF9F99F2A6A1F2B4AEF0A59FF0A6A1F0A8A4EDA39DEF
+ A59FECA29DECA49EF2ACA9F0ACA8EFAEAAF3B5B2F0B5B1EBADA8F0B1ACEBADAA
+ EEB3AEF2B9B5F2BDB8EFB9B5CE9C99987270987574977B7998807F98807E967D
+ 7BB69693EFC2C0EEC1BEF2C2BFEDBDB9EBBAB7E6B6B3EDBEBBEDBFBBE7B8B5EC
+ BEBBF0C3C0987D7B967B79977B7AD2ACAAEFC4C3EBC2C0EBC3C1EDC5C3E2BBB8
+ E5BEBDDFB9B7E6C1BFE2BEBAD9B4B2DBB6B4EAC5C3EEC9C9EBC5C4E9C4C29881
+ 80615251433938413837746262B09695EAC6C5ECCAC7EBC7C5EDCAC9EECBCBEB
+ CAC7D1B4B2978382968181937F7E927F7D958181958281AC9695E7CBC9958381
+ 907E7D9684839583839583829381819886859785849381819482819886859685
+ 85C6ADADEACFCDEBD0CFDCC1C0E3C9C7E7CECCE3C9C9E2C9C6E9CFCE9483835D
+ 5252423C3B403939433C3C938281D0BAB9EDD2D2F2D8D7F0D7D66157567B6E6D
+ 9383839687869788879485859686859989899687859889899A8B8A9889889B8C
+ 8B93858390817F453F3EF2DBD9EED9D8EBD6D5D7C1C0E9D1D0EFD8D7ECD5D4EB
+ D5D4E3CCCBD8C3C1E5CECDF2DBD9F2DAD9E9D1D0F2DBD9EAD4D2EED8D7EED8D8
+ EBD6D5E7D1D0E6D1D0EDD7D6E9D4D2D9C4C3E4CFCDF6E1E0F3DEDCD1BEBBDEC9
+ C70000000000000000F3DEDCF6E1DFE7D4D1D6C1C0DBC6C5E4D0CFD9C6C5D2BF
+ BFE4D0CFE9D5D4E9D5D4DECBCAE3CFCEE3D0CFF0DEDCEEDBDAEBD9D8EFDCDBE6
+ D4D4F0DCDCF0DEDCEEDBDBEEDBDBEAD7D6F0DCDBF0DCDBECD8D8E7D5D4EAD6D5
+ EDD8D8ECD7D7EAD6D6EBD7D7ECD7D7EBD5D6E6D2D1E4CFCFEAD5D6E6D1D1E5CF
+ CEE9D2D2E7D1D1E5CFCEEAD2D2ECD4D4ECD4D2E6CDCDEDD4D4EBD2D0E0C6C5E5
+ CCCCE9CFCFE7CFCEECD1D0ECD2D0F0D7D6F6DBDAF3D8D7F2D7D6EFD5D4F3D7D5
+ F3D8D6E0C5C3EED2D1F3D7D6ECD0CEECD0CFF0D5D5F2D7D5EFD4D2E6CBCAE3C9
+ C7E9CECDEACFCEE7CDCCE9CECDEACFCEEACECEEDD0CFECCFCEE4C7C6E6C9C7EE
+ D0CFEACDCBEED0CFD1B6B5E2C2C1DEBDBBE7C6C4E6C4C2E7C3C1E4C1BFDCBAB8
+ E9C5C3EBC7C5DFBDBAEECBCAF2CDCBE9C6C5E3C1BFD8B6B4EAC7C4EFCBC9EBC4
+ C2EFC6C5EAC1BFF2C7C5EEC2C0EBC0BEEABFBDE4B9B7EEC3C0EFC3C1EDC1BFE9
+ BDB9E6B8B6E9B9B6EFBFBBEDBEBACCA39FAB8786E1B2AEF0C1BEEDBFBBEEC0BD
+ EFC0BDEBBBB8EFC0BDF4C5C2EEC1BDEEC2BEF2C1BEF3C0BBF3BDB8F3B9B6F2B7
+ B4ECB2ADEAAEAAEDB2AEEFB5B2EDB4B0EEB5B1F3B7B2F4B4B0F2B0ABF2ADA9F6
+ B8B4F6C4C0F3B0AAF6ABA7F6BDB7F6BBB6F6B0A9F4A8A3F3A59FF29F9AF09993
+ ECA39CF2ABA5F6A9A4F5B0A9F49F9AF49B96F59A93F4958EF58E88F39E98F4A1
+ 99F49C96F68D86F49189F3B7B1F29189F4A39BF6A9A3F09089EE9791EEA29AF0
+ BDB5F2A8A2EE9B95F0938CF08E87F09C96EFACA6EEA29AEEA59FF29D97F3A39D
+ F0A59FF3A29CF09D98F0B0AAF2A8A2F0A39DF0A8A2EFA49EED9F9AF0A59FEEA5
+ 9FEDA6A2EFAAA5ECA9A5EBACA8EFB1ACEFB0ABE9A9A5EFB2ADEBAEAAE7AEABE9
+ B4B0F2B6B4F3B6B2F2B6B2F2BDB9EEC4C1EBC5C3EDC5C2EFC4C1EEC1BEEFC1BE
+ EAB9B7EEBDBAF0BFBDF2C1BEF0C0BDECBBB8EABAB7EBBAB8E2B3B1E2B3B0ECBF
+ BDECC0BEE3B7B5E6BBB9EAC0BDEAC1BEE4BDBAE9C1BEECC4C2EAC3C1ECC5C3E9
+ C2C1EFCBC9EEC7C6E2BDBBE4BEBDE7C2BFF0CBC9EDC7C5EEC9C6F3CECBF2CDCB
+ E9C4C3E4BFBEE7C4C2E1BEBBE3C0BFE6C3C1DFBDBAE4C2C0EDCBCAE0BFBDE9C7
+ C5EECDCCEDCCCBDFC0BFE6C7C6E9CBCAEDCFCFE9CCCAECCFCEEFD2D0EED1D0F2
+ D5D4EDD0CFE7CBCAE4C6C5F0D4D2F0D4D1E5CACAECD0CEEED2D0EDD1D1E2C6C4
+ E7CCCAE6CCCAD6BBBAE0C5C4E4CBCADCC2C2E2C7C5EDD4D2EED5D4E9CFCDEDD1
+ D1E7CECDEED5D4E6CDCCEAD1CFE4CBCAECD1D0ECD2D1EED6D5EDD5D4EDD4D2ED
+ D5D4ECD4D5DFC6C6D8C0BFEAD1D0DFC7C5E1C9C7E7D0CFECD4D2F7DFDEF3DBD9
+ E5CECDEDD7D6ECD5D6EED8D8ECD7D6E0CAC9E6D0CEEED8D7ECD6D4EDD6D5E6D0
+ CFE4CDCCF2DBD9F4DEDCF0DAD9EDD7D5F3DEDBEFD9D8F0DAD9F4DFDEF2DEDBE3
+ CECCE0CBCAE9D5D2E3CECCE5D1D0D4C1BFE9D5D2F0DBDADAC4C3F2DEDC000000
+ 0000000000D8C2C1ECD7D6EFD9D8F0DBDAEED9D8F4E1DFE5D1D0DAC6C6EAD6D5
+ EEDAD9F0DCDBE9D6D4DECACAD8C5C4ECD9D8E5D1D1DCCAC9DCC9C9D5C1C1E2CE
+ CEEAD6D6E7D5D4EAD6D6EAD7D6EDD9D9F0DCDBEAD6D7E3CFCFE9D5D4EBD7D6EA
+ D6D4EBD8D7ECD8D8EDD9D8EDD9D8EAD5D6E7D2D2EAD5D6CDBABA948585948685
+ 9385859283839284839485859283838B7D7CEAD1D0E6CECDDBC2C2DAC2C1E1C7
+ C6E1C7C5E1C7C6E5CCCBECD1D0EFD6D5EFD5D2EAD0CEE5CBCAECD1CFEFD5D4E3
+ C7C7E6CBCBF0D5D2EBD0CEE7CCCBE5CAC9EED2D1EACFCDE7CDCCE0C4C4E4CAC9
+ E7CDCCE1C6C6E5CAC9E7CDCCE4C9C9E9CECDEDD1D0E9CBCAE4C7C6EACDCBE7CA
+ C79885852C2726EBCCCAE3C3C1EBC9C6EBC7C5EDC9C6EECBC9E7C4C1E9C5C3EC
+ C6C5DAB5B3E6C1BFEFCAC9E3BFBDE5BFBED9B4B2EECAC7F3CECCE7C3C0E6BFBD
+ E3BBB9EAC1BEE7BDBAE0B5B3E3B7B4E2B5B2E6B8B6EBBEBBEABBB9ECBFBBE7BA
+ B7EABBB8EFC0BDF0C0BD7B6260433534E2B1ADEEBDBAEFBFBAEDBDBAECBDB9E9
+ B8B5EEBFBBF4C4C1F3C3BFF2C2BFF4C4C0F2C3BFEDBAB6EFB7B4F2B7B4ECB2AD
+ EBB0ABEFB3AEF3B6B2F0B4B0ECB1ACF3B7B4F0B4AEE9A9A4E9A59FEFA9A4F4B3
+ AEEDBAB5F4AEAAF5A8A4F5BBB6F6B9B4F7ACA7F6A9A4F4A29CF29A95F09892F4
+ B2ACF6A7A2F4AAA4F5A69FF49B95F59892F5958EF69088F6968EF6A29AF69E97
+ F790889C5A569A76719A5A569B66629B6A669A5A569A635EF4A39BF6CBC3F6A5
+ 9DF49D96F4938BF3918AF4A49CF3ACA5F2A49DEFA29BF29A94F0A59EF2A39CF4
+ 9C97F3A9A3F3ABA5F3A19AF3A6A1F2A49DF2A29CEF9F9AF2A59FEFA59FF0A8A4
+ F0ADA9EEAEAAEFB1ABF3B0ACF3B1ADEFB1ABF0B4B0EBB1ACEBB3B0E9ACA8F3B3
+ B0F2B7B3EDBDB8EFCAC6F0C9C5ECC1BEEDC0BDEDBEBBECBAB7EEBDB9EBB8B5EB
+ B8B5E9B8B4EBBAB7EAB9B6EBBAB8E7B7B4EBB9B7E3B4B1E2B2B0F0C2C0ECC0BD
+ E0B5B3EAC0BDEDC3C1EBC2BFE3BAB8EAC2C0EDC5C2EDC5C3ECC5C3E2BBB9EFC9
+ C6EFCAC7EBC5C4F2CBCAEEC9C6F3CCCAEEC9C7F0CAC9F5CFCEF4CFCDE0BAB8DA
+ B6B4E0BDBADBB8B6E4C1BFE4C1BFDEBBBAE6C5C3E6C6C4D7B6B5E6C6C5EECFCE
+ EED0CEE6C7C6EBCDCBEACCCAEBCECDEACDCCEDD1CFE9CCCAE9CCCAF2D4D2ECCE
+ CCE6C9C7D6B9B8EACCCBE7CBCADCC0BFEDD0CFEED1D0EED2D0E2C5C4EDD0CFEA
+ CFCDDCC0C0E4CAC9E7CDCBE7CDCBE1C6C5ECD1D1EAD0CFE6CBCBE1C6C5DCC3C2
+ EAD0CFE7CCCCE5CCCBD7BEBDE1C9C6E6CCCCEFD7D7EDD4D2E5CDCBE7CFCEEED7
+ D6E9D1CFE4CDCCEFD7D6E7CFCEE4CCCBE9D0CFE7CFCEF2D9D8ECD5D2DAC3C2E2
+ CBCAEAD2D1F0D9D9F3DBDAEED7D7ECD4D2EAD1D0EAD2D1F0DAD8E6D0CFD9C3C1
+ EAD4D2F0D9D8ECD5D4F0D9D8F7E0DFF6DFDEF3DCDBF7E1E0F7E1E0F2DCDAECD6
+ D5E9D4D1DAC5C3D5C1BFD0BBBAE5CFCDF2DCDBE0CBCAFBE5E400000000000000
+ 00F4DFDEF5E0DFF3DEDCF4DFDEF0DBDAF6E1E0EDD7D7E1CCCBE5D1D0F0DCDBF2
+ DEDCF2DEDCE5D1D0E1CDCCEEDBDAEBD8D7EBD7D8EAD7D7E1CCCAE7D4D2ECD9D8
+ EAD6D7EAD6D7EAD6D7E9D5D5EFDADAEDD9D8DECAC9E0CBCBDCC9C7E5D1D00000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00002A2525433D3D403A391411110000000000003F3938756868CAB4B3DBC3C1
+ DBC3C2DFC5C4DBC2C2E2C7C5E9CFCDEDD1D1E4CBCAE2C6C5EACECEE9CECDE7CB
+ CAF0D6D5F0D6D4ECCFCEE7CCCAF0D5D2EDD1D0ECD1D0E7CECDE9CECDEBD0CFE6
+ CCCBEACECEECD0CEE7CACAECCECEEDD1CFEBCECCE5C7C6E4C7C5E0C3C25F5252
+ 000000CEB3B1E5C5C4EBCCCAEBC9C7EBC9C6EECCC9EDC9C6EBC6C4EBC5C3DCB6
+ B4ECC4C2F3CCCAEEC7C5EEC6C4DFB9B6F3CCC9F7CECCF5CECBECC4C2E9C2BFEA
+ C3C1DFB6B3D8ADABDCB2AEDEB1ADE7B9B7E7B8B6E9B8B6EDBFBBEABAB7ECBFBB
+ EFC1BFF0C2BF2C2323141010ECB8B6ECB9B5EFBBB8EDB9B6EBB9B5E3B2AEE9B7
+ B4ECBBB7E1AEACE0AEAAE5B4B1E3B3AEE2B3B0EAB7B3F2BBB7ECB3AEE6ABA8EE
+ B2ADF3B6B2EFB2ACECADAAEEB1ACEEB3ADECAEA9E5A49FEEA9A5F2AAA5EFADA9
+ F4C1BBF3ABA6F5A8A2F6BFB9F8B6B1F8AAA5F6A59EF59E98F49892F6A19BF7B1
+ AAF7A59EF7B0A8F59C96F3958EB76E69804A46482926150E0D00000000000047
+ 28252D21200000000000000000002D1A18472E2C000000000000150F0E472C2B
+ 9B5A56D6837CF5AAA3F4A69EF0A49CF09892F29E97F2A29BED9791F09C96F3B0
+ AAF29D97F3A39CF3A39DF39F99F29F9AF2A29CF2A69FEEA59FEEA9A4F0B1ABEE
+ ADA8EDA9A5F0ADA8D299957C5B59463534453432000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000004739384336357A6260B79695F3C7C5ECC2C0ED
+ C3C1F3CAC6F2C9C6EFC7C5EDC5C3EAC2BFEFC7C5EEC5C4DFB7B5EEC6C5E9C2C1
+ E6C1BFE9C2C0E4BEBDCBAAA8725E5D4339380000000000000000000000000000
+ 00000000453B3B96817FC1A4A2CAAEAD927D7D403737423A3A2C262500000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000002B2525453D3D60
+ 5655978787C6B0AEE4CBCAE4CBCAEDD4D4EAD1D0ECD2D1ECD2D1F0D9D7EED7D7
+ EAD2D0F4DBD9F2DAD9EFD8D6EFD8D7E6CFCDF4DBDAF2DAD9E3CCCAE5CECDEFD8
+ D7F0D9D8F2DAD8EBD4D2ECD6D4E4CDCCDEC6C5E9D1D0E1CBCAD2BDBAE0C9C7DF
+ C7C6DCC5C5E5CECCF2DBDAEED7D6E1CBC9F0DBDAF6E0DEEED8D7EDD8D6E7D1D0
+ DBC6C4DCC6C5D7C2C0E6D1D0EED8D7DCC6C5FCE6E50000000000000000E7D4D1
+ EDD8D6F0DAD8F0DAD8E6D1D0EBD6D5ECD6D5E7D4D1E4CFCEE9D4D2F3DFDEF3DF
+ DFEAD6D5E3CECDECD8D8E9D6D5E9D6D5EED9D9DEC9C7DFCBCAEBD7D7E7D5D4E7
+ D5D2E9D5D4E6D2D2ECD8D8ECD8D7ECD9D7E6D1D1E6D2D1E6D2D1000000000000
+ 0000000000000000000000000000000000000000002B2626423D3C3F3938403A
+ 3A423C3B3F39395E54539686859585855D5352000000000000433C3CCBB5B4E7
+ CECEE7CFCEEDD2D2EBD1D0EED5D2F2D7D5EDD1D1F0D7D5EFD4D1E7CDCBF0D5D4
+ F3D7D6F0D4D2EDD1D0EFD4D1EDD1CFEDD1D0EBCFCEECD1D0ECD0CFE9CECDEDD1
+ D0EDD1D0EDD0CFEDD0CFEDD0CEEACDCCEBCECDEACCCBE5C9C6443B3B00000079
+ 6868E0C0BFE7C7C5E7C7C5E5C2C0ECCAC6EECBC9EFCBC9F0CCCAECC9C5EDC7C5
+ F0CBC9EFC9C6F0C9C6DCB5B2F2C9C6F6CCCAF4CBC7EEC5C2EFC7C4EFC7C5EDC4
+ C2E6BFBDECC3C0E5BBB8EFC3C0EDBFBBE6B7B5E1B0ACE1B1ADEAB8B5E7B7B4CE
+ A5A2000000000000D1A6A4EEBBB8F0BBB9EFB9B6EEB8B6EBB7B3E5B3B0EAB7B4
+ DCABA8DEACA8E3B1ACDEABA7E1B0ABEEBDB8F5C4C0F4BFBAEDB3AEEDB0ACF4B5
+ B1F3B3AEF2B2ADF2B2ADF4B3AEF2B4B0F0B2ADF4B0ABF4ADA9F4AAA5F5B0ABF6
+ C3BDF5AAA5F5A7A2F7C3BEF7B1ABEF9F99EC9791EC928BF4928BF2A59EF4A39C
+ D5918B62403D150D0C150C0C482A289D56519D656081514E482B294827250000
+ 0000000000000000000000000048302D462E2C9C7C7680534F643C392D1A1900
+ 00002D21207F5450D68E89F49791F4A49DF49F99EF928AF2ADA7F29E98EF9C96
+ F2A19AF09B95F29B96EF9C97F0A29CF2A59FF0A9A4EFADA8F0ADA8EFA8A4EEAA
+ A5F2AEA9F2B3ADF3B8B4F3B3AEF2ADAAEDAEAAEEBAB6B49794987E7B7C636100
+ 0000000000967371926F6D2C2222000000000000000000140F0F755B598D6D6B
+ A88280E9B7B4F4C3C0F2C2BFE7B8B6F0C3C1F4C7C5F0C6C3EABFBDEAC0BEEFC6
+ C3EFC5C3EFC6C3EBC2C0E4BBB9F0C7C5EFC7C5E6C0BDEEC5C4EBC3C1ECC5C3CE
+ ACAB2C25240000005849488D7574635352000000000000000000453B3ACAABA9
+ F0CECDEECCCAE5C4C2EACAC7EACAC7E5C6C4EECECCEDCDCCEACAC9E7C9C7B19B
+ 999683822C2525000000443C3CEBCBCBF3D4D100000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000002C27271413122C27275E5352443D3D0000000000000000
+ 000000002C27265F5554D2BDBBF0D7D7EDD6D4EED7D5EDD5D5E7D0CFE7CFCEF4
+ DBD9F0D8D8F0D9D7F4DBDBF0D9D7F3DADAF2DADAEED8D7ECD6D5F3DBDAF4DCDA
+ F3DBDAECD5D4F0D9D8EFD8D7DFC9C6E6D0CFE5CFCDD8C2C0E4CECDDBC5C4E0CB
+ C9E5CFCDEFD8D7E5CFCDE0CBC9E6D0CFF7E1DFF4DFDEF6E0DEF8E2E0F7E1E0F6
+ E0DFEDD7D6F2DEDCEDD8D6E7D2D1F0DCDA0000000000000000EBD6D4F3DEDCF0
+ DAD9F6E1DFF5E0DEF6E0DFEBD5D2EAD4D2E7D2D1EED9D8E9D5D2E7D2D1E0CAC9
+ DAC5C4E3CFCED5C1C0D2BEBEDBC6C5D4BFBFD4C0BFD7C3C3D8C4C3DCCAC9DCC9
+ C9E2CDCCDECAC9DCC7C7E6D1D1E6D2D0EAD5D4B3A3A300000000000000000000
+ 00001311113F3939928383CAB7B6D6BFBFE2CAC9E2CAC7DAC3C2E3CCCBDBC4C2
+ D6BFBDC4AEAE796C6C2B2626706363CAB4B35D53520000000000005E5454ECD2
+ D1ECD2D0E7CECDEAD1CFEBD0CFECD1CFF2D8D6F0D6D4F0D5D4EED2D1EED2D1E9
+ CDCCE2C6C6E9CDCCE5CAC9E0C3C1DCC1BFE6CBCAE7CDCCE2C5C5EACDCCE6C9C7
+ E3C6C5E9CBCAE9CCCBE4C7C6E9CBCAEACCCBEACCCB0000000000002B2524DEBF
+ BDE9CAC7EBCAC7EECCCAF0CCCAECC9C5ECC9C6EECBC9E5C2C0E1BDBAE4BFBDE5
+ C0BDE3BDB9DAB3B0DEB5B2EEC5C3ECC2C0E1B7B5E5BBB8ECC2BFE6BBB9EAC0BE
+ EAC2BFE9C0BDEDC4C2E9BEBBE5B9B6DBAEABDFAEACEDBDB9EBB7B45F4A490000
+ 0000000091716FEBBAB7EEBDB8E9B6B2EEB8B6EBB4B1EDB6B2F2BAB7EBB6B2F3
+ BFBBF4C0BBE0ADA9DEA9A5E2ADAAF4C1BDF4C2BEECB8B4EEB6B2F0B3AEEFB1AC
+ EBAAA6EDACA8F3B0ACEEACA7EDADA8EFB1ABEBA6A2EEA6A1F4A6A1F5AEA9F5C2
+ BDF3A59EF6A69FF7C3BDF2A69FF4A199F39992F4948DB76D682D211F00000048
+ 3331BD746FB86C67643A37150C0B150D0C482D2C9D605B9D524DF9A199F9938A
+ F99D95F9A89FF9877F9C6C679A6A64473633000000150C0B643834BA7B746445
+ 41150F0E000000633F3DD78C86F4968EF09F98F4A59EF49B94F29F99F39A94F3
+ 9994F29A95F09C97EC9C97F2A7A2F2AEA9F0A9A5F3AAA5F2ABA6EFABA6F2B2AD
+ F3B5B1F2AEAAEFA8A4EDB3ADEBBEB9ECC2BFEABBB7ECBBB7E5B0AC0000000000
+ 00EDB3B0E7AEAB443534000000000000000000443534EDB9B6E0ADAADAA9A5DE
+ ADAAF2C3C0F4C4C1EBBEBAE3B6B4E5B9B6E4B8B6DCB3B1E5BAB8EDC3C0EEC3C2
+ EDC3C1E1B7B5DCB3B2EAC1BFEAC2C0E2BAB8E7C0BEE7C0BE967D7B1410105E4E
+ 4EECC6C4DFB8B74137360000000000000000007D6B6AEDCCCAE3C2C1EDCCCAE6
+ C5C3E1C0BEE5C3C2E4C3C1E2C2C1EBCCCAE2C3C1DEBFBEDBBDBBE4C6C5EBCCCB
+ 796867000000453C3CEDCECDEDCECC0000000000000000000000000000000000
+ 00000000151313473E3D7F6F6E9A8887B7A2A1EFD2D1EACFCDEED2D0EACFCDEB
+ D1CFCAB3B29483836056562C27270000002B2626796C6BB4A1A1605555141313
+ 0000000000000000002C2727B3A19FF0D8D7EED7D5E2CBCAD2BAB9E1C9C7D6BE
+ BBD8C0BFE0C9C7D5BEBDDBC4C3E2CBCBD7C0C0D0B9B8D9C1C0EFD7D6EAD2D0DE
+ C6C5E6D0CFECD6D4EAD2D1F0D9D8E0CAC7DAC5C4E4CDCCE4CECDD9C3C2E0CAC9
+ F0D9D8EDD7D5DCC6C5E7D1CFF6E0DFEED8D7ECD6D5EFDAD9F0DAD8F4DFDCECD6
+ D5ECD6D5E3CDCCEDD7D6F0DBD90000000000000000DAC5C3CEB9B8CAB6B4D7C1
+ C0F3DFDEF7E1E0D4BEBDD4BEBDE7D4D1EBD5D2D4BFBDD2BDBBECD6D5EFD9D8EE
+ D9D8D4BFBFD0BEBBD0BEBBD5C1C0DFCBCAD5C2C0CFBBBBD2BFBFD9C5C4DCC9C9
+ D2BFBED1BEBED5C1C0DAC4C3D6C2C08578760000000000002823239D8C8CD4BE
+ BDD7C0C0DEC6C6D7C1C0D1BAB9D6BEBDDBC3C3E1CAC7E9D1D0E7D0CFDBC4C3DE
+ C6C4D8C0BFD6BEBD6D6160131010B9A5A4BAA6A51411110000002A2524BDA6A5
+ D6BEBBD9C0C0D8BFBEDEC2C2EACECEEACFCEDBC0C0D6BABAD9BEBEE0C5C4DEC2
+ C1DBC0BFDABEBED8BBBBD9BEBDDEC3C2E7CCCBE5C9C9EACDCCE1C3C2DABEBDDC
+ C0BFDBBEBDDBBEBDE0C2C1E4C6C5B09997000000000000000000C1A6A4DEBDBB
+ DFBDBAE3C1BFDEB9B7D4B1ADD8B5B3DEBAB7D6B2B0D4B0ACD7B2AEE2BDBAE6C0
+ BED5AEACD7AEACECC4C1EFC5C3D6ACA9D7ADAAD9AEABD6AAA7D8ACAAEABFBBED
+ C1BFEFC3C0DCB3B1D8AEACD8AEACD9AEAAEDBFBBEFBEBA141010000000000000
+ 3F302FDEAAA7F0BDB9EDBDB8E7B5B2DFAAA7E6B0ACF2B8B5EDB3B0EEB5B2EDB6
+ B2DFA9A6DEA9A5E2ABA8F3BDB8F3BDB8F0BDB8EFBBB7F0B9B5E9ACA8E4A49FE6
+ A5A1EDAAA5E5A19CE6A19CEAA7A2E7A7A2E6A29CEBA19BF4A59FF3A9A3E9B6B0
+ EB9A94EE9F99EAB2ABED9B95D98C86482C2B000000603C39D28D878155522E1E
+ 1D0000002E1A19BB6660F57F76F49991F5938BF5786FF79289FB978EFB9B93FB
+ A89FF8827AF6AAA1F5B1A8F5ABA3F798909C56502D1A19000000623F3DD68D86
+ 7F4C47000000000000613B38D2948CF3958EF39E97F39791F2958EEE948DED96
+ 91EC9A94EA9D98EBA6A1EEA49EEEA39DF0A7A2E7A39DE6A7A2E9A6A1EEA6A1E7
+ A39EE4AEAAE4BFBAE3B8B3E5B5B1EEB8B4F2B8B4E6ABA72A1F1E000000EAB0AB
+ E1A9A541302F000000000000000000463736ECB8B5DCACA8DAAAA8DBACA8EBBD
+ B9F0C2BFE3B5B2E3B5B2DCB0ACD9ADABD9AEABDEB3B0F4C9C5F4C9C6E2B8B6DB
+ B3B1E5BBB9EBC2C0DEB4B2D9B1AEDAB2B08A7070000000957D7BEBC5C4CEADAC
+ 292222000000000000000000947E7DF3D0CEEDCBC9D7B5B4D7B6B5D8B7B6DBB9
+ B8E5C4C2E6C5C3E5C5C3E6C6C5D5B5B4D6B7B5E5C6C5E4C5C3ECCDCC96828100
+ 0000453D3CE2C3C1D2B4B30000000000000000000000001310106B5C5BB89E9D
+ DCBFBDD6B9B8DBBFBEE4C6C5E5CAC7D4B7B6D0B6B4E3C9C6E7CDCCDFC5C4D6BB
+ BADBC1C0EDD2D2DCC3C2D5BABA6E62602823230000005F5555CFB8B776696813
+ 1010000000000000000000292424BBA6A6D5BEBDD1B9B8D2BAB9CFB7B6D2BBB9
+ E1CAC9D2BDBAD0BAB9D2BDBDDEC7C6E5CFCDE7D0CFF2DAD9D7C0BFCCB5B4CDB5
+ B4E2CBCAEBD5D2EBD5D4D0BAB9D4BFBEEAD2D1E7D0CFCDB8B7CFB9B9D1BBB9CF
+ B9B8CBB5B4D4BEBBF0DBD9E1CCCACBB5B4CBB5B4D0BABAE7D1D0E6D2D1D9C3C2
+ D8C3C1CDB8B7C9B4B20000000000000000E0CCCACCB7B5CAB6B4D5C0BFF0DAD9
+ E6D1CFCBB6B4CEB9B7F2DEDCEAD5D2CDB8B6CDB8B7E0CBCAEDD9D9ECD9D8DBC7
+ C7D0BEBED0BEBEDECBC9ECD9D8DFCBCBD0BEBED1BFBFE2CECDE9D5D4D1BEBDD1
+ BFBEE2CECDECD7D7DAC5C5857676000000000000908281D0B9B8D5BEBBE7D0D0
+ ECD6D5D5BDBDD1BAB9D7C0BFDFC7C6E5CECCE7CFCFE5CECDD8C0BFD4BBBAD2BB
+ BADCC5C3D8BFBE9F8D8C272222BBA6A5E6CDCC413A3A000000131010C2ACAAE0
+ C6C5D5BBBAD7BEBDEAD0CFEACFCED7BBBAD4BAB8E1C5C4EDD2D0E5CBCADABFBE
+ DCC2C1E6CBC9DBC1C0DABFBFE4C9C7E6CACAE9CDCBDABEBDDBBEBDE3C6C5DEC1
+ C0D9BDBBDEBFBEE3C5C3756464423939141111000000584A4AD8B7B5E3C1C0E9
+ C6C5D5B2B0D2AEACE0BBB9F4CFCDDAB5B3CFAAA8E4BFBBF0CAC7D7B2AED1ABA8
+ E3BBB9F7CFCCE7BFBBD1A9A7DFB5B2EAC0BDD6AAA7D4A7A4E1B3B0EBBDB9DFB1
+ AED5A7A4DAADAADAAEABD8ACAAD9AEABB2918D0000003F3130000000140F0FE1
+ AAA6E9B2AEEAB3B1DEA8A5DBA9A6EBB7B3EFB9B6DFA6A2DEA39EDEA39EDFA4A1
+ E3AAA6EDB5B1F3B9B7EFB8B4F3BAB6EFB9B4ECB7B3E3B0ABE4AAA6EAA9A5EAA6
+ A2E39E99E59E99F2AAA5EBA5A1E5A39DEBA49DF6A8A3F4A29CE99D97EBB7B1EF
+ 9A94EB9C96956E6A0000002E1D1BD17A73B4625D2C1F1E0000002E211FBB6E69
+ F78A83F6837BF5766EF69B93F8958BF77A71F7847CF99D94FC988EF8A69DF77B
+ 71F7A9A1F8C1B8F7A197F69087F78179F8948CB9827B2D1D1C00000080504CD4
+ 857F462826000000150D0C9A625DF59891F5958DF3948DEC938CEC9690F2A39D
+ EDA59FEA9D97EA9C97F0A39EF2ACA6E6A7A1E69E99EC9E99EEACA8E3B5B1E4B9
+ B4E6B6B2E4AEABE2A9A4EEB1ADF0B3AEE2A6A241302E000000ECB1ACDCA39F40
+ 2F2E000000000000000000715756DBAAA7DBABA8DFAEABE1B1ADEABAB7F2C2BF
+ EEC0BDF0C1BEE4B6B3D8AAA8D9ACAAE3B6B4F2C6C3EDC2BFD9AEACDBB1ADECC2
+ BFE5BAB9D9B1ADDBB4B2CCA9A700000087706FEDC7C6F0CCCB43393900000000
+ 00000000006E5B5BD7B4B2EECCCAE5C2C0D4B0ADDCB9B8EAC7C5E9C5C4E4C2C0
+ EBCAC7EACAC9DFBFBDD4B4B3D4B4B3E0C1C0E5C6C5EECECC958181000000433B
+ 3AD4B4B3D0B1AE000000000000000000000000DEC0BED1B4B3D2B6B5E7CBCAE2
+ C5C4D1B5B3D7BAB9DFC3C2D6BAB8D0B4B3D7BDBBDEC4C2D6BDBBD6BBBAE1C6C5
+ E5CCCAD4B9B9D4B9B9DEC4C3E6CDCDA693922B26261412126E6261D1B9B77265
+ 65000000000000000000000000736867D8C0BFCEB6B5CEB6B5EBD4D1F0DAD9D5
+ BEBED0BBBADBC6C5ECD6D6EDD8D6ECD7D6F0DAD9E2CDCBCDB7B6CDB6B5E6D0CF
+ E9D1D0D0BAB9CDB7B6DFC9C6EAD2D1CFB8B8CDB7B6E9D4D2EAD4D2C9B3B1C9B3
+ B1E5CFCDF7E1E0D9C3C2C9B4B2D6C0BFECD6D5F5DFDEEFD9D8DFCAC9D7C2C1CA
+ B4B4C9B3B20000000000000000F7E2E0D2BFBDCCB7B5E9D5D2F4E0DFE6D2D1CC
+ B7B6DAC4C2F2DEDBD9C3C2CEB9B8D4C0BFD7C4C3E7D5D5E6D4D4E3D0D0D2BFBF
+ D0BEBEECD8D7EEDBDAEAD7D7D0BFBFD4C2C1EAD7D6ECD8D8D4C0C0D5C1C1EEDA
+ D9F0DADAECD8D7857676000000000000ECD5D5D0B9B8DCC5C4ECD5D4ECD6D5D6
+ C0BFD0B9B8E4CCCBE5CDCBE3CBCBE5CECDE4CCCBD5BDBBD2BBB9D5BDBBE2CAC9
+ E0C6C4D7BEBDB8A4A2131111CBB4B4E1C7C61210100000002B2626E9CFCDD5BB
+ B9D5BBB9F0D6D6F4D8D8D7BDBBD6BAB9ECD2D0EFD6D4E0C5C4D8BFBDEBD0CFEB
+ CFCEE9CDCCDABFBEDCC0C0E4C9C7E1C4C2D9BEBDE0C3C2E9CDCCE9CBCADABDBB
+ DABBBAE5C7C6443B3B947F7F5C4F4F00000013100FD8B8B7EDCBCBEFCBCAD7B4
+ B2D2AEABECC6C4F5D0CEECC5C3CFAAA7E0BAB7E4BEBAD4ACA9D6AEADEAC2C0F5
+ CDCBD4ACA9D2AAA7EEC5C2F4CBC7E6BBB9D2A8A5DCB1ADEABDB9D8AAA8D7A8A5
+ E7B9B6DFB1ADDCAEABD8AAA84235345E4C4AA58582000000000000CEA19DEBB5
+ B2E7AEABDCA5A2DCA5A2EEB8B4E5B0ACDEA7A4DEA6A3E4A9A6EFB2ADF4B4B1F3
+ B5B1F3B8B4F3BAB5F3B8B4EAB1ACE3ABA7E3ACA8EBB6B2EAB2ADECACA7E49E9A
+ E7A19BF4AAA6F5ABA6E69D98EAA49EF6AEA8F2A39DEA9690F3A39DF7C4BE452B
+ 29000000805D5AFBA199613A37000000150C0B9F6E6AFCA39AF99D95FB8E85F6
+ 827AF6766EF98C84FB968CF97F76F97A71F9A69CFC958BFBA79DF9786EFCAAA1
+ FBD7CDF99E95F88980F87B72FBA399F7A39AF5A299814A45000000472A27F69C
+ 9581534E000000000000643C39F7948DF4968EED948DED9C96F6AAA4F4A29BEC
+ 9C96E99B96F4ABA7F5B0AAE69993EA9D97F3B9B4EBC3BFE3B4AEF0BAB6EFB5B0
+ EFB1ACE09E9BE6A6A2EEB0ABDFA29D42302F000000EDB1ACDEA39F402F2E0000
+ 000000000000008A6967E1AEAAEFBDB9F4C3BFECBBB8F0C0BEF4C3C0F4C3C0EF
+ BFBBEDBEBAD8AAA7D9AAA8ECBFBDEABEBAE1B5B2D9ADABDCB3B0EEC3C2DBB3B2
+ D8B2B0E0B9B71410108D7674D7B4B2E0BDBA443A3A000000000000000000463C
+ 3BD9B6B4D5AEAEEDC9C7EBC6C4D4B1AED9B6B4DFBDB9E4C1BFEBC9C6E9C7C6E1
+ C1BFD7B6B5D4B4B3D4B5B3D7B7B6E9C9C7EECFCEE9CAC7000000443B3BD7B8B6
+ D0B1AE000000000000000000000000E1C4C3D2B7B5D8BBBAF0D5D4F2D6D5D4B9
+ B8D5BAB8F2D6D6F3D7D6E4CBCAD5BABAD4BAB9D6BBBAE7CDCCE5CCCBE6CDCCD5
+ BABAD5BBBADAC1C0DAC1C0DFC5C4EAD1CF796C6C0000003D3635D0BBB9CCB8B7
+ 131111000000000000000000453E3ECEB7B6CFB7B7EDD7D6EDD8D8D4BEBDCFB9
+ B9DEC7C6E0CAC9E5CFCFDAC5C4E7D1D0E5D0CFD1BDBBD0BAB9E9D2D1E1CAC9D1
+ BBBAE5CFCEEDD7D6E4CDCCCBB5B4D7C1C0F2DEDCF3DFDCCEB8B7C9B3B1E9D1D0
+ F4DFDED2BDBBC9B4B2E3CDCCF0DAD9F4DFDCE6D2D1DAC4C3E7D2D1CCB7B5C9B4
+ B20000000000000000F4DFDEDFCAC9CEB9B8F2DFDEF4E0DFDBC7C6D0BAB9EDD7
+ D7DFCBCACFBAB9D5C2C2EDD9D8E3D0CFE7D5D4EDDADAE9D7D7D4C1C1CFBBBBED
+ D9D8EEDBDBECDADAD0BFBFD5C2C1EBD8D7ECD8D8D4C1C1D5C2C3EAD6D6ECD8D8
+ E9D4D2857676000000453E3EE4CFCECFB9B8D8C1C0E7D0D0ECD6D5DAC3C1D0B9
+ B8E1C9C7E7CFCEE2C9C9E3CBCAE4CDCBD6BEBDD2BBB9D6BDBDE4CCCAE3CBCAD9
+ C0BFD2B9B87265642B2626E0C5C5B8A19F0000000000005E5252D6BAB9D1B7B5
+ EED2D1F3D7D6D7BDBAD7BDBAE9CECDEBD0CFDBC0C0DAC0BEEBCFCFEBCFCEE9CE
+ CCD9BFBEDCC1C0E7CCCBE0C3C3D9BFBDE1C4C2EACDCCE9CBCADABEBDDABDBAE3
+ C5C3000000CCB1B0B09796000000000000A48A89EECDCAF0CCCAE3BFBBD2ADAB
+ EDC7C5F7CFCDF3CDCACFA9A6D4ADABD4ADAAD6B0ACDCB6B3E3BBB9EBC3C0D0A9
+ A6D2AAA7EAC2BFF0C6C4E3B9B7D4ABA7DEB3B1E6BBB9D9ADAAD7ABA9EDC0BEEA
+ BBB8E7B8B5BE9391000000D1A7A5E3B4B1140F0F0000007B6361EEBEB9EDB9B6
+ E0A9A5DEA5A1EFB4B1E1A6A3DEA5A2ECB4B0EEB7B3F4B9B5F4B6B3EFB0ABF5B3
+ AEF3B2AEF0B3AEEAB0ABE3A9A5E3A9A5EFB5B1EAB3ADE9B4AEE5A8A3E6A19BEF
+ A6A1F0A6A1EA9D97E99C97F4AAA5EEA7A1EB9A95D98C87150F0E151110D07C76
+ D4958D2E211F000000150C0BDB756FFC9D95FC9E96FBAEA6FC9087F7837AF879
+ 70FD796FFD978DFD897FFC746AFDB7ADFE9287FDA99EFC7269FDA99EFDEDE3FC
+ 9B92FB8076FB837AFCB3A9F99E95F79289F69890BA726B150C0B150F0EDB817A
+ 9D605C000000000000472B29F0958DED9A94EEA19AF59F99F39F99EC9E98E9A2
+ 9CEFA59EF29E99E6A19BEBBEB8F0C4BFE6B2ACE3A8A3F0B0ABECA7A3EFABA7E0
+ 9D99E1A19CEBAAA5DF9D99443130000000F4B7B3E0A7A440302F000000000000
+ 000000997875F6C2BFF5C1BDF3BFBBECBAB6ECB9B7F0BEBBF3C1BEEFBFBBF2C1
+ BED9A9A6D9AAA7F2C3C1F2C5C2EEC2C1D9B1AEE5BDBAEFC7C5DBB5B4D9B4B244
+ 3A3A443A39E3BEBDD7B3B2736160000000000000000000141111D4B4B2EAC5C3
+ D4AEACDFB9B8ECC6C4D8B5B2D7B3B1D7B3B1D9B6B4E4C2C1E4C3C1DCBBB9D6B5
+ B3DAB9B7D7B8B6D5B5B3E0C0BFEED0CEDABAB8000000453C3CDEBFBDD2B3B200
+ 0000000000000000141212DEC1C0D2B6B5D5B8B8E1C5C3EED1D1D5BAB8D2B7B6
+ F0D6D6F3D7D7EFD5D4D5BBBAD4BAB9DCC2C1EED5D4EBD2D1EBD2D0DEC5C4D6BE
+ BDDCC4C4E7D0CFEAD1D0F0D7D7F2D9D7BAA6A5121010141212C1ADABD7C0BE3D
+ 3636000000000000000000121010B8A5A4EBD5D4ECD6D6D1BBBBCFB9B9E5CECE
+ E1CBCAE6D0CFE7D2D0EBD5D5E5CFCFD2BDBDCEB8B8D9C3C2D2BDBBE1CBCAEDD7
+ D6EDD7D6E0CAC7CBB5B4D0BBB9ECD6D5EFD8D7D4BEBBC9B3B1F2DCDBF3DEDBD0
+ BBBAC9B4B2E7D1D0F2DCDBF4DFDEE9D5D2F0DCDAF4E0DFD4C0BFC9B4B2000000
+ 0000000000F3DFDED8C4C3CEBAB9E6D2D1F0DCDBD0BDBBD5C2C1EDDAD9D5C3C2
+ D0BEBDD5C2C1EBD7D6E4D1D0DFCBCBECDAD9E3D0D0D0BFBDCFBBBAE0CCCAEAD6
+ D7E1CECED0BFBFD2C0C0DAC7C6E2CFCED2C0BFD4C1C1DAC7C7E5D2D1E3CFCF85
+ 78780000009A8B8BE1CAC9CFB8B7D7C0BFECD7D5EFD8D7D7C0C0D0B9B8D8C0BF
+ E0C7C7DBC3C3E1C9C9E4CDCBD8BFBFD2BAB8D5BDBBE4CCCAE3CBCAD7BEBDD2B9
+ B8D8BEBD2A2524A49090D1B6B5594E4D000000000000BAA2A1D0B4B3F0D4D0F0
+ D4D2D7BDBAD5B9B9DFC5C3DCC1C1DABFBFD9BFBEDEC2C2E5C9C7E3C9C6D8BDBB
+ DCC2C1E7CCCBDFC3C2D9BEBDE0C3C2E9CDCCE7CAC9DABEBBDABDBBAC96952B25
+ 25E9CAC9E9C9C7000000000000574949ECCAC7F0CCCAD9B5B3D0ABA9EAC4C2F4
+ CECBE9C2C0CFA9A6DFB6B3D7B1AED8B1AEEAC2C0EFC7C4ECC3C1D2AAA8D5ABA8
+ EAC1BFF0C6C4E5BDB9D5ABA8E4BAB8ECC2BFD8ADAAD8ACAAECC1BEEABDBAE4B6
+ B3574443292020E2B0ACDBA9A5140F0F000000413231E7B6B3E3B4B1DCADA9DC
+ AAA6EEB6B3E9ADAAE1A4A1EDB0ACEFB4B0F4B8B4E3AAA6E1A6A2F2B2ADF5B1AD
+ F4AEAAEDABA7E4A6A2E3A7A3EFB3AEF2B5B0EEB4AEE5ACA7E6ADA7F2AEA9F3A7
+ A2EFA29CE99A95EE9E99EB9D98D0928B150F0E150E0DDA8C86D2A69F150C0B00
+ 0000150E0EDA827BFB8C84FC8076FBB6ACFD9B93FD9E95FB857CFB7B71FE6D63
+ FE9B91FE9186FE6D63FFD0C5FF8B82FFABA1FF6D63FFA69BFEDED2FE988EFD79
+ 6FFC9287FDADA4FBA59BF9887FF89B92F7867ED89890150C0B150D0DD97A739C
+ 5853000000000000140E0DD08983ED968EF59E98F5A69EECA6A1EA9892F09A95
+ EDB1ABE6C1BAEAB8B3F0B6B1E5A59FE29C97EBA49EE9A49EE9A5A1E09C98E19E
+ 99E29F9ADF9E9A8E6865000000EDB4B0DEA6A240302E0000000000000000009A
+ 7875F6C1BEF6C1BDE1ACA8DAA6A3EBB8B5F2C0BDF4C2BFF5C2BFF3C2C0DBACA9
+ DBADABF5C7C4F3C7C4EEC5C2DAB3B1E5BFBDEFC9C6E0B9B7897170141111EEC9
+ C5E3BDBAA38686000000000000000000000000B49897F0CBC9EDC7C6D4ADADE4
+ BFBDF3CDCBDBB7B5DEB8B6E7C3C1DFBBB9E7C4C3E5C3C2D6B5B3D4B3B1EAC9C7
+ E5C5C3D4B4B2DABAB8F2D2D0F0D0CE000000463D3DDEBFBDD2B2B20000000000
+ 00000000453D3DE7CCCAD2B6B6D8BDBBEBCECDF0D4D4D4B9B8D4B9B7EACFCEF0
+ D7D5E2C6C6D6BBBAD6BDBADCC3C2EDD4D4EED4D4EDD4D2D8C0BFD5BEBDE3CBCA
+ E6CDCDE1C7C6EFD7D6F0D8D7D9C1C0D1B9B8453D3D131111BFAAA9D0BAB93F38
+ 38000000000000000000131010CFBABBECD6D6CFB9B8CFB9B8E1CACAEAD4D2EA
+ D4D4EDD8D7EDD7D6D9C4C2D0BABACFBAB9DBC5C5D1BDBBD1BDBBD8C1C0D8C1C0
+ D7C0BFCBB5B4CFB7B6E5CFCEE3CCCBCDB7B5C9B3B1F6DFDEF7E1DFCBB5B4C9B4
+ B2ECD6D4F6E0DFF6E0DFEED8D8F5E0DFEFDAD9CFB9B8C9B4B200000000000000
+ 00DAC6C5D0BDBBCEBBBAE1CECDE3D1D0D0BEBDD5C1C1F0DCDCD7C4C3D0BEBDDA
+ C7C6ECD9D8DBC7C9D4C0C0E0CCCBD7C4C4CEBBBBCFBBBAD4C0C0E1CDCDD8C4C4
+ D0BFBFD4C0C0DAC7C6E6D4D4D1BFBED2C1C0DFCCCBE7D5D4DAC7C78579790000
+ 00F2DBDBD5BFBECFB8B7CFB8B8ECD4D2ECD5D5D6BEBED0B9B8E0C9C7E3CACAE0
+ C7C7E4CCCBE5CCCBDFC5C5D4BBBAD2BAB8DAC1C0E1C6C6D5BBBBD2BAB9D9BFBE
+ 736666282222D1B6B5BEA6A5000000000000544949D0B4B3EACCCBECCECDD4B7
+ B6D4B8B5E3C6C5DEC2C1E0C4C3DABFBDDBC0BFE3C7C6DCC1C0D8BDBDE2C5C5E3
+ C7C6DBBEBED9BEBBE4C9C6E9CDCCE4C6C5DABEBBDABEBB5D50505D5151E5C6C5
+ AD9695000000000000000000DBB9B7E7C4C1D2ACAAD0ACA9DAB6B3E5C0BDD1AB
+ A8CFA9A7E6C0BBE6BFBBD1AAA8D6ADAAECC3C0EBC2C0DAB3B0D4AAA8DAB2AEEA
+ C0BED7ADABD8AEACEABFBDE5BAB8D7ABA9D8ACAAE7BBB9E3B7B4DAAEAB130F0F
+ A68280E0B0AC896A69000000000000000000DCA7A4DEA9A5DCA9A6DCAAA7ECBB
+ B7EEBBB7DFA7A4E3A8A5EBACA8E6A5A1DF9E9AE0A19CEFB2ADF0B4AEF2B0ABED
+ A8A4E7A19CE49F9AE7A6A2EFB1ABECADA8E6A7A2E6ABA5EFB6B1F3B4AEF3A7A2
+ EA9B95EB9994CE8581150E0D2D201FF8A59EDA8883150D0C000000150B0BD7A5
+ 9DF99F97FB9289FC847CFB837AFDA499FDAEA5FD897FFE7E73FF6E64FF958AFF
+ 968BFF6E63FFD6CBFF9286FFB6ABFF7A6EFFAA9FFFCEC2FF9489FF7369FFA69B
+ FE9E94FD958AFC9B91FC9188F9958BF79288D97F78150C0B472624F58B839D5E
+ 59000000000000452B29ED968EF3A59EF3A7A1EB928CEC9F99F3CAC3EABEB8E6
+ AEA9EBA9A4F3AAA5EFA6A1E49C98E7A29CE7A29CE6A19CE29C97EAA7A3E9A8A4
+ E0A59F8D6865000000E6ADA8DCA5A1402F2E000000000000000000E0A8A5EEB7
+ B3E2ABA8D9A39FD9A4A1E4B0ABEFBBB7F2C0BDF2C1BEEBBBB9DAAEABDAB0ACEB
+ C2BFEFC7C5E1B8B6DAB2B0DEB6B4EDC5C3C5A3A1130F0FC19D9BE0B9B6D9B3B0
+ 130F0F000000000000000000705D5BE1BDB9E1BDBADAB6B4D6B1AED8B3B0DAB5
+ B3D8B3B1D9B5B3E0BDBAD6B3B1E0BEBDDEBDBAD4B2B1D4B3B2F2D0CFEFCFCED2
+ B3B1D5B5B3F2D0CFF0CFCE000000463D3DD9BAB9D2B4B3000000000000000000
+ 423A3AEFD4D2D5B8B8D5B9B8E1C5C4DFC3C2D4B9B8D6BBB9DEC3C2D7BDBBD5BB
+ BADEC4C3DFC5C5D6BDBBD6BDBDDEC5C4EAD1D0D5BEBDD5BFBDDEC5C5D9C1C0D5
+ BDBDE7CFCDECD2D1D2BBBAD1B9B8E3CBCA433D3D141212B9A6A6D4BEBD403A3A
+ 0000000000000000002C2727DCC7C7D0BABACFB9B9E3CCCBEBD5D4EDD7D6EDD8
+ D6ECD6D6D4BEBECFBAB9D1BDBBEAD4D2D7C1C0CEB7B7D5C0BEE5D0CEEDD7D6CD
+ B7B5CDB7B5DAC5C4D2BBBACAB4B3CAB3B3E0CAC9E0C9C7C9B4B2C9B4B2DAC4C3
+ F2DBDAEBD5D4E4CECDEED8D7D7C1C0CAB4B4C9B4B20000000000000000D8C4C3
+ CFBBBAD0BEBDDBC9C7E1CECED4C0C0DAC6C5EFDBDBDAC7C6D2C0BFDBC9C7E7D2
+ D2DAC7C6D2BFBFD8C5C5E2CFCED9C5C5D4C0C0E0CCCAE1CCCDD6C3C3D5C3C2E5
+ D1D1E2CFCEE5D1D1D1BFBED1C0BEDAC9C7DCCACAD5C2C26D63632B2727E6D1D1
+ DBC4C4D1BAB9D4BDBBD8C0C0D9C3C1D5BEBDD6BEBDE3CAC9E0C9C7DFC6C4DFC7
+ C6E0C7C7DCC4C3E0C7C6D6BEBDD6BDBBDAC1C0D7BFBDD5BBBBD9BFBEC4ADAD00
+ 0000D1B7B6D9BEBD403838000000120F0FD2B6B5E4C7C6DFC3C1D4B7B5D4B6B5
+ DBBFBED9BBBAE6CAC9E7CCCADBBEBEDBC0BEDCBFBDDBBFBDE5C9C7DFC3C1DABE
+ BDDABEBDE4C7C6E9CCCBDEBFBFDBBDBADBBEBD2B2525AE9796E5C6C574646400
+ 00000000000000006F5D5CDFBBB8D6B2B0D4AEABDEB7B5ECC6C3DEB7B4D4ADAB
+ E2BBB9E4BDBAD5ACABD5ACA9DEB4B2EAC1BFE0B7B4DBB2B0D7ADABD7ADABD8AE
+ ABE1B7B4E0B4B2DBB1ADD7ACAADAAEABEBBFBDE7BBB8715A58282020E3B5B2EC
+ BFBA2A2120000000000000000000AD8582E4ADAADFA7A4E0A9A5F2BAB6F5BFBA
+ E5B1ACDEABA8DFA8A4E0A4A1E1A19CE5A29DF0ACA8E9A7A2ECABA7E7A8A4EBA8
+ A4EAA19CE69A96E79E9AE7A49EE7A6A1E9A8A3EDACA6F3B6B1F5BBB5ECA69FCE
+ 8681140D0D150E0DDA8C87DA958D150F0E000000150C0BD5ADA6F9847BFCD2CA
+ FD9990FD8B83FD7B70FEA59AFE958AFF9C92FF847AFF7C70FF7D71FFA297FF79
+ 6DFFC6BAFF998CFFC3B7FF897DFFB9ADFFBFB3FF9388FF867BFFC9BDFFAA9FFF
+ 867CFE9990FE7C72FCA89DF98A81F8867DBD625B000000814B47F9A19881524E
+ 000000000000452F2DEE9A93ED8D87EEB0A9F5CFCAF5C1BAEEADA8E99E99EC9F
+ 9AF2A6A1F2A8A3EEA49FEA9F9BE69E99EDA8A4F4B2ADF3B5B1EFB3ADEEB2AD8E
+ 6966000000EAAEAADFA5A140302F000000000000000000E0A8A4E0A7A4DEA6A3
+ DCA6A3E2ADA9E2B0ACE3B3B0EDBEBAE3B7B4DEB3B0DBB1ADDCB1AEE2B6B4E1B7
+ B4DCB2B0DAB0ACDBB1AEE7BFBB2C2423766160DEB5B4DEB6B43F343300000000
+ 0000000000282121DEB7B5EEC7C6EFCAC9ECC7C4D6B1AEDCB6B5E5C2BFE9C4C2
+ DBB7B5D8B5B4D8B6B4DFBDBBD8B7B5D5B4B2D9BAB8EFCFCDEDCCCAD2B3B1DBBA
+ B9EFCFCDE9CAC72B2524453D3CE5C6C5D6B9B7000000000000000000433C3BEF
+ D4D2DCC1C0D4B8B8D6BBB9D8BEBBE2C6C6ECD1D1E6CCCBD7BDBBD9BFBEEED5D5
+ ECD1D2D9C0BFD6BDBBDEC5C5EDD2D2D9C1C1D7BFBFD7BFBFD7C0BEDCC5C4E0C7
+ C6DBC3C3D4BDBAD1BAB9D5BEBDD8C2C12C2827141212D5BEBDD7C1C13F393A00
+ 0000000000000000423D3DD5BFBED5BFBFE7D1D0ECD6D5EAD2D2EFD9D8EED8D7
+ E2CBCBD4BFBFE0CBCAEFDAD9E3CECDCEB8B7D1BDBBECD6D5F2DAD9E3CECDD1BB
+ BAD0BBBAD5C0BFD2BDBBCEB9B7EBD5D4E9D2D1CCB7B5CBB4B3E2CCCBF4DFDEF0
+ D9D8E7D1D0F6DFDED8C2C0CAB6B4CAB4B30000000000000000D9C4C4D1BFBDD0
+ BFBDE6D4D4F0DEDCECD9D8DFCCCBE2CECED6C3C2D7C3C2D5C3C2E7D2D2E4D1D1
+ DAC7C6D9C6C5E0CCCBE6D2D2E3CFCEEBD6D7E5D1D1DAC9C7E3D0D0E2CFCEE3D0
+ CFE9D5D6D1BFBED4C1C1EBD6D6ECDAD9E1CDCD413C3B766C6CE3CECDD9C1C1DC
+ C6C5EFD7D7E0C9C7ECD5D5EAD2D0E6CECEE4CCCBE0C9C6DCC4C3E4CCCBE3CBCA
+ E0C7C6E6CDCCE1C9C7E4CBCAE4CBCBE4CCCBE0C6C5DBC1C0E0C5C4000000917F
+ 7FE3C9C7766868000000000000B19C9AEDD0CFEDD0CEE4C7C6E5C9C6EBCECCDB
+ BFBEE0C4C2E7CCCADEC1BFE1C3C3E7CBCAE3C5C5E6CBC9E4C7C6DEC1C0DEBFBE
+ E2C3C2EBCDCCE4C7C6DCBEBDE7C9C7000000EACBCAE7C6C62A24240000000000
+ 000000002A2323ECC9C6E9C5C3E5C0BEE4C0BEEBC5C3EAC5C2E7C2C0E3BDB9E0
+ B9B7E2BBB8DCB4B2EBC2C0ECC4C1DEB4B1E9BEBBEDC2C0ECC1BFEBC0BEECC2BF
+ E7BBB8E9BDB9E5B8B6EABEBAEDC0BEECBFBB141010927472E6B8B5B38E8C0000
+ 000000000000000000005F4A49ECB8B5F0BAB6F2B9B6F6BBB8F6BAB7F7BBB7EA
+ B0ABE5ADA9F2BAB6EFB9B5F4B8B4F4B4B0F2ACA7F2A9A5EBA59FEDA8A4F0AEAA
+ EEA8A4EDA29DEF9E99F2A59FF4ACA7F4B0A9F4B0AAF5B3ACECB1AA443230140E
+ 0DD98C87F89F982E1E1C0000000000009A5C57F58A82FBD1C7FD8078FDD4CAFE
+ 948AFE847AFF6E64FFB6ABFFB8ADFF9488FF8A7FFF766BFFB2A6FF9184FFB5A8
+ FF9F93FFD1C4FF9C90FFDFD1FFBFB2FF9286FFA89CFFBDB1FFA89CFFA99EFF8B
+ 81FFB7ACFE847AFC8A80FD7F75FD867E824A45000000DB8881F8968E2E1D1C00
+ 00000000007E514EF0CDC6F2C3BDF4B5AEF3A9A3ED9C96F0A19BF2A59EF0A49E
+ F2A49EECA19BEFA8A3EDABA6F2B3ADF4B5B1F0B4B0F0B4B0F4B6B298716E0000
+ 00F3B5B1E4A7A3453332000000000000000000EBB1ADEFB8B4EBB7B3ECB9B6F0
+ BFBBEBBBB9EBBEBAF6C7C4EDBFBBE4B7B4EDC0BDF3C4C2F4C6C3EFC2C0EABEBA
+ E3B8B5E9BEBA7B64632C2323EDC3C1EEC5C2967C7A0000000000000000000000
+ 00BD9B9ADAB4B2EAC3C1EEC7C6ECC6C5D7B2B0DCB7B5EDC9C6F0CCCAE7C3C1EC
+ CAC7ECCAC7EECDCBE4C3C2D8B6B5E5C5C3EFCECDE6C6C4D5B5B3DCBEBBEACAC7
+ EDCDCB403736433B3AE9CBC9E5C9C7000000000000000000453D3DF2D6D4E7CD
+ CCDAC0C0E5CBCBEFD5D2F0D6D5F0D7D6F2D7D6EACFCEE7CDCBEED5D5EFD6D5EF
+ D6D5EAD1D0EFD6D6EFD7D6E1C7C7E7D0CFE7CECEE2CAC9EBD2D1DEC5C4DBC4C3
+ E4CCCBDFC6C6E3CCCBDCC6C5C5B2B1141212413B3BDFC7C7C6B4B31412120000
+ 00000000000000887B7BD6C1C1DCC9C7E0CACAD8C2C2E3CECEDCC7C6E5D0CEEB
+ D6D5ECD6D6EAD4D2E7D2D0E7D1D0E5CFCEEAD2D1E9D2D1E4CECDDBC5C5D8C2C1
+ E7D1D0EDD7D6E6D1D0EAD4D2EBD5D4E9D4D2E3CDCCEFD8D8F6DFDEF4DFDCEED7
+ D7F8E2E1F0DBDAE6D0CFE3CCCC0000000000000000F2DFDED4C1C1D0BFBDEFDC
+ DBF0DFDEE6D4D2E7D6D4E9D6D6EBD7D7E7D5D4D8C5C4E7D4D2ECD9D8ECDAD8E6
+ D4D2DCC9C7E4D0D0E0CCCBE5D0D0EAD6D7EAD6D7EAD7D7DFCBCBE6D4D4E1CECE
+ D1C0BFD2C1C0E9D5D5EEDAD9ECD8D8443E3ED1C1BFF0DBDAECD5D5F2DAD9F3DA
+ DAE2CAC9F6DEDCF4DBDAEED6D6EBD2D1E3CACADFC6C5E5CECDE6CDCCE4CCCBE6
+ CECDE4CCCBE5CCCCE5CCCCE5CCCCE1C6C6DBC1C0E1C5C5000000928180E0C4C4
+ 8A7979000000000000796B6AEDD0CFEDD1CFECCFCDEBCECCEBCFCDDABEBDE7CB
+ C9ECCFCEEACDCBEBCECCEED0CFECCECCE7C9C7EBCDCCE7CBCAE5C7C6E4C6C5ED
+ CDCCEACCCBDFC0BE927E7D433B3AE9C9C7E0C0BF000000000000000000000000
+ 000000B49997EAC5C3E5C0BEE4BFBEE9C4C2E7C2C0E7C2C0EAC4C2EAC3C2EDC5
+ C3E7C0BDEFC6C4EFC6C4DAB3B0E9BFBBEDC2BFECC1BFEEC2C0EBBFBDE9BAB8EB
+ BEBBEBBEBAECBEBAEDBFBBB3908D141010E9B9B6DFB0AC2B2222000000000000
+ 0000000000002C2222EDBAB7F2BEB9EFBAB7F4BEB9F6BEB9F7BDB8F5B8B4F0B0
+ ABF4B6B2F2B5B1F4B8B4F4BBB7F3B9B4F0B1ACECA6A2EFA39EF0A59FEFA7A2ED
+ A7A2EFA7A2F2A29CF49D98F3A29BF5AAA5F3ACA67B565300000098726EF7AEA7
+ 64403D000000000000472D2BF5A49BF79289FC8A82FDD8CEFE8076FECDC2FF90
+ 85FF8379FF8E84FFA69AFFB6AAFF998DFF897DFFC7B9FFB3A5FFA598FFA799FF
+ E3D5FFB6A8FFFFFFFFC7B9FF9486FFD4C6FFC4B8FF9C91FFACA1FF9C92FF8E84
+ FF9085FE7B71FE8176FD8B82FDA299160D0C2E1B1AF69C94D98D860000000000
+ 00000000DAA7A2F6ACA6F6A29AF5A19AF2A19AF2A29BF3A29BED9D98EAA19CE6
+ A39DEBAAA5E7A8A3E9A9A4E4A6A2E7A9A4E7A9A4EFB1AB99706D000000F3B3AE
+ E7A9A5463433000000000000000000EEBAB6F2BEBAF0C0BDEEBEBAEEBEBAE6B7
+ B4E0AEABEDBDB9E2B2AEDCADAAE9B9B6EDBEBBEFC1BEEFC2BFECBFBBE6B8B6CD
+ A6A4141110CCA6A4E1B6B3D1AAA914111000000000000000000074605FD7B1AE
+ D7B1AEE3BDBBE6C1BFD7B2B1D5B0ADD9B4B2EAC5C3F0CCCAF0CCCAF3CFCCF2CE
+ CCF3D0CEEECDCBE4C2C1EDCCCBF4D2D0F3D4D1EECDCCEACAC7EFD0CEEFD1CF3F
+ 3736403838E1C3C1E2C5C4000000000000000000423B3AEFD4D2EDD0D0D8BEBD
+ E5CAC9EFD5D2EDD2D1EACECDEFD4D2EACFCEE7CDCCEED4D4EDD4D2EDD2D2E9CF
+ CEEFD6D5EFD6D6E5CCCCEDD5D4ECD2D2E9D0CFEDD5D4E9D0D0E7CECEECD4D4E6
+ CFCEEED8D7ECD4D4E6D0D0968787000000948685ECD6D5B4A4A3000000000000
+ 000000141212C9B6B6ECD7D7E9D4D4DBC7C6E3CECDE2CECCE3CECDE9D2D2E9D2
+ D2E5D0CFDFCAC7E2CCCCE1CCCBE9D4D2E9D1D0EAD4D2ECD6D5E4CECDECD6D5EB
+ D5D4E7D0CFE7D0CFEFD9D8F0DAD9E3CCCBE6D0CFF3DEDBE6D0CEDAC4C2F2DBDA
+ E6D0CFE4CECDE9D4D10000000000000000F0DEDCD6C3C3D2BFBFDCCBCBD9C6C6
+ D5C1C1ECD8D8F0DEDCF2DFDEEFDCDBE1CDCDE5D0D0ECD9D8EDDADAEEDADAE2CF
+ CEEFDBDBEFDBDAECD8D7ECDADAECDADAEAD8D8DFCCCCE0CECED5C2C3D2C1C1D2
+ C0C0DECBCAE9D5D5E4D0D0A99A9AEBD7D7EDD8D8D9C2C2DAC3C2E7D0CFD9C1C0
+ EDD6D5EFD7D6ECD4D1E6CFCDE2C9C7D5BEBDE0C9C6E0C7C6DCC5C3E3CAC9DBC3
+ C2D9C0BEE3CAC9E2C9C7DCC3C2D6BDBBDBC1C1000000938281E0C5C48D7D7C00
+ 0000000000433B3BEACDCBECCFCEEACDCBE7CBCAEACDCBDEC2C0E2C6C4EBCECD
+ ECCECCEACCCBEDCECDEBCDCCE7C9C7EBCDCBEACCCBE6C9C7E6C9C7EDCECDEBCC
+ CCE1C2C0413838947F7FEACBC98D79790000000000000000000000000000005F
+ 504FE9C3C0E2BDBAE3BEBBE5BFBDDEB8B6DFB8B6E9C2C0E5BEBBE4BDB9DEB6B3
+ EAC2C0ECC3C0D8B0ADDAB3B0E1B8B5E4BAB8E6BBB9E2B6B4E1B5B3EABEBBECBE
+ BBE6B9B6EABBB72B222279605EE6B5B2C1989500000000000000000000000000
+ 0000000000CC9E9CEBB5B3E0ABA7E1ACA9EDB8B5EFB9B5E5ADA9E1A6A2ECADA9
+ EDADA9EEAAA6E7A6A2E9A8A4EAACA8EAB2ADE6A9A4EEA8A3EE9F9BEA9994EA9A
+ 95EB9F99F2A7A1EE9B95EF948DCE837C00000060423FEFA7A1B7868100000000
+ 0000000000D7827BF6968DFBAAA1FC978DFD887EFFE1D6FF857BFFCABEFF9B90
+ FF887DFFE1D4FFD1C4FFAD9FFF9E91FFA799FFCBBBFFA293FFB1A2FFF6E7FFD8
+ C9FFFFFFFFCEBFFFA496FFF0E2FFCDBFFFC9BBFF988BFFBEB2FFA195FF8175FF
+ 7D72FE877DFEA499FD9187BF6F69000000BD7069F8968E655C59000000000000
+ 2E1E1DF69D97F59F99F7A19BF59D97F4A19AF4A7A1F2ABA6EFAAA5EAA6A1EAA8
+ A3E6A49FE3A19CE2A19BEBA8A4ECA9A4EFACA8D29995000000F3B3AEEDB1AC45
+ 3534000000000000000000E7B5B1EFBBB7EDB9B6E9B4B1EDB9B5EAB5B2EBB8B5
+ EEBDB8ECB9B7E4B3B1EDBDBAEFC0BEF0C1BEEFC1BFECBFBDEABDBA2C2322987C
+ 7BE7BDBAE1B6B44539380000000000000000002C2525F2CBC7DEB7B5D6B0ADDB
+ B6B4E6C1BFD5B0ADD8B3B1E9C4C2EDC7C5F2CDCBF4CFCDECC9C6ECCAC6F3D0CF
+ EFCECCE6C7C5E6C7C5F0D0CFF2D2D0F2D2D0EDCECEE7CAC7EDCECD423A3A443C
+ 3BEDCFCFEACECD000000000000000000413A39ECD0D0E6CBCAD7BDBADCC1C0E6
+ CBCADEC2C2D8BEBBDFC4C3E4CAC9DBC1C0DEC4C2E0C6C5EAD1D0E4CBCBEED6D5
+ EFD6D5ECD2D2EED6D5ECD2D2EDD5D4EFD8D7EED7D7EFD7D7EBD4D4E0C9C7ECD5
+ D4E7D1D1E1CBCAE6D1CF2B2727141212E7D1D1ECD6D5443E3E00000000000000
+ 00005F5656EDD8D7ECD6D6E7D4D1EAD5D4E3CECEE7D2D1E6D1D1E6D1D1E6D1D1
+ E6D2D1E9D4D2E3CFCEECD6D6ECD5D4EED7D7EFD8D7EFD9D7F0D9D8F0D9D8EFD9
+ D8E9D2D1E9D1D0E7D2D1D6C1C0D4BFBEE6D0CEDEC9C6DFC9C7E7D2D1D2BDBBE4
+ CECDE1CBCA0000000000000000E6D2D1DBC9C7DAC7C6D8C6C5D1BFBED4C0C0E7
+ D4D4ECD9D8EDDAD9EEDBDAEAD7D5E5D1D0E9D5D5ECDAD9ECD9D8E5D1D0EBD7D8
+ EAD6D6E4D0D0EAD7D7EBD9D9E6D6D6E1CFCEE6D4D4DECBCCD5C3C3D9C7C7E5D4
+ D2EBD8D8EAD6D6DECACAECD7D7ECD8D6E5CFCEDAC3C3EED8D6E4CCCCECD4D1EC
+ D4D2EAD1D0E5CDCCDAC2C1D2BAB9D7BFBEDFC5C4D9C0C0E4CCCADBC3C2DFC4C4
+ E5CCCCE7CDCCE6CCCCE3C9C7E1C6C6000000B09B99E2C6C59483820000000000
+ 00423B3BE4C9C7E7CBCAE3C6C4E7CCCAECCFCDEBCECCE5C7C6E6CAC9EACCCBE9
+ CBCBEDCECDECCDCCE7CAC7ECCDCBE7C7C6E7C7C6EDCDCCEECECDEDCECDEACBCA
+ 141111CFB3B1EECDCB413837000000000000000000000000000000000000E9C4
+ C2E9C2C1E9C3C2E9C3C1E5C1BEE4BEBBE9C2C0E9C2C0E7C1BEE5BDBAEEC4C1EE
+ C4C2E4BBB8E7BEBAEAC0BDDFB5B2E7BDBAEABFBDE0B5B2EABEBBEBBFBBE7BAB8
+ B18E8C141010EBBBB9E9B8B65D49470000000000000000002C22220000000000
+ 00987673F2BBB9E6B0ACE7B2ADEAB3AEF0B8B5EEB6B2EAB1ACE6ADAAECB2ADEE
+ B1ABF2B1ACEEAAA6EFA8A3EFA9A5E9A7A2F2B2ADF3B9B4F0ACA7EFA29CF29A95
+ F39C96F29F99F4A69F442C2A140C0BEE948DEFA29A2D201E0000000000006346
+ 43F6958CF8938AFD978DFDA69CFE9A90FF897FFFF3E7FF9C91FFC9BDFFA598FF
+ 8D80FFD5C6FFD9CBFFB4A6FF9889FFE0D0FFA898FFC9B8FFFFFDFFFFF5FFFFFF
+ FFCBBBFFD8C9FFE5D7FFB9ABFFC5B7FFEBDCFFA79AFF9084FF887DFF8E84FFA9
+ 9EFE8B82FD9287FDB0A62E1917483734F9DCD4DBA59D00000000000000000080
+ 504CF49892F79F98F5A59FF5ACA6F4ABA6F4ACA7F2ABA6F0A9A4EAA39EE49E99
+ E49D99E59F9AEDA8A3E9A39EEAA9A5EBADA9000000EFB8B4ECB7B34536350000
+ 00000000000000E4ACA8EDB6B3EDB6B2ECB5B2ECB7B4EBB6B2EDBAB7EEBBB8ED
+ BAB8EAB8B6EDBDBAEEBEBBEEC1BFEDC1BEEBBEBB5E4C4B433736EEC4C1EBC1BF
+ 937976000000000000000000000000D4B2AEF3CCC9EFC9C6DCB6B4DAB5B3DBB7
+ B5DEB8B6EDC7C4ECC6C4DEB9B6E2BEBBF0CDCBF0CDCBEECBC9EECCCBE7C7C5E5
+ C5C3E9CAC7EDCDCDEACDCBEDCECDEDCECEE9CBCAEACDCC403938433C3BEED2D1
+ EFD2D1000000000000000000443D3DEDD2D1E4C9C7DABEBEE7CCCBEACECDEACE
+ CDDBC1C0EBD0CEE5CBCADBC1BFE4CAC9E1C7C6EAD0CFE6CDCCEFD6D5EFD7D5EF
+ D6D5EED6D5E9D0CFEDD5D4EED7D5E7D0CFEAD1D0EAD2D0E9D1D0E7D1D0DCC5C4
+ DFC7C6EBD4D2CEB8B8000000766B6BECD5D5CDB8B80000000000000000000000
+ 00CFBABAECD7D6E6D1D0E6D1D0EAD4D2EBD5D5ECD7D7EDD8D8ECD7D6EAD6D5EA
+ D5D5E4D0D0E9D4D2E4CDCCEAD2D1EAD2D0EBD5D4EDD7D6ECD6D5EDD7D6E1CBCA
+ E5CFCDE5D0CED4BFBED4BFBED5C0BFD4BEBDE9D2D0F2DCDBD8C1C0CDB7B6D0B9
+ B80000000000000000F0DEDCDCC9C7ECDAD9EDDAD9E6D4D2ECD7D7EFDBDAEFDC
+ DBEDD9D8E9D6D5DECBCAE2CECDE2CDCDE9D5D4E9D6D5D9C5C5E9D6D5EBD8D8EA
+ D6D7EAD6D7EAD8D8E6D5D4E4D1D2E5D2D2E4D1D2E6D4D4E7D6D7E4D1D1EBD7D8
+ ECD9D9ECD9D9F3DEDEF3DEDCF0D9D9E2CBCAF3DBDAEED7D6F0D9D7F3DAD8F0D8
+ D7EED6D4EDD4D4E0C7C6DFC6C5E6CDCCE6CDCCE6CECDE1C7C6E1C7C6E2C9C6E5
+ CCCCE5CCCAE0C5C48B7C7B141111E0C5C4D6BDBA5A504F000000000000433C3B
+ EACECCEBCFCEEBCECCEBCECCEDD0CEEDCFCEECCFCEEACDCBEED1D0EFD1D0EFD1
+ CFECCDCCE9CBC9E7C9C7E3C4C2E3C4C3EDCDCBEECFCDEECFCDB49A9A2C2525EE
+ CECCEECBCA1412110000000000000000005E4F4E000000000000796564E7C2C1
+ E9C4C2E9C3C1E5BFBEE6C0BFE9C1C0EBC3C1E9C1BFE7C0BDE9BFBDEBC0BEE2B7
+ B5EAC0BDEDC1BEE4B8B6EBC0BDECC0BDE5B9B6E9BDB9EBBFBBEBBEBB4437365F
+ 4D4CECBEBACEA5A200000000000000000014100FEEBBB7000000000000453534
+ F2BAB7EDB5B1EEB5B1F2B7B3F0B6B2EEB4B1EDB3AEEEB4B1EDB2ADF0B4B0EFB3
+ AEEFB3AEF3B3ADF2AEA9EEA7A2F3A7A2F4A8A3F3ABA6F2B0AAF3B4ADF3A7A2F4
+ 9A95BA726D000000805653F99E97BD6F69000000000000000000DB9D96F8C3BA
+ FCA49BFD958BFE948AFFA297FFA99DFF988CFFFFFFFFBDB0FFC6B8FFB0A2FFCC
+ BDFFF2E2FFCFBFFFB8A8FFFFEEFFB19FFFFCE9FFFFFFFFFFFFFFFFFFFFCBB9FF
+ FFFFFFFFF4FFEEDFFFC1B2FFAEA1FFA799FF9689FF9D91FFBBB0FF9488FF9A90
+ FE9C92FD8A819F9E9C000000D88E87F9958C633D3A000000000000150D0DF5A3
+ 9CF5A9A3F5AAA4F5ABA5F3A8A2F3A7A2F2A59FF3A6A1F0A59EE79B96E79D99E6
+ A29DE7A8A3E4A8A4E5ADA9E6B0AB000000EBB2ADE5AAA6443332000000000000
+ 000000EAB0ABECB3AEECB3B0EBB3B0E2ACA9E0AAA8EAB6B3ECB9B7E5B3B1E2B1
+ AEE3B3B1E7B8B6EBBDBAEBBEBBB1918D141010CDA7A6EBC2C0CDA9A700000000
+ 000000000000000074605FECC4C2EFCAC6EFC7C6E5C0BEEAC5C3EBC7C4ECC9C5
+ F3CECCEECAC7EAC6C4E4C0BEEAC7C5F2CECCEECBC9E5C3C1E6C6C4E3C4C3E6C7
+ C6EBCCCBE5C7C5E6C9C7EECFCEEECFCEEACDCC3E3636413939EBCFCEECCFCE00
+ 0000000000000000443D3DEED2D1EACECDE6CBC9EFD4D1EFD2D1EED2D0DFC3C2
+ ECD0CFE4C7C7DEC2C0DCC0C0DBC2C0DAC0C0DCC2C2E9CFCDE1C7C5E3CAC9E9D0
+ CFDCC4C3E4CCCBEDD5D4ECD2D2E6CECDE1C7C7E6CFCEEDD6D6EAD2D1E9D1D1ED
+ D6D4EDD5D42B2727141313ECD6D6ECD6D5443E3D0000000000000000005F5656
+ EAD5D4DFCAC9DAC5C5DCC7C6E9D4D2EDD8D8EDD8D8EAD5D4E7D2D2E6D1D2E5D1
+ D0E9D4D2E4CFCEE5CFCEE6CFCEE4CECDE4CDCCDCC5C4E5CFCDE4CDCDE9D1D0E7
+ D1D0E3CDCCDEC7C6E4CFCDE1CBCAEBD4D1F3DEDCEDD7D6E1CBCAF7E1DF000000
+ 0000000000E9D6D5DAC6C6E5D2D1F4E1E0F2DFDFF0DEDCF0DEDCF4E0DFF3E0DF
+ E7D5D4D5C2C1E5D1D0EDD9D8EBD7D7E9D6D5E3D1D0E3D1D1EBD7D7ECDADAECDA
+ DAEBD9D9E7D7D7E9D6D7E4D2D2E3D1D0E6D5D5E5D2D2E0CECCE4D1D2DECACAE6
+ D2D2F3DCDCF4DFDEF0DAD9E4CECEF3DBDAF3DBD9F0D9D8F2D9D8EDD5D2E6CECD
+ EDD5D4E9D0CEE5CDCCE6CDCDE5CDCBE6CECDE7CECCE5CCCBE1C7C5E4CBCAE4CA
+ C9E2C7C62A24245B5150E3C9C7D6BBB92B2525000000000000443D3DEACFCDEC
+ D0CFEBCECCEBCECCEBCECCEDCFCEEFD2D0EACDCBECCECCEDCFCEEED0CEEBCDCB
+ EDCECEEFD0CFE5C6C4DCBEBDEBCCCAEDCDCBECCCCA7A69685E504FEBCAC7B499
+ 980000000000000000002B2423EAC5C4141111000000141111DFBAB8E9C3C2E9
+ C3C2E5BFBEE3BDBAE3BBBAE5BEBBE6BFBEE6BFBDE5BBBAE6BEBBE0B6B4EBC0BD
+ EDC1BEE1B5B2EBBEBBECBFBBE6B8B6E2B5B2E5B7B4CAA19D000000CCA29FEBBB
+ B85C49470000000000000000007A605FF0BDB8433534000000000000F2BAB7ED
+ B5B1F0B6B3F2B7B3EFB4B0EFB3AEEEB1ACF0B3AEF0B3AEF3B5B1F3B4B0F4B5B1
+ F3B3AEF2B2ACECACA7F2B0AAF3ACA7F3A7A1EE9E98F2A29BF3A8A2F4B1AA4833
+ 312E1E1CFB948CFB97902E1E1C0000000000002E1B1AFDABA2FCADA5FDBEB4FE
+ C1B6FF958AFF998EFFA99DFFC2B6FFAA9DFFFFFFFFECDCFFD6C6FFBAABFFFFFF
+ FFFFF8FFDAC7FFF9E6FFE4D0FFFFFFFFFFFFFFFFFFFFFFFFFFD1BFFFFFFFFFE4
+ D2FFDCCCFFECDCFFC6B7FFA697FFB0A3FFCABDFFA498FFB6AAFF8A80FFC9BEFE
+ EBE0FCB2A8160D0B814C47FB948BDB7E760000000000000000007E5652F3A49D
+ F5A49DF5A49DF4A29BF3A19BEF9E98F4A59FF4AAA5F3AEA9F3B5B0F2B8B3F0B4
+ B0E6AAA6E7AAA7EBADA8000000EEAEAAE4A5A1433230000000000000000000E6
+ ABA8E7AEAAEBB3B0EBB4B1E5B1ADE0ACA9EBB9B5ECBAB7E7B6B4E3B3B1E9BAB7
+ E5B7B5E9BBB9E5BAB71410108E7473E6BFBDE9C1BF2B23230000000000000000
+ 00413736DEB8B6E1BAB9E0BAB7E1BBB9E3BFBDEECAC7EECAC7EFCAC9F4CECCEE
+ CAC7EECAC7E4C1BFE2BFBDF0CDCBF2CECCEECCCBEBCBC9E6C9C6E2C2C1EDCECD
+ EDCDCDE9CAC7EACBCAF0D4D1F2D4D2433B3B423A3AEDD1D0EACDCC0000000000
+ 00000000443C3BEED2D0ECCFCEEBCDCCF0D4D2F0D5D2EED2D1E9CDCCEDD0CFE7
+ CCCBE5CACAE9CDCCE9CECDDEC4C3E4CAC9E9CECEE3CAC9E7CECCE9D0CFDEC4C4
+ E7CECCEED5D5EED6D5EAD2D2E5CECDE3CDCCECD4D4E2CAC9E0C7C7E5CDCBE5CD
+ CBAC9A990000008D7F7FECD4D4B3A2A1000000000000000000000000ECD5D5E9
+ D2D2E3CDCDDFCAC9DBC6C6E6D1D0E7D2D2E2CECDE5D0D0E3CFCFE5D1D0EBD6D6
+ EDD8D7F0DAD9F3DCDBF2DCDAF0DAD8E9D2D1ECD6D5E9D2D1EDD7D6EDD7D7ECD7
+ D6E9D4D2EDD7D6ECD6D5EAD5D2F8E2E0F7E0DFF6DFDEFCE5E400000000000000
+ 00F0DEDCE6D2D2F0DEDCF6E2E2F5E2E1F0DEDCF2DFDEF0DEDCF4E0E0D8C5C4CE
+ BBBAD8C3C3E9D5D4EFDBDAEEDAD9E4D1D1DCCACADFCCCCECD9D9ECDADAEBD9D9
+ E9D7D7EBD9D8EAD8D8EAD8D8EBD9D9DFCCCDD2C0C0D4C0C0D2BFBFD2BEBEE1CB
+ CCF2DBDAE9D1D0DCC5C4ECD5D4E0C9C9E6CFCEECD5D2D6BEBDCFB6B5D5BDBBEC
+ D1D0EAD1CFEAD0CFE7CFCEE6CDCCE7CECDE7CECDE7CDCDE7CFCDE9CECE786A69
+ 141211C6AEAEE2C6C5BBA5A4000000000000000000938180DFC3C2EACFCDECCF
+ CDEACCCCE9CCCBEBCECCE7CBC9D9BBB9D4B6B5D8BAB9EACDCBE7CAC9EDCFCEEE
+ D0CFE7C9C7E3C3C2E9C9C6E5C5C4DEBEBB292222AB9290E4C1C0736260000000
+ 000000000000897372E9C4C35E4F4E000000000000A78A89E4BFBDE5C1BFE5C0
+ BEE5BFBFE4BFBDE6C0BFE4BEBBE9C2BFEAC2C0EAC1BFE5BBB8EDC1C0ECC0BEDA
+ AEACE5B9B6EBBEBBE5B7B4E0B3B0E9B9B65F4B4A5F4B49EBB9B7ECBBB8141010
+ 000000000000141010F2BDB9F3BEBA977573000000000000B78D8AE6B1ACEDB6
+ B2F2B7B3EFB4B0EDB2ADEFB2ADF0B2ADF3B2ACF3B2ADEDABA7F4B1ABF4B1ABED
+ ABA6E7A5A1EBA8A3EEAAA5EDAAA5EAA69FEBA19BF3A29BD28581000000805653
+ F7B4ADBD7F7A0000000000000000009E625DFC867EFC8D84FEABA2FEB3A8FFD1
+ C6FFB9AEFFA99DFFB6A9FFE4D6FFC1B2FFFFFFFFFFFFFFEDDBFFC3B1FFFFFFFF
+ FFEBFFD4BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFF5E3FFB9A9FFC5B6FFDBCCFFB8AAFFDACDFF9084FFFFFFFFCFC4FF9388FE91
+ 86663A362E1A18FC9991FCA89F2E1F1D0000000000002D1D1BF59B95F59C95F6
+ 9D97F5A19AF3A7A1F2ACA7F4B7B1F3B4AEF2B0AAF3B0AAF2AEA9F0ACA7E5A29C
+ E29F9AE5A39E000000EEACA8EBA9A543302F000000000000000000EDB4B0EDB5
+ B1EEB8B4EFB9B6ECB8B5E1B0ACECBBB8EDBEBAE9B9B7EABBB9EABDBAE9BDBAEA
+ BFBD5C4B4A413635E1B8B6E3BDBA796564000000000000000000141111CEAEAB
+ EBC5C3EDC7C5EFC9C6ECC6C5E7C3C1EECAC7F2CBC9F4CFCCF5D0CDF2CCCAF2CC
+ CAE9C4C2DBB8B5F0CDCBF3D1CEEECCCBEBCBC9EBCCCAE6C5C4EFD0CEEFD0CFED
+ CECCE7C9C6EDCECDEFD1CF786867433A3AEACDCCE5C9C7000000000000000000
+ 433B3BECCFCFECCFCEEBCDCBEFD1D1F0D4D2EFD2D1EED1CFEDD1CFEACECEE7CC
+ CAECD0CFEACECDE3C7C6EACECDEDD1D1EBD1D0EBD1D0EDD4D1E5CCCBE7CECDEA
+ D2D2EDD5D5EBD4D2E6CECEE3CDCCE7D0CFE2CACAEDD4D4E6CDCDE7CFCEE7D0D0
+ 141212403A3AE7D1D0E9D1D1141212000000000000000000968787E9D2D2E3CD
+ CDDBC6C6DBC6C6E6D1D1E6D1D1E2CFCDE7D2D2E6D2D2E1CCCCEDD8D8EAD5D4EC
+ D6D6EBD5D5EDD9D8F0DAD8EDD7D7ECD6D5E4CECDECD6D5EDD7D7ECD6D5E6D0CF
+ ECD6D5EFD9D8EED7D6F6E0DEECD6D4EFD8D7F8E2E00000000000000000DFCCCB
+ D2C0BFDFCCCBF2DFDEF0DEDCEBD8D6ECD8D6EEDAD9F2DFDED5C1C0CEBBBAD5C1
+ C0E9D4D2E9D4D2E7D4D2E0CCCCDCC9C9D9C5C5E6D5D4ECD9DAE9D7D7E5D5D5E9
+ D7D7E7D6D6EAD8D8ECDAD9E3D0D0D5C2C3E3CFCFDAC7C6D2BEBED4BEBEEEDAD8
+ F3DBDAD8C1C0F0DAD8E6CFCEECD5D5EFD8D7D2BAB9D0B6B5D0B8B7DFC6C5E5CE
+ CDEAD0CFE5CCCBE2C9C7E4CACAE2C9C6E3CAC9E3CAC7928181000000928180E3
+ C9C6D9BFBE564C4B000000000000000000A79291D6BAB9DFC3C1ECCFCDE7CCCA
+ DFC1C0DEC1BFD7B9B8D5B6B5D2B6B3D5B7B5E5C6C4DCBFBEDFC1BFE7CAC7EBCC
+ CAEACAC7EDCDCBEDCCCAECCBC9000000EECCCAEECCC92C252400000000000000
+ 0000D8B6B4E9C5C3CAABA9000000000000413737DFBBB8E6C2C0E6C1C0E6C1BF
+ E6C0BFE7C2BFE9C2C0EAC3C0EBC3C1ECC3C1EAC1BFEDC3C1EEC3C0EBBFBBECC0
+ BEEEC1BFEEC1BEE6B8B5ECBDB9000000C99D9BE7B6B37C626000000000000000
+ 00007B5E5DF2B9B7F3BBB7F0B7B40000000000005F4846E5ACA9E9B0ABEEB4B1
+ EBB1ACE5ABA7EDB2ADECB0AAF2B3AEF3B2ADEDAAA6F0ABA7F5AEA9F3AAA6ECA6
+ A1F2AAA5F5ACA7F4ACA7F3ABA5F0A9A4F4ACA67E5955150F0EF5A199F8999365
+ 3E3C000000000000000000FB8076FC8A81FD9F96FE8279FF897FFFB8ADFFCEC2
+ FFFEF0FFBEB0FFC9BAFFF5E5FFDFCEFFFFFFFFFFFFFFFFF0FFFFFFFFFFFFFFFF
+ F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE5FFFFF4FFD7C4FF
+ E2D0FFEFDFFFD2C3FFCBBDFFFFF3FFFFFFFFB2A6FF968BFF8A80FE837AA1625C
+ 000000FBA59CFBA29981514D000000000000000000B7736FF4A59EF6B2AAF6B4
+ ADF4AEA8F3AAA5F5A9A4F3A7A2EBA19BE79E99EFA5A1EFA6A2E49C98E29C98E4
+ A19B000000EEADA9E7A9A542302F000000000000000000EDB6B2EBB5B2EBB7B4
+ EDBAB7EBBAB6E1B2AEEDBEBAEDC0BDE7BAB7EBBFBBECC0BEECC2BF967C7B1411
+ 10EAC1BEE7BFBDB19392000000000000000000000000947D7CEAC5C4EAC4C3EB
+ C6C3EBC5C3E9C3C2E1BDB9EEC9C6F2CCCAF4CDCBF4CFCCEEC9C6F3CECBF0CDCA
+ EDC7C5F3CECBF0CDCBE7C5C4EECCCAEFCECCEBCAC7EECECCEECECCEBCCCBE7C7
+ C5EBCBCAEFD0CE958180433B3AEBCDCDEBCECD000000000000000000433B3BEA
+ CDCCECCECDE2C5C3E9CCCAEDCFCFEBCECDECCFCDECCFCDE7CBCBE7CBCAEACDCC
+ E7CDCBE5CACAEACECEECD1D0E9CFCEE7CDCCE7CFCEE4CCCBE6CECCECD5D2EDD5
+ D5EAD2D2E6CFCFEAD2D4ECD2D4E9D1D0EDD6D5E9D1D0ECD2D1EDD6D55F565600
+ 0000ECD6D6ECD7D65F5655000000000000000000443D3DE7D4D1EAD5D4E6D0D0
+ E4CFCFEAD6D6E9D5D5E2CFCEE7D4D4E5D0CFD6C2C1DBC6C5D8C3C2DFCAC9E0CB
+ CAE5D0CFEBD6D5EED8D8EDD7D7E1CBCADEC7C6ECD7D6E6D1D0E3CECDE7D1D1EC
+ D7D6E6D0CFE5CECDDAC3C2CDB7B6D2BFBD0000000000000000DECBCACFBDBBD2
+ C0BFD6C3C2D7C3C3D9C5C4E6D2D1F4E0E0F5E1E0E1CECDCEBBBAD7C3C2E9D4D2
+ EDD9D8E9D5D4DCCACADCCAC9DFCBCAECD8D8EDDBDBE1CFCEDCCBCBE3D1D0DAC7
+ C7DFCBCBECD9D9EDDBD9EBD7D7EDD9D9E5D1D1D2BEBED1BDBDEAD5D5F3DBDADC
+ C5C4EDD6D6E7D0CFE9D2D1ECD4D2D7C0BED0B6B6D2BAB9E5CCCBE6CECEE6CECC
+ DCC3C2DCC3C2D6BEBBDFC5C4E3CAC79382810000006E605FD8BEBDE7CCCBCCB4
+ B3000000000000000000131010E4C7C5E3C6C5E3C6C5E5C7C6DABEBDDCC0BEE0
+ C3C1EACCCBDCBFBED1B4B3D6B8B5E9CAC9E7CAC7E2C3C2DCBDBBDCBDBADEBFBD
+ EECFCDF0D0CE95807F3F3636DFBDBBE0BDBB0000000000000000003D3332DFBB
+ B9EAC6C5E9C5C45E504F000000000000C7A7A6E6C2C1E6C2C1E4BFBDDCB6B5E0
+ BAB7E1BBB9E3BDB9DBB4B3DBB3B1E0B6B4E4BAB8E0B5B2DBB0ADE6BAB7EBBEBB
+ EABDB9E3B5B279605F2A2221DAABA8DBABA8130F0F000000000000140F0FE9B4
+ B1F0BAB7F3BBB8E6AEAB4231300000002D2222F3B5B2EFB2ADEAABA8EBABA8EB
+ ABA8EDACA8E7A8A4EDACA8F4B3B0EFB1ABF3B2ADF5B2ADECA9A4EAA59FEBA39D
+ F4A9A4F4A6A1F3A59EEFA39CF0A39D2C1F1D624340F5A7A1F7ABA4160F0F0000
+ 000000002D1A19FBA89EFDB5ABFD877EFF796FFF9F95FF9185FF9E93FFD9CCFF
+ FFF2FFFFF2FFE2D2FFFFF4FFFFF3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBFFFFF3FFFFF4FFFF
+ F6FFB5A6FFFFFFFFEADBFFB0A3FFA195FF9185FFA59AFFA69CFEA4990000009D
+ 5C56F98E87BD6B65000000000000000000604340EEA199F3A29BEF9C97EF9D97
+ ED9B96EF9D98EE9D99EA9B96EB9E99EFA6A2EFA8A4E7A49EE3A29DE3A4A10000
+ 00EDB0ABEBAEAA423130000000000000000000EAB5B1E1AEABE3B3B0E7B7B4E5
+ B6B3E0B2AEEBBDB9EEC1BFEDC0BDECC1BEEEC2BFCFA9A7141010AE8D8DE4BAB8
+ E4BBB9141010000000000000000000413736E7C1BFEAC5C3EAC4C2EAC3C1E0B9
+ B8E4BDBAEAC2C0EBC3C0DCB5B3D9B3B1E5BFBDE1B9B7F3CCCAEFC9C6E9C3C1EE
+ CAC6E7C3C1E3BFBEE2C0BEE5C1C0E2C0BFEECCCBE9C6C5E3C2C0E2C1BFEECDCB
+ F0D0CE968181403838E3C3C3E3C5C4000000000000000000433C3BDFC1C0E1C4
+ C2DEC1C0E6CBC9E7CBCADBBFBEE0C3C3EBCECEEACECEE4CAC7DBC0BFE4CAC7EA
+ CFCEE3C9C7E2C7C7DEC4C3DEC4C3E4CCCCE1C9C9DCC5C4DEC6C5E5CECCE3CCCC
+ E9D1D1ECD4D4EAD2D1E5CDCDDEC6C5D8C1C1DAC2C2ECD4D4948685000000A898
+ 98E3CDCCAE9E9D000000000000000000000000EAD5D4EAD5D4DAC5C4D6C1C1DB
+ C9C9E2CECEE0CCCBEAD6D6EAD5D5D8C3C2D4BFBED8C3C2E0CBCBE2CDCDE2CDCD
+ E5D1D0DCC7C6D9C3C2DFCAC7E2CCCBF0DBDAE7D4D2D7C2C1E7D1D0F2DCDBF0DA
+ D9ECD6D5F2DCDBE7D2D1F0DAD90000000000000000F6E3E2DFCCCBD1BFBECEBA
+ BAD2C0BFCFBBBACFBBBAF2DFDEF6E1E0E7D4D2CEBBBACEBABAD7C3C2E5D1D1D6
+ C2C2D0BFBFD0BEBDD8C4C3E6D2D1D9C5C5D2C0C0DAC7C7D7C4C4D1BFBFD1BFBF
+ E5D2D2EDDADAE1CECCD7C4C4D2BFBFD2BFBED2BEBEE4CFCFE4CFCFD2BBBAD9C2
+ C1DCC5C4E7D0D0E9D1D0DBC3C2D0B6B6D5BDBAE3CBC9E4CCCAD1B8B6D0B7B6D2
+ BAB8D2B8B7D4BAB9423B3A000000746766CFB6B4CFB6B4BEA6A5141212000000
+ 0000000000006C5E5DD0B4B3E9CCCBEDD1CFD7BAB8D0B4B2D0B4B2DCC0BFEFD1
+ D0E9CBC9D1B3B2DABBBAF2D5D2F2D4D1DFC0BED2B5B3D5B7B5D4B5B3D9B9B7EF
+ CFCD42393985706FCFADAB836E6C000000000000000000856F6EE3C1BFECC9C6
+ E9C6C4C2A4A300000000000072605FE6C2C1E6C2C1DAB5B4D8B3B1D9B4B2DEB8
+ B5D8B2B0D8B2AEDAB2B0E2B9B7DFB5B3D7ACAAD7ABA9E0B5B2E0B4B2E3B6B3E3
+ B6B4141010A88683D8A8A6715856000000000000000000715655E7B4B1EEB9B6
+ E7B2AEDAA4A18A6865000000000000EDB2ADDCA19CDC9F9AE1A39EE09F9BE29F
+ 9BE19D99E09A96EEA7A3F0A9A5F4ABA7E9A19BE39C97E49E99E59F9BE9A49EF2
+ AAA5EFA69FEA9D98CD878200000096605CEF9993BA7A73000000000000000000
+ 47302DF89C94FD8D84FD8C82FFB0A5FFB0A4FF7F73FFA99DFFB2A4FFBDAEFFFF
+ F8FFFFFFFFFFF4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFD1C2FFC0B2FFB1A3FFCABEFFBBB0FFA599FF9085FD887F150B0B804E49F6AB
+ A3FBB2A90000000000000000002C1A1AED918AED928BEF9690EC9791EA9791E7
+ 9994E99C97E79F9AE6A19BEDA9A5EEADA9E9A9A5E4A8A3E3A9A4000000EBB3AE
+ E3ADA9413130000000000000000000E2B0ABDFACA9E0AEABE0B0ACDFAEACDFB0
+ ACE0B2AEEDC0BDE9BBB9ECBFBBEDC1BF2B22225A4948DCB3B1DEB3B140343400
+ 0000000000000000130F0FC19D9BDCB4B2E7BFBDEBC3C1E1B8B7D7B0ADDAB2AE
+ E4BBB9DBB3B0D5ABA9D5ACAAD6ADABD4ABA9DCB5B2E9C1BFEAC3C1D8B4B2D4B0
+ ADD7B3B1D6B3B1D5B2B0D7B5B3EDCBCAEECBCBE7C6C4E9C6C4EECCCBF2D0CF8B
+ 79763D3534D5B7B6D5B6B60000000000000000003E3737D4B7B6D6BAB9D7BAB9
+ E0C3C3DCC1C0D4B8B7D4B8B7E0C4C3EACFCEE0C4C4D2B8B7D4BAB8DEC3C2D5BA
+ B9D6BDBADBC2C1DAC2C0E7CECEE9D1D0DAC1C1D4BEBBD5BEBDDEC6C6ECD4D4EC
+ D5D4E6CFCFDAC3C3D0BAB9D0BAB9D1BBBAEED8D6EAD5D40000006C6161D4BEBE
+ E0CBC9000000000000000000000000AD9E9CECD7D6D9C4C4D2BEBED4C0C0D5C2
+ C2D5C2C1E5D0D0ECD6D7D0BDBBCFB9B9D1BEBDE4D1CFE6D1D0E3CFCEE2CECDCD
+ B9B8CBB6B4CBB5B4D9C3C1EDD8D7D1BDBBCBB5B4D7C1C0E7D2D1D1BDBBCAB6B5
+ D2BEBDCCB7B5C7B2B00000000000000000F5E2E1D2C0BFCEBABAD9C6C5EFDCDB
+ DECACACEBAB9D7C3C3F5E1E0E7D5D4CEBAB9D5C0C0E9D5D4EFDBD9D9C6C6D0BF
+ BFD1BFBFD7C3C2D9C5C4D0BEBDDECBCBEDDADAE5D2D2D1BFBFD2C0BFECD9D8E2
+ CFCFD1BEBED1BEBED5C2C2DAC6C6E3CECEECD8D7EFDAD9DEC7C6E4CDCCE0C9C9
+ E6CECEE5CECDD0B8B8D0B6B5D0B8B7E6CFCEEAD0CFD0B7B6D1B8B6DAC1BFC5AE
+ AE292323000000948483D6BDBBCFB6B4CFB6B440383800000000000000000012
+ 0F0FD0B5B3D0B5B3E2C6C4EFD2D1ECCFCDD0B4B3D0B4B2E6CAC6EED0CFE7CACA
+ D0B4B2D7B9B7F3D5D2EFD1D0D2B5B3D5B6B5E5C6C5D9BAB8D2B2B0DEBEBB1411
+ 10C0A29FCEADAB3D3333000000000000000000D2B1AEE7C5C4EAC7C5E7C5C4D8
+ B5B4282221000000131010E4C0BEE3C0BDD8B4B2D9B4B2E4BEBBE6C0BED9B3B1
+ D8B2AEE2BAB8E6BFBBDEB5B2D7ADABDBB1AEEEC2BFEBBFBBEEC1BE977A792C22
+ 22D8A9A6DAABA82C2222000000000000130F0FDFABA9E9B5B1F0BBB7E1ABA8DA
+ A5A1DAA4A1000000000000906A68DA9F9BDFA29EE2A5A1DC9E9ADF9F9BE4A39E
+ E09D99E19D99E6A19BECA49EE19893E69B96F0A39EE79894E69792EC9C96F09F
+ 9AEA9A9495625E000000F4A69FF3A19A7E514D0000000000000000009C605AF8
+ 9D95FDA69CFEAAA1FFAA9FFF9A8EFF9F94FFE5D8FFBBADFFB3A5FFE4D4FFE9D7
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2FFECDAFFE0CFFF
+ F0E2FFD7C9FFB5A8FF9B90FF8E83FFA79CFDBEB349302D482C29F78E86FB9088
+ 2E1A19000000000000000000F49A94F49E98F5A39DEDA19AE99E99EBA59EF0AC
+ A7EAAAA5E6A9A4E7ABA7EEB3AEECB2ADE4AAA6E4ACA8000000EDB5B1E5ADAA41
+ 3130000000000000000000E1ADAAE5B2AEECB8B5EBB7B4DFACAADFACA9E5B3B0
+ EDBBB9E5B4B2EAB9B7443736140F0FDFB0ADE0B2B04135340000000000000000
+ 00000000A88786DBB0AEDEB4B2E6BBBAE3B8B6DAB2AED7AEADE2B9B7E1B8B6D6
+ ACABD9B2AEE0B7B6E2BAB8D2ABA9D5ADABF2CBC9EDC6C4D4AEACD8B5B4ECC9C6
+ EAC6C5D5B2B0D4B2B1E4C2C1F0CFCDF0CFCDE7C6C4EFCECCE9C7C68572703D36
+ 35E7CAC7DCBFBE0000000000000000003E3737D5B8B7DCC1BFE1C4C3EACECDE2
+ C6C6D5BAB8D4B9B8D7BDBBDEC3C2D9BFBDD2B9B7D7BDBBDAC0BFD4BAB9DCC3C3
+ E5CDCCE2CACAE4CDCDE6CECDD6BFBFD4BEBDDBC4C3E1C9C7E9D1D0EBD4D4E9D2
+ D1E9D2D1D2BDBBD0BABAE1CACAF0DAD9ECD7D71210103D3737E4CFCEE7D2D22C
+ 2828000000000000000000958787ECD8D7D5C1C0D2BEBEDCCAC9E7D5D4DFCBCB
+ E5D0D0E6D1D0CEB9B9CFBAB9DFCAC9EBD6D6EBD7D6EBD6D5EDD9D8D2BFBECCB6
+ B5CDB7B6D0BAB9D5C0BFCDB7B6D1BDBBE6D1CFD2BEBDCBB5B4D2BFBEEAD5D4DC
+ C9C6C7B2B00000000000000000EBD8D7CFBDBBCEBABADAC6C6F0DCDBE1CDCCCE
+ BBB9CFBBBAF0DCDBDFCCCBCEBAB9D7C3C2E7D2D1ECD8D8E9D5D5D0BFBED4C0C0
+ D4C1C0D4C0C0CFBDBDE4D2D1EBD8D8ECD9D9D2C0BFD5C2C1EBD8D8D2C0BFD2BE
+ BEE3CFCFEBD7D7EAD5D6EAD5D6ECD7D6EED9D8EAD2D1E9D1D0E6CFCEE6CFCFD8
+ C0C0D0B8B7D5BBBAD1B9B8E3CAC7EDD4D1E1C7C6D4BAB98D7D7C141212141212
+ C7B0AEE9CFCED4B9B7B79F9F272222000000000000000000000000847272D2B7
+ B6D2B6B5D7BAB9EDD0CEEFD2D0D4B7B5D5B7B5E7CBC9EACCCBE1C3C2D0B3B2D4
+ B6B4E9CBC9DCBFBED1B3B1E3C4C3EBCCCAEECFCED2B2B09F86852B2524E5C4C2
+ CFADAC130F0F000000000000282221D2B1AEE2C0BFECCAC7E9C6C4D8B6B5A489
+ 88000000000000AD9392E3BFBBD8B4B2E0B9B8E5C0BEE7C1BFDEB7B6D8B2B0E7
+ C0BEE0B8B7DBB4B1D7AEABE4B9B6EEC2C0EBBFBBECC1BE2C2423755E5CD7A9A7
+ AB8886000000000000000000584342E9B6B2EBB7B4F2BDB9DEA9A5DCA6A3DEA7
+ A340302F000000453534DAA19BE5AAA6EAABA7DE9F9BE2A39EE4A49FE09E9AE0
+ 9D98E5A19BE6A19BE39B97F0A8A4F2A8A3F2A7A2E79A95EC9B96F09D98ED9892
+ 452B292D1C1AF5958EF79790482C2A0000000000000000009C645EF89890FD93
+ 89FE9186FF9B91FFB0A5FFC4B8FFDECFFFCBBDFFCDBEFFFFFFFFC9B6FFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E1FFC7B8FFBF
+ B1FFE7D9FFCEC2FFA69BFF8D83FE8278492422482623F68880FB958C492C2B00
+ 00000000000000009D6E6AF7B2ABF9B5AEEEACA6EAA8A2F2B1ABF2B2ACEFB0AB
+ E6A8A4E6A9A4EFB2ACEEB2ADE4A8A4E6AAA6000000ECAEABEAACA941302F0000
+ 00000000000000E2A9A6E7AEABEAB2AEEBB4B1E2ABA8E0ABA8ECB6B4EDB8B5E7
+ B4B1443635141010C39997DEAEAB5C4948000000000000000000000000947876
+ E5BBB9DBB1B0EAC1BFEFC5C4ECC4C1DAB3B1D9B2B0EEC6C4E6BFBED6B0ADE2BB
+ B9E2BBB9F0CAC7D6B0ADD2ADAAF4CFCCF0CCCAD4B0ADDEBBBAF2CFCDF0D0CDD9
+ B7B6D4B3B2E7C7C5F0D0CEEFD0CEE7C7C5EACBC9D8BAB8857272413938EACDCB
+ E9CDCB000000000000000000423B3BD7BDBBE4C9C7EBCFCDEED4D2EED4D2E6CC
+ CAD5BBBADCC2C2EBD1D1DBC2C0D6BBB9E3C9C7E1C6C6D7BFBED9C2C1E0C7C6E2
+ CACAE7CFCEE7CFCED6BFBED2BBBBDFC7C6E4CDCBE9D0D0E6CFCEDFC9C7E6CFCE
+ D5BEBDD0BABADFC9C9EDD6D6E5D0CF3D37373D3737DEC9C6DAC4C4413C3C0000
+ 000000000000005A5251EDD9D8E7D2D2D4BFBFE1CDCCECD8D8ECD7D7EAD6D5EC
+ D7D7CFB9B9D0BDBBE4D1CFEAD5D5E5D1D0ECD7D8EDD9D9DFCBCACDB9B8CDB7B6
+ D1BBBAD2BEBDDCC6C6ECD6D5F2DCDBD5C0BECBB5B4E9D5D4EBD6D4F9E3E1CCB7
+ B50000000000000000F6E2E1D2C0BFCEBABAD7C4C3EFDBDAE7D4D2CEBAB9D0BD
+ BBEEDADADBC9C7CFBBBAD8C4C3E6D1D0E6D4D4E9D6D5D1C0BED5C2C1DECACAD8
+ C4C3CFBDBDE9D6D6E6D5D4EAD7D7D1BFBED4C1C0E6D2D2D2BFBFD4C0C0DFCBCA
+ E5D1D2E3CFCFDAC5C5E4D0CFE6D0D0DEC7C6E3CCCADEC6C5D5BFBDCFB7B7D2BA
+ B9DFC5C4D0B8B7D0B6B5E6CDCBE1C7C63D35350000005B5050E7CDCDE7CECDE7
+ CDCC9D8988131010000000000000000000000000594E4ED0B5B5DCC1BFDCC0BF
+ D2B6B4EACDCBEACDCBD1B4B3D2B5B4E3C5C4ECCECCE7CAC7D0B3B2D7B9B7EACB
+ CAD7B8B5D2B2B2EDCECDEECECCF7D6D4DBB9B86B5A59605252EECDCB9C838200
+ 00000000000000006E5D5BD2B1AEE6C4C3EECBCAE0BFBDD7B5B3DFBBB9141010
+ 000000423938E1BDBBD8B4B2E3BEBBE7C1C0E9C2C1E0B9B6D8B2B0ECC5C3E9C0
+ BFDBB4B1D7AEACE3B8B6EEC3C0E7BDB9B08D8B141010E4B8B5D7AAA72A222100
+ 0000000000000000BF9593EBB9B7E7B5B2E5B3B0D9A5A2EFB9B5EFB8B5715554
+ 00000015100FDAA19CEEB3AEEFB3AEEFB2ADF3B4B0F0B1ACE3A19DE19E9AEBA6
+ A2E49E99E49D99F0A9A5F3A9A5F3A8A3E99D98EA9B96F0A29BEE9C96442C2B46
+ 2C2BF49B94F79B942E1C1B000000000000000000DA736CF98178FC877EFF9085
+ FFA498FFB5A9FFB7AAFFB9ABFFCFC0FFF3E3FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFE6D7FFBBACFFA193
+ FF978AFF968AFF9589FE988D9F6660160F0EF7ABA3FBB2A96547440000000000
+ 000000009C6E6AF6AEA8F8B0A9F4AAA4EA9E99F2A7A2F2A6A1EEA39DE79D99E6
+ 9D98EBA29DEDA5A1E49C98E69F9B000000EBA7A2E9A6A2422F2D000000000000
+ 000000E2A8A5E7AEABEAB3B0EBB5B2E2AEABE2B0ACEAB7B5B28C8A14100F1410
+ 10CFA6A4C39C994033320000000000000000000000008D7271E5BEBBE2BBB9DB
+ B4B2EBC4C2F0C9C6EEC7C5DBB6B4D8B3B2EFC9C6E9C3C1D6B2B0E2BEBBE6C3C1
+ ECC9C5D5B2B0D4AEACEFCBC9EDC9C6D4B1AED8B7B5F0CFCDF2D0CED9B9B7D4B4
+ B2DEBEBDEECDCDE7C9C6E2C2C0E1C3C1D4B6B5867372413938ECCFCEE2C4C300
+ 0000000000000000433C3BD7BBBADBC1C0E3C7C6EFD5D4EFD5D4EBCFCFD9C0BF
+ D7BDBBE4CACAD7BEBDDCC3C2E3CBC9E6CECDD8C0C0D8C1C0E5CDCCE4CDCCE7D1
+ D0E6CECED5BEBDD1BAB8E0C7C6E5CDCBE7D0CFE9D2D1DCC5C5D8C3C2D2BEBBD1
+ BDBDDEC7C7ECD6D6E6D1D03D3838000000E5D1D0DBC5C5595151000000000000
+ 000000403B3AEED9D9EBD6D6D2BFBFDAC5C4E6D2D2E2CDCBE2CDCBE9D4D2CFBA
+ B9CFBDBBE2CECEE5D1CFD8C4C4E6D1D0EDD9D8E0CCCBCDB7B6CDB7B6D0BAB9D1
+ BDBBDBC6C6DFCBC9F0DBDAD1BDBBCBB5B4DFCBCAE2CDCCF6E0DFCAB4B3000000
+ 0000000000F3E0E0D0BEBDCEBABADFCCCBF3E0E0EAD6D5CFBBBAD1BEBDF2DFDE
+ DAC6C6D0BEBDDBC7C6E9D6D5E7D5D5DECBCBD1BFBFD4C0C0E1CCCCD8C4C3CFBD
+ BDD9C7C6E7D6D5DCC9C9D1BFBED2C1BFEAD6D7D8C5C4D4C1C1D8C4C3E2CDCDD4
+ C1C1D2BFBED2BFBEE1CACADAC3C3DCC5C4D6BFBED0BAB9CFB8B7D6BEBDE0C7C5
+ D2BAB8CEB5B4A18E8D13101012100FA49190D1B6B6D2B8B7E0C5C46C5E5D0000
+ 00000000000000000000000000413A3AD0B4B3D0B4B3E5C9C7D9BDBAD0B4B3DB
+ BEBDE3C5C4D0B4B2D0B4B2E2C4C3F0D2D0E6C7C6D0B3B1E0C0BEE9CAC9D2B4B3
+ D1B2B0E6C7C5E9C7C5EACAC7D1B0AD262020AB9291E5C3C26B5A590000000000
+ 00000000B99B99D2B0ADE7C5C3ECCAC7D6B3B2D7B4B2E4C1BF76646300000000
+ 0000C1A29FD8B4B2D9B4B2DBB6B4E1B9B7D8B2B0D8B2AEE9C1BFE6BEBBD9B0AD
+ D7ADABE2B7B5EEC3C0E2B6B42C23237B6361DEB0ADA17F7D0000000000000000
+ 00594544D9A9A6F2BFBDE4B2AED9A7A4D9A6A3F2BBB7F2BBB7BF908C00000000
+ 0000A67B78DFA6A2ECB2ADEEB4B0F0B5B0EBAEA9E0A29CE3A49FEBA9A4E2A19B
+ E3A19CECA8A4EDA8A3EAA49EE79F9AE79E98EDA19AEC9D9800000098635FEE98
+ 92EF9690000000000000000000000000FB9389F98E85FC8D83FF8C82FF9186FF
+ 978BFF9C90FFA396FFB6A7FFDFCEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFCFFEEDAFFEDDBFFECDBFFEDDEFFECDFFFDFD1FF
+ CDC1FFBDB2FFB2A7A16E68000000F7988EF6948B9E5E59000000000000000000
+ 452926EE8C86F59791EC928CEA948EEE9B96F2A39DEB9F9AE69D99E69F9AEDA8
+ A4ECA8A4E4A49FE5A6A2000000ECB0ABE5AAA741313000000000000000000014
+ 0F0F4233324335344235344134334134340000000000000000007B6362443837
+ 0000000000000000000000001410108B7270E0B7B5E5BFBDDFB7B6DBB5B3E1BB
+ B8EDC6C4EEC7C6D9B4B3D7B2B1EAC4C2ECC6C4D6B2B0D9B5B3E6C3C1E5C1BFD6
+ B3B1D6B3B1E1BEBBDCB8B6D4B0ADD7B6B4E7C6C5EBCCCAD5B4B2D4B3B2DCBEBB
+ EFCFCDE7C9C6EDCDCBE4C5C3D2B5B4857272413939EFD2D0DABEBD0000000000
+ 00000000413939D4B8B7D8BDBBD5B9B7D1B6B5E5CBCADCC1C0DBC1C1D5BBBAD6
+ BEBDD6BDBBE4CBCAE6CECDDEC5C5D6BFBEDBC3C3E2CBCBD6BFBED9C2C1DEC5C4
+ D0B8B8D0B8B7DAC1C1DEC5C3EBD2D1ECD4D4E7D1D0E2CBCBD4BEBED4BFBEDBC6
+ C5EDD7D7E7D4D23D3737000000E1CCCCD8C3C3877A7A0000000000000000003D
+ 3737EAD5D4D8C2C2D1BDBDD4C0BFD4BFBFCFBAB9D4BEBEDAC5C4CFBAB9CFBABA
+ E6D1D0EAD6D5E9D4D4EAD6D5EBD7D6D5C1C0CDB7B6D0BAB9E0CBC9CDB8B6CCB7
+ B5D1BDBBE7D2D1DEC9C7CBB5B4D2BFBED9C3C2D9C3C2C7B3B100000000000000
+ 00DCCACACEBABACEBABAE5D1D0F4E1E1D4C0C0D0BEBDD0BEBDE5D1D1D1BFBED0
+ BFBED7C4C4EBD9D8E1CFCFD4C1C1D2C0C0D4C1C1EBD7D7E6D2D2D4C0C0D1BFBF
+ D5C3C3D4C0C0D1BFBED4C1C0EDD9D9EAD5D6D7C4C3D4C0C0D4C0C0D2BFBED2BF
+ BED6C1C2E3CDCDE6D0CFE6CECEDAC3C2D0BAB9CFB8B8DEC5C4E3C9C7D7BEBD54
+ 49490000003D3636D0B6B4D0B6B4CDB4B1B79E9E282222000000000000000000
+ 0000000000003D3535D6BBB9D0B4B3D4B8B6EDD1CFD9BDBBD0B4B3DBBEBDE4C6
+ C4D0B4B2D0B3B2DCBFBEDCBFBED2B4B3D0B3B1EACBC9ECCDCCD1B4B3D1B2B1E6
+ C6C5EBCAC7E2C1BFD2B1B0000000DCBAB8E1C0BE262020000000000000130F0F
+ D0ADABD4B0ADE6C3C2DEBAB9D6B3B1D7B3B2E5C2C1E4C1BE0000000000007663
+ 62DFB8B7D8B3B1D9B3B1DAB3B1D8B1AED8B1AEE7BFBDE4BBB8D8B0ACD7ACAAE2
+ B6B5ECC0BDC59D9C000000E4B6B3E4B5B2584544000000000000000000BF9491
+ D9A8A5E6B5B1E0ACA9DAA7A4DBA6A3F0BAB6F2BBB8DBA4A12A1F1E0000007355
+ 53DB9F9BDFA39EE5A7A3E6A7A3DF9F9ADF9E9AEBA8A4E4A19CE29E99E39F9BED
+ A8A3EFA9A4ECA59FE79E99E99E99EEA39CEEA29B000000966460ED9B95EF9C96
+ 000000000000000000000000FBA198F99D95FC9D93FF9C92FFA498FFADA1FFB7
+ AAFFC2B4FFCEBFFFDFCEFFF5E2FFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFBE7FFCDBDFFAC9DFF9587FF9285FF9083FF8D
+ 82FF8B81A15D57000000F79A92F69E969D686400000000000000000045312FED
+ A8A2F3ADA7EBA7A1EAA8A2F0B0AAF4B3AEEAABA6E7AAA5E7AAA6EDB2ADE7ADA9
+ E5ABA7E6AEA9000000ECB4B1E3ACA84132310000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000005A4948C19E9CDEB5B3E5BEBBE4BDB9DBB4B2DAB4B1DAB5B2DEB8B6
+ DCB7B5D8B3B2D7B2B0DEB8B6EEC7C6E3BEBBD6B2B0D7B3B2D7B3B1D7B3B1E0BD
+ BAEDCBC9D5B3B1D4B0ADDAB8B6EDCCCADFBFBDD4B3B2D4B3B2E3C3C1F4D4D1ED
+ CDCBF3D2D0EDCECDD2B5B4857272423A3AEFD2D1D9BBBA000000000000000000
+ 413A39D4B9B8D5B9B7D2B6B6D2B8B6DCC2C1DABFBFDFC4C4D6BBBAD4BBBAD6BD
+ BBEAD0CFEDD4D4E3CBCAD5BBBBD6BEBED7BFBED4BDBBE1C9C7E0C7C6D2BAB9D2
+ BAB9E0C7C6E0C7C6ECD4D2EDD4D5EDD4D5D7C0C0D4BEBED4BFBED5C0BFD8C3C3
+ D6C1C0857878000000D5BEBED4BFBE8679790000000000000000003D3737E3CE
+ CEE2CCCBCFB9B8D0BBBAD0BABACFB9B9D4BFBFD4BFBFCFBAB9CFBBBADFCACAE7
+ D2D2E7D2D1E7D4D2EAD6D5D4C0BFCDB7B6CEB9B8DFC9C7CCB6B5CBB5B4CCB7B6
+ EBD6D4EED9D8D4BFBDCCB8B6D1BDBBD0BDBBCAB7B60000000000000000DFCBCB
+ D7C3C3D6C3C2E6D4D2F0DEDCE6D4D2D9C6C5E7D6D4F0DEDCE1CDCDD7C4C4DAC9
+ C9E6D5D4E3D0D0E2D0CFDCCACADBCACAE6D4D2ECD9D8E4D1D0DAC7C7D8C5C5DB
+ C9C7D9C6C5DAC7C6EBD8D7EBD6D6DFCBCBDAC5C5DCCACAE0CDCCE0CBCCE3CECD
+ DFC9C7E4CECDE5CECEE2CBC9D6C0BFDEC5C4E4CDCBC7B1B0131111131010907F
+ 7FE6CDCCDAC0BFDAC0BF71636200000000000000000000000000000000000076
+ 6867E7CCCBE7CCCAE7CBC9EDD0CFEED1D0D9BDBBD6B9B7E1C4C3E9CBCADFC1C0
+ E4C6C4EACCCAE4C5C3DBBDBAD6B8B6EACBCAECCDCBD1B3B2D2B2B1E7C7C5EAC9
+ C6DEBDBD8772713D3332E1C0BEEAC7C6000000000000000000615252E0BBB9E3
+ BFBDEFCCCAECC9C6DCBAB8E6C3C1EBC6C5E9C4C35C4D4D000000141111EAC3C1
+ E3BDBBE0B9B6E3BBB9E6BFBDE9C0BEE9C0BEE6BEBBE6BBB9E4B8B5EEC1BFF0C3
+ C15F4D4B604E4CF8C7C4DAAEAC0000000000000000002A2020ECBAB7ECB8B6ED
+ BAB7ECB8B5E3B0ABEBB6B2F2B9B7F4BDB9E1A9A66149480000002B1F1FE4A8A4
+ E6A8A4EBABA7EEAEAAEAA7A3E9A6A2EEA9A4EDA8A3E39D98E59E9AF2A9A5F3A8
+ A3F4A7A2EA9C97E99994EC9B96F29F9900000097605CEE958EF6999300000000
+ 0000000000000000FC9187FC8D84FE8C82FF897FFF9287FF9C91FFA89BFFB6A8
+ FFC5B7FFD8C7FFEEDCFFFFF5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBECFFE7D9FFD6C9FFC6BAFFB9AEFFAEA4
+ A16E68000000F9A9A1F8AAA29E6C6700000000000000000046312FF2A9A3F7AE
+ A9F4AEA9F0ACA6F3AEA9F2B0AAEDACA8EDADA8EFB1ACF0B3AEF0B5B1EAAEAAEB
+ B1AB000000ECB4B0E9B1AC4233320000000000000000005F4A49947371937371
+ 9373719172709273729476744337362B22220000000000000000000000000000
+ 00413535735E5DCAA6A5E7BFBDE6BFBDDFB7B5DFB7B5E1BAB8E3BDBAE3BEBBE1
+ BBB9E0BAB8E4BEBDECC6C4F2CCCAEBC6C4EAC6C3F2CDCBEFCCC9F2CECBF5D1D0
+ EBC9C5E4C2C0EBC9C6ECCAC7EBCAC7E7C6C4E5C4C2EFCFCDF4D2D1EACAC9F3D2
+ D0EFD1D0D5B7B6877474443C3CEDD1D1E0C4C3000000000000000000443D3DDE
+ C3C2D9BEBEE0C4C3E9CECCE7CCCADBC0BFDFC4C3D5BABAD2B9B8D6BDBAEAD1CF
+ ECD1D2E7CFCDE0C6C5DCC2C2E1C7C6E6CECDECD2D4E7CFCEE0C7C6E7CFCDE9D1
+ D1E5CDCDE7D0CFECD4D4ECD4D4E4CDCDE3CDCDE4CECEDFCACAE5CFCFE6D2D289
+ 7C7C000000E4CFCED9C3C39183830000000000000000003E3838E9D4D2F0DAD9
+ E7D1D0E5D0CEE4CFCEE4CFCEE2CCCCE7D2D1E0CBCAD9C5C5E3CFCEEAD5D4E6D1
+ D0E2CDCDEAD6D5EBD7D6E3CECDDFCAC7EFD9D8E3CECDD5C0BFD7C1C0E7D2D1E7
+ D4D2E3CFCED4C1C0D4C2C0DCCAC9DCC9C70000000000000000E1CCCCDCC7C7D5
+ C2C1E3D0CFF0DFDEF2DFDEECD9D8F0DCDCF0DEDCEFDEDEE7D6D6E4D1D1E7D5D5
+ EBD9D8EBD9D8E9D6D6E2CFCFE7D5D4EBD8D7ECD8D8EAD6D7D8C5C5E9D5D6E6D2
+ D2E2CFCEEAD6D6E9D5D6E3CFCFE1CDCCE5D2D1E4D1D0E7D4D2E5CFCFDEC7C6E4
+ CECDE5CECEE1CAC9D7C1C0E4CCCC928382000000403A39C3ADACE6CDCCEACFCE
+ CFB8B62C2726000000000000000000000000000000141111B09B9AE7CCCAEACF
+ CDE3C7C5F0D4D2F3D7D5F0D5D2E4C6C4E1C4C3EACECCE5C7C5E3C5C4EBCDCCEF
+ D1CFF0D2D0EECFCFE4C4C3ECCCCBF0D1CFD7B8B8D1B1B0E1C1BFE0BFBDE1C1BF
+ 3D3332846F6EDEBBB9887271000000000000000000937D7BE2BEBBEECAC7F0CD
+ CCEECBCAEAC6C5ECC7C6ECC7C5EAC5C4B09493000000000000947D7CEAC3C1EB
+ C4C2E4BEBAECC3C2ECC3C1E9C0BEE0B6B4E3B9B6ECC0BEEBBEBBD4ADA9000000
+ D1A8A6F0C1BE64514F000000000000000000AB8685F2C0BDF4C0BDF0BDBAF3BE
+ BAEEB8B6EAB4B1EBB4B1F4BAB8EBB2AEB78B88000000000000F4B5B2F4B4B1EE
+ ADA9F0AEAAF0ADA8F2ADA9EFA9A4EFA8A4E59D99E49B97EEA39EF2A49FF2A29C
+ E99893EA9691EF9993F49B95000000985C58EE8B85F8918A0000000000000000
+ 00000000FC7C74FC766DFD7067FF6A61FF7267FF7E71FF8A7EFF998BFFAD9EFF
+ C5B5FFE7D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFF9ECFFEADCFFD2C6FFC1B6A1756E00
+ 0000FCAEA6FBACA49E6C6700000000000000000047312FF4A79FF6A9A3F6ABA5
+ F6ACA6F3A9A4F0A9A4EDA7A2F0ABA6EEAAA6EDABA7F2B1ACEFB0ABEBACA90000
+ 00EEB2ADEBB1AD433332000000000000000000EAB3B0E9B4B2E6B3B0E7B4B2E4
+ B3B0E5B5B2E6B7B5E9B9B7E5B8B6CAA19F7961601410105F4D4C7A6362141110
+ 0000000000005F4E4DCEAAA8EBC3C0EBC3C1EBC3C1EDC5C4EDC6C4E6C0BEE9C2
+ C0E9C2C0EEC7C5F0CBC7F2CDCAEFCBC9F4CFCDECC7C5EAC6C4EFCCCAE9C6C4E9
+ C5C4ECCAC7EFCDCBEBCAC9EECDCBEECCCBEECDCBF0CFCDDFBEBDF0D1CFF0D2D0
+ DBBEBD877474453D3CEFD2D1E9CCCC000000000000000000453D3DE9CDCDE4C9
+ C7EDD0D0F0D5D2F0D4D2E6CBCADAC0BFD5BAB9D2B8B7DAC1C0E5CCCBE7CECCE3
+ CBCAE2C9C6E0C6C5E7CDCDEBD2D1EDD5D2E4CCCCE3CBCBE7D0CFE7CFCFE4CCCC
+ DFC7C6E1CACBE2CCCCE6CFCFE6D0CFE9D4D2E1CBCBEAD4D5ECD8D79587870000
+ 00EAD4D2E4CFCD948785000000000000000000433D3DEAD4D4EED8D6F2DAD9EF
+ D9D8ECD6D6ECD6D7E6D2D1EAD5D4E9D4D4E3D0CEE5D0CFEAD5D5EBD7D6E9D5D4
+ E9D5D4EED9D9F0DBDAE4CECDE9D4D2E5D0CEE0CBCADFCBC9E1CDCCE6D2D1E9D6
+ D5DCCAC9E0CCCCE6D4D2F0DBDA0000000000000000EAD6D4EBD6D5E6D1D1E3D0
+ CFEFDCDBF0DEDCF0DEDCF0DEDCEFDEDCEFDCDCE9D7D8E4D1D1E5D2D2EAD8D8EA
+ D8D8E9D7D8E9D5D5E6D4D2E6D2D2ECD9D9ECD9D9E3D0D0E9D5D6ECD8D8E9D5D5
+ EAD8D7EBD6D6E6D4D2E7D4D4E9D5D5E4D0D0E4CFCFE3CDCCDBC4C4E3CCCBE5CE
+ CEE3CBCBE1CAC7423C3C000000928281D8BFBEE1C9C7E6CDCC93838200000000
+ 00000000000000000000000000003E3737C7B0AEE4CAC7ECCFCEEED1CFEBCECD
+ ECCFCCF3D7D5F2D6D4EBCECDEED0CFEDCFCEECCFCDEFD1D0EED0CFEFD1CFF0D2
+ D0F0D0CFECCECCEECFCEF0D1CFE4C5C3D0B0AED2B2B0E2C1C0D5B5B3120F0FC3
+ A6A5EDCBC9453C3B000000000000000000E7C4C2DAB6B4E4C0BEEFCAC7E7C4C2
+ DFBBB9E9C5C3ECC7C5E9C3C2E7C3C02B24230000002C2424E7C1BFEBC3C1E3BB
+ B9EAC1BFE5BBBAE5BDB9E0B6B3E1B5B3E7BAB7EBBEBB7E66655F4D4BF2C2BFF5
+ C5C20000000000000000002C2222E1B0ACECB9B5EEB9B7EBB6B3ECB5B3EAB3B0
+ E7B0ACE9B0ACEDB2B0E3A9A6EEB2AD000000000000986F6CF2B0ABF2ADA9EEA9
+ A5EFA9A4EBA39EE59C97ECA29CEC9F9BE49692E69793EA9994E99691E9938DEF
+ 9792F59A96F69A950000009C5F5BEE8C86F7938C000000000000000000000000
+ F99188FB958BFD9C92FFA79DFFBEB3FFD0C4FFCCBFFFC7BAFFC2B3FFCDBDFFE0
+ CEFFF4E0FFFFF3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFEFFF9ECFFE4D8FFD0C5FFC1B6A17670000000FBB4
+ ABF9B4AC9E736E000000000000000000473633F5B7B1F6B9B3F6BAB5F6BBB6F3
+ B9B4F2B8B2EDB3ADF2B7B3F2B8B3F2B7B3F4B8B4F2B7B3ECB4B0000000EEB6B2
+ EBB5B1433433000000000000000000EAB5B2E9B5B3E7B5B2E7B6B3E7B6B4E7B8
+ B5E6B7B5E9BAB7EABBB9EABBB9ECBEBBEEC1BF453838141110CEA8A75F4E4D00
+ 0000000000000000967C7AEBC3C0EAC1C0EDC5C4EFC7C4EEC6C3EFC6C5EEC7C4
+ ECC5C3ECC5C2F0CAC7ECC5C3EFCAC7DEB9B7E7C2C0F0CCCAEECAC9F0CDCBE5C2
+ C0F0CECCEFCECCEFCDCCEFCDCBEECCCAEECDCCE0C0BFEACBCAEED0CFE5C7C687
+ 74743E3636EBCECDDEC1C0000000000000000000433C3CE3C7C6E7CCCBEFD4D2
+ F0D6D4F0D4D2E9CDCCD7BDBAD2B8B6D4BAB8EACFCDEDD2D1EED5D4EDD4D1E9CF
+ CEE9CFCEEAD1D0ECD2D2ECD4D2E1CACAE7CECEE4CCCBDEC6C5E0C9C7E7CFCFE1
+ CBCBDEC9C7E1CCCCE9D4D2EAD4D5E7D2D1EDD6D6EDD7D77B6F6E000000EFD9D8
+ ECD7D6968989000000000000000000453F3FEED8D7E6CFCFE6D0CFEFD9D8EBD5
+ D4E0CBC9E2CBCAEAD4D2E6D1D0DAC6C4D9C5C4DFCAC9E7D2D1E4D0CFE0CBCAE6
+ D2D1E9D4D2E4CDCCE6D0CFE9D4D2E6D1D0EAD6D5ECD8D7EFDBDAF0DCDBEFDBDB
+ EBD8D7F4E0E0F8E3E20000000000000000EBD5D4F0DBDAE7D4D2DFCCCBE9D7D6
+ E7D5D4EFDCDCEDDCDBECDADAECD9D9E7D6D5E3D0D0E9D6D6ECD9D9ECD9D9EBD9
+ D7EBD8D7E9D5D5E6D2D2EAD7D7EAD6D7E6D4D2E2D0CFEAD7D6E5D1D2E9D6D6EA
+ D5D6E3CFCFE6D4D2E3CFCFE5D1D1E4CFCEDEC7C6D5BEBDE0C9C7E5CECEC7B3B2
+ 292424141111CAB4B3E5CDCBD8BFBDC0AAA9413A3A0000000000000000000000
+ 00000000141212907F7FDCC2C0ECD0CEEED1D1EDD0CEF0D5D4E5CAC7E5C9C6EE
+ D0CFEFD4D1ECCECDEACDCCEACDCBE6CAC7EBCECCEACCCAE6C9C6E9CBC9E2C3C2
+ E0C1BFE7C9C7EFD0CEEBCBCADAB9B8CFB0ADD1B1B09D8684272121EECCCBEAC9
+ C6141111000000000000463C3BE5C1BFD5B1AEDEB8B5EBC5C3E4BFBED9B5B3E9
+ C3C1EAC4C2EBC5C4E4BEBD786362000000000000CAA7A6E6BFBBE7BFBDEAC1BF
+ E5BBB8E9BEBBEDC0BEEFC1BFECBEBBF2C4C0151111B4908DEEBEBA7F65640000
+ 00000000000000997978EDB9B7ECB8B6E7B2AEE9B3B1EEB7B4EEB6B4EEB6B3EF
+ B5B2ECB2AEECB1ADEFB3B0453432000000443130EDACA9EBA8A4EAA6A2EBA6A3
+ EAA5A1E7A19CEBA39EEDA5A1E59D98E59B96E69C97E79A96EB9C97F4A5A1F6A6
+ A1F6A7A1150F0E805854F0A49DF6ABA5000000000000000000000000FB9B93FB
+ 9187FE887FFF857BFF897EFF9286FF9A8DFFA395FFB1A2FFD1C2FFEEDCFFFEEB
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFBEFF
+ E1D1FFEFE0FFE4D6FFD9CCFFD2C6FFCDC1FFC9BEA17E78000000FBC0B7FBBFB7
+ 9F7973000000000000000000634845F0AEA8F2B1AAF3B1ABF4B3ADF3B3ADF3B4
+ AEF0B4AEEEB3ADEFB5B1EFB6B1F3BAB6EFB8B4EBB4B1000000EDB9B6EBB8B444
+ 3534000000000000000000EBBBB8EBBBB7E7B9B5E4B6B4E6B8B5E5B8B6E6BAB7
+ E9BDBAEABFBBE9BEBBEABFBDEDC2C1EBC1BF947978141111CDAAA8957B7A0000
+ 00000000000000917676E1BAB7E3BDB9EAC3C1EBC4C1E9C3C0ECC6C4EAC3C1E7
+ C2BFE1BBB9EAC4C1F2CCCAE4BFBDE9C4C3F4D0CEF0CDCBF3CFCDE5C2C0EECBCA
+ EECDCBEFCFCDF3D1CFEECCCBEBCACADEBFBEEACBCAECCDCDE4C7C68A79783E36
+ 36D7BAB9D6B9B8000000000000000000453D3DE2C6C5E4C9C7EFD2D2F0D6D5EE
+ D2D1E2C6C5D4B8B7D2B7B6DEC3C2F0D6D4EDD1D1EED5D4EED5D4E3CACAE9CFCE
+ E5CCCCE6CCCCE7CFCFE1C9C9E9D0D0EAD1D1E7CFCEE9D1D0EAD2D4EAD4D4E9D2
+ D2EAD4D4ECD6D5EBD4D5EAD4D5E9D2D2ECD6D5443D3D141313EED7D7E4CECD7C
+ 7070000000000000000000463F3FF2DCDBEED7D7E6CFCEEFD9D8EFDAD9E2CDCC
+ E4CFCFEAD5D4E6D1D0E6D1D1E1CDCCE1CCCBE6D1D0E1CDCCE6D2D1ECD7D6F0DA
+ D9EDD7D7ECD6D5EED8D8EAD6D6EDD8D8EEDAD9F0DBDBF0DBDBEFDCDBECD8D7F6
+ E2E1F7E2E10000000000000000EBD5D4EEDAD9E6D1D0E6D1D0E4D0CFDCCAC9E5
+ D4D2EDDADAEDDBDBECDADAE7D5D5E0CDCDE9D7D7EDDBDAEBD9D7E9D7D6EAD6D7
+ E9D5D4E6D4D2E1CECEE3D1D0E2D0D0DAC6C6E2CFCEDCC9C9E5D1D1E1CECCDAC7
+ C7DBC9C7DAC7C7E4D0CFE7D2D2E1CAC9DAC3C2DFC7C7C5B0B0131111131010BB
+ A6A6D9C1BFE0C6C58D7D7C141111000000000000000000000000000000413A3A
+ C5AEADDBC1C0D9BEBDDABEBDE2C6C5E4C9C6EACECCDABEBBDEC0BFEACDCBEACD
+ CBE0C3C1D8BBB9D9BBB9D6B8B7DBBFBDE3C4C3EACACAE5C7C5DBBBB9D6B8B6E4
+ C4C3EDCECCECCCCAEFCFCDEAC9C6E1C0BE6E5D5D5C4E4DEDCAC9B09593000000
+ 0000000000007E6B6AF2CDCBE6C1BFEEC7C5F4CDCBF2CBC9E2BDBAE7C1BFE9C2
+ C1E1BDBAE5BFBEEBC4C10000000000005E4E4DE1B8B6E6BDBAEFC4C3E9BEBBE9
+ BBB8EFC2BEF0C3C0F0C2C17E65642D2524F0C0BDE6B5B3151111000000000000
+ 140F0FEEBDBAF0BEBBF0BEBBEDB9B7EBB8B5EDB8B5ECB7B5EEB7B4EFB7B5EEB6
+ B3EEB5B2EFB5B298716F000000150F0FF0B3AEECADAAEFB1ACF0B1ACEEADAAEA
+ A9A5EFB0ABF2B1ABEDADA8F0B0ABEFB0AAE9AAA6F0B3ADF5B5B0F7B4AEF7AEA9
+ 47312F47302EF69F98F89B94482C2A000000000000000000DB7B73FB867DFC82
+ 79FE7F74FF857BFF978CFFAA9EFFB1A3FFC5B7FFFDEDFFF2E1FFFFFDFFFFF8FF
+ FFF3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE5FFFFFFFFFFFFFFFFF6FFE3D4FFEF
+ E1FFB3A5FF968AFFA297FFAEA4FEADA4664643160F0FFBB4ABFBB6AE654B4800
+ 00000000000000009D7872F5B8B2F3B7B1F2B6B1F3B7B2EEB3ADF0B5B0EEB4AE
+ EEB3AEEEB5B1F0B6B2F0B6B2EFB7B2EBB2AE000000EDB7B3E9B4B04335340000
+ 00000000000000ECBAB7EABAB6E5B7B3E5B7B4E6B9B6E5B9B6E5B9B6E3B8B6E7
+ BEBAE7BFBDE6BFBBECC2C0EBC3C1E9C1BF5F4F4E2C2424EBC4C27B6665000000
+ 000000000000947D7BE3BDBAE5BFBDEAC5C3EAC5C3EEC9C7EFCBC9EFCBC9EBC7
+ C5F2CECCF8D2D0E7C3C1F5D1CFEFCDCBE4C2BFEECBC9E7C5C3EBCAC6EECDCCF0
+ CFCDEFCECDEECDCCEECDCDE1C3C1E5C6C5E5C7C6E1C4C3927F7F413A3AE3C6C5
+ E3C7C6000000000000000000453D3DEACDCDECCFCFEFD4D2F0D4D2EED2D1EACE
+ CDDFC3C3DBC0BFEFD5D4F0D5D4E9CECDEED4D2EED5D4E7CECDEBD2D1E2C9C7E2
+ C9C7E4CCCBDAC2C1E1C9C9E7D1D0E6CECEE7CFCEE9D1D1EAD4D4EAD4D4E9D4D2
+ EBD4D4E3CECEDFCAC9DFC9C9E2CDCC443D3D453E3EE9D2D2D8C1C2453E3E0000
+ 00000000000000433D3DEED9D8EBD5D4D8C1C0EDD7D7F3DCDBE7D2D1E7D2D0EB
+ D6D5E5D0CFE5D0CFE5D0CFEAD5D4EAD5D4E5D0D0E9D5D4E9D4D2EED7D7E7D1D0
+ E9D2D1E4D0CFDBC7C6DECAC9E3CFCEE2CECDE7D5D4EDD9D9DCC9C9F4E0E0F8E3
+ E20000000000000000EDD8D6EED9D8E6D2D1F0DBDAEFDBDAE7D5D4EDD9D9F2DE
+ DCEFDCDBEDDCDBE6D4D4DAC7C7E4D1D1EEDBDBECD8D8EBD8D7EDDAD9ECD9D8EC
+ D9D9E9D6D7E9D6D7EAD6D7E5D1D1E7D5D4E7D5D4EAD6D6EAD6D6E9D5D5E3CFCE
+ DAC5C5E3CFCEE7D2D1E4CDCCD6BFBFE4CDCD141212413B3AE4CDCCDCC4C3D8C0
+ BE594E4E000000000000000000000000000000131111907F7EE7CDCCDEC3C1DE
+ C3C1D7BBBADBC0BDE6CBC9EFD2D1F3D7D4E9CCCBEACDCBEDD0CEEED1D0E7CBCA
+ E6CAC7EACCCBD9BAB9DBBFBDE3C4C3ECCDCBEDCECDE6C7C5DABAB8E9C9C7E9C7
+ C7E6C7C4EDCDCBEDCDCBEDCCCB2C2524B19896EECCCB78656400000000000000
+ 0000DAB8B7F6D0CEEEC7C5EBC4C2F4CECCEEC7C5E1BBB9EEC7C5F0CBC9E0B9B7
+ E1BAB8E2BBB9625251000000141111EBC2BFE6BBB9F5CBC7EBBFBDF2C5C2F0C3
+ C1F7C9C6F9CBC72D2525BB9996EFC1BF7C64620000000000000000007A605FED
+ BEBAECBBB8EDBDB9E6B4B2E9B7B4EAB6B4E3B1ADEAB6B3EBB6B4EAB5B2EDB7B3
+ EEB7B4CD9C99000000000000D2A29EECB6B2EFB9B5F0B8B5ECB4B0EBB2ADF2B7
+ B2F3B6B2EFB0ABF3B1ACF3ADA9EDA59FF4A8A3F6A6A1F7A69FF7A49D472E2C2D
+ 1D1CF69A94F79891482C2A0000000000000000009F5A54FB9086FC9389FF9085
+ FF8B81FFA296FFC4B8FFBFB2FFC3B5FFDCCEFFCEBEFFCFBEFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6D4FFC4B3FFFFFFFFE4D6FFF3E4FFC1B4
+ FFB1A5FFB9ADFF9B91FE857B492825492C29FBA59BF9A9A248312F0000000000
+ 00000000BA8782F5B5AEF6B7B2F5B8B3F6BAB5EDB3ADF2B7B2F2B7B3F0B8B4ED
+ B6B2F0B9B4F2BBB7EFBAB6EDB9B5000000EEB9B6EBB8B4443534000000000000
+ 000000EBB8B5ECBAB7EAB9B6E9B8B5E7B9B5E9BAB8EABDBAE7BBB9E9BEBAEABF
+ BBEAC0BDEBC1BEEBC1BFE3BBB9E5BEBB141010766261ECC4C32C242400000000
+ 0000000000CDABA9E9C3C0EBC6C4EBC6C4EFCCC9F0CDCBF2CECBF2D0CDF5D1CF
+ F4D1CFE7C4C2F4D1CFECCAC7DFBDBBE7C6C4E7C7C5EBC9C6E9C9C6EBCAC7E1C1
+ C0E7CAC7E9CAC7DEBFBEEACBCAEACDCBEACDCC948181433B3BE9CECDEACFCE00
+ 0000000000000000453D3DE9CDCCECCFCEF2D5D4F0D5D4EED4D1EBCFCFE7CCCB
+ EBD0CFF2D7D6F0D5D5E4C9C9EAD0D0EED5D4EDD4D2EDD5D4ECD2D1E2C9C9E5CD
+ CCE1CAC9DCC4C4DFC7C7E4CDCCE5CDCDE1CACAE7D1D1E7D1D1E7D1D1EBD5D4EA
+ D4D5ECD6D7E7D2D1E9D4D22C2828453E3EF0D9D9E3CDCD453F3E000000000000
+ 000000938585EAD5D4EED8D7DBC6C4EDD7D7F3DCDBEBD5D5ECD6D7ECD6D6E6D2
+ D1E4CFCEE4CFCEE6D1D0E5D0D0E2CECCE2CDCCD7C1C0D6C1BFDAC5C4E1CCCCDC
+ C9C7D5C2C1D9C5C4DFCCCBDBC7C7E2CECDE6D2D2DAC6C6F4E0DFF9E5E4000000
+ 0000000000F0D9D8ECD7D5EFDAD9F0DBDBEEDBDAE7D4D2E7D4D2EFDBDBE6D4D2
+ ECD9D9EAD8D8E1CECEE3D0D0EDDBDAEEDBDBEDD9D9EEDAD9ECD9D8ECD8D8E9D6
+ D6EAD7D7EDDBD9ECD8D8EAD6D6EBD7D7ECD8D9EBD7D7E9D5D5E4D1D0DAC6C6E2
+ CDCDE7D1D0E5CECED5BEBD413B3B2A2525DEC6C5E6CFCEC9B3B22A2524000000
+ 0000000000000000000000005A504FC1AAA9E6CCCBEAD0CEE9CECDEFD5D4EDD1
+ D0EED4D1F3D7D6F5D7D6F3D6D4D6BAB9E3C5C3EFD2D1EFD4D1EFD1D0EDCFCEEE
+ CFCFE7CAC7E4C5C4DEBFBEE6C9C6EBCCCAE6C7C5DEBFBEEDCDCCECCBC9E5C4C2
+ E7C6C4E1C0BFEBCAC7000000EAC9C6EECBCA282222000000000000292222F4CF
+ CDF0CCCAE2BEBAD6B1AEDBB5B3E4BFBDD8B3B1F2CCC9F5CFCDF4CECCECC5C2DA
+ B4B2B59896000000000000967C7BEBC1BEF6CCC9E7BDBAEDC2BFE2B7B3EABDBA
+ B59392141111F2C5C2E6B9B72B2222000000000000141010E5B7B5E9BAB7E2B5
+ B2E3B4B2E0B1AEE2B3B0E3B4B2E3B4B1E7B7B5E7B8B5E3B3B0ECBBB8EEBDB9E4
+ B2AE2A20200000007C5F5DECB4B1EEB4B1EFB3AEEBACA8EAA8A4EEAAA6F0AAA6
+ F2AAA6F3AAA6F3A7A3F0A49FF0A39DEF9F9AF5A29CF6A19B9A6460000000F698
+ 92F696909D605C0000000000000000009F5E59FB9087FC9990FEA99FFF9D93FF
+ 988CFFACA1FFAEA3FFA698FFA89AFFFBEBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFF4DFFFFFFFFFFFFFFFE1D0FFB4A5FF9F92FFFFFFFFCCC0FFC0B4FF
+ B9ADFF988DFE9A9149302D492F2CFC958CFB8C842D1B1A000000000000000000
+ EFA7A1F3ACA6F6B1ABF7B5AEF8B7B1F5B6B0F5B6B2F3B7B2F0B7B2EEB6B1EEB7
+ B3EEB8B4EFBAB6ECB8B4000000ECBAB6E9B7B4443635000000000000000000EB
+ BAB7ECBEB9EBBBB7EBBDB8EBBDB9E9BAB8ECBFBBECBFBDEBBFBBEBBFBDEABFBD
+ DFB4B2E7BEBBE6BDBAEDC4C1796463141010EEC6C4B496950000000000000000
+ 002C2524E3BEBAE3BEBBE5C0BFEECAC7E9C5C3E7C4C1EBC7C5F3D0CDF2CFCDE3
+ C1BFEFCDCCF0CECCE9C6C3DCBBB9D9B9B6D7B6B4E1C0BED9B9B7D6B8B6DEBFBD
+ E7C9C7DCBFBEDBBFBEE0C2C1DEC0BF917F7F433B3BEACFCEEBCFCF0000000000
+ 00000000433C3BE6CBCAE9CECCEED4D1E5CBCAE9CECDE6CCCBD7BDBBD7BBBBE7
+ CECCEAD0D0E5CCCCE7CECDEAD0CFECD2D2ECD4D2ECD2D2E3CBCBE7D0CFE0C7C7
+ E1C9C7E1CAC9E0C9C7E3CDCCDCC6C5E3CECEDEC9C7E3CDCDEAD5D5E6D2D1EAD5
+ D5E7D2D1E5D0CF000000968988EFD9D9E4CECE000000000000000000000000B4
+ A4A4ECD8D7EED9D9D9C2C1E6D1D0F3DCDBECD6D5EAD5D4EBD6D5E9D4D4DAC6C5
+ E2CECDE9D4D4E4CFCFE7D2D1ECD7D5E9D4D2E6D1D0EAD5D5EDD9D8EFDADAE6D1
+ D1E7D4D2EED9D9E9D5D5E9D5D5F2DFDEDCCAC9EFDBDAF2DEDC00000000000000
+ 00F2DBD9F2DCDAF3DFDEF0DEDCF0DEDCEBD7D7F0DCDCF0DEDCEDDADAEEDBDBE9
+ D7D8E0CDCDDECBCBE9D5D5EFDBDBEBD7D7EEDAD9ECD9D8E7D4D4E5D4D2E5D2D2
+ EAD8D8E7D4D2EBD7D7ECD8D8EAD5D6E6D4D2E9D5D5E3D0CFE1CCCCE3CECDEAD2
+ D1E9D1D0716565141212C1ADACE0C7C6CAB5B314121200000000000000000000
+ 0000141212928281E0C5C3E1C6C6E9CECDECD0CEEDD1CFE7CCCCE2C6C5E1C5C3
+ E0C4C2EFD1D1DBBEBDCFB3B2D0B5B4E7CBCAEED1D0EDCFCEEDCFCEECCECCE7CA
+ C9E7CAC7E0C1BFEACACAECCECCE9CAC7EBCCCAEFCFCEEAC9C7EDCECCEECDCCE5
+ C4C2907B7B403736E9C6C4EECCCA0000000000000000005B4D4CF4D0CEF5D1CF
+ DAB5B4CFAAA9D9B4B2E0BAB8D2AEACD7B2AEF4CECBF5CECCF3CCCAE2BBB8F3CB
+ C92D26250000002C2323EDC4C1F8CECCF2C7C4EFC5C3DEB4B2EABFBB2C23237D
+ 6665F4CAC6B89895000000000000000000614F4EEDC2C0EEC3C1EFC3C1ECC1BF
+ E6BBB8EDC0BDEDC0BEECBEBAEFBFBDEFBEBAECB9B6EDBAB7EEB9B6E3ACA95B44
+ 42000000453433EAACA9EEB0ACEFB0ACEBA9A6EEABA7EFABA7EDA7A3F2AAA6F2
+ A8A4F2A6A1EA9C98EC9C97F09E99F5A19BF49F9AD58A84000000B97A74F59D97
+ BB767000000000000000000048302EF99E96FB948AFC958BFE9C93FF9186FF8A
+ 7FFF8D82FFC5B8FFFFFFFFF9EAFFFFFBFFFFF3FFFFFFFFFFFFFFFFF0FFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFEAD7FFFFF7FFFFF2FFE5D6FFB0A2FF9487FF867BFFFFF6FFC4B9FFA2
+ 98FEB1A7160F0E814E49FB9D95FBA79F000000000000000000462A28EE9690EF
+ 9E98F0A59FF6B1AAF6B2ABF4B1ABF3B1ACF4B5B0F4B5B1F0B4B0F0B6B2EEB6B2
+ EFB9B5EDB8B4000000ECBAB7ECBAB7443636000000000000000000EDBEBAEFC0
+ BDEBBBB8EBBEB9EBBEBAE7BAB7ECC0BDEEC2BFEBC0BDECC1BEE2B7B5DCB2AEDE
+ B6B3E1B8B6ECC4C1CBA7A6000000B49594E9C0BD2C2524000000000000000000
+ CAA8A6DCB7B4E0BBB8EDC7C5E9C4C3E0BBB9E6C3C1F2CECBF5D1CFF0CDCBF2CF
+ CDF2D0CEF0CECCECCAC7EECDCAEDCCCAF2D1CFD6B6B5D4B5B3E5C6C5E4C5C3D5
+ B7B5D7B9B7DCBFBED6B9B8887675403939E7CCCAE9CCCB000000000000000000
+ 453D3DECD0CEEBD0CFF2D6D5EFD5D4F0D7D6F0D7D5EBD1D1ECD4D1F0D8D7EFD7
+ D6EDD5D4EDD6D5EAD1D1EAD1D0EBD4D4ECD4D2E7CFCFE7D1D0E1C9C7E9D1D0EA
+ D2D2E7D1D1EAD4D4E9D4D4ECD6D6E9D4D4ECD6D5ECD7D7E7D4D4EAD5D5EBD5D5
+ B1A1A1000000D1BFBEEFDAD9CFBBBB000000000000000000000000EDDAD9ECD9
+ D8EBD6D6D8C2C2E6D1D0EDD8D7F0DADAECD6D5ECD7D7ECD7D8E3CFCEE7D2D1EB
+ D7D6EAD4D4EAD4D2EDD7D7ECD7D6E7D4D2E9D5D4EFDBDAF0DBDBE9D5D5ECD8D7
+ EDD9D8ECD8D7EFDBDAF4E1E0DBC7C7E9D5D4E9D5D40000000000000000EED7D7
+ E6D2D1ECD8D8E1CECDE7D6D5E9D6D5EEDBDAF0DCDBE4D1D0E5D2D1DCCACAE5D2
+ D2E0CDCCE4D0D0F0DEDCF0DCDCEFDBDAECD9D8EAD6D7E7D5D5E6D5D4EBD8D8EC
+ D9D9EBD8D7ECD8D8E5D1D2E0CCCBE1CDCDDAC6C5DBC7C5D9C1C1E4CDCCC1ACAB
+ 131010928383D8C1C0D6BEBD1412120000000000000000000000003E3737C2AC
+ AAE5CBCAD8BEBDE6CCCBEACFCEEDD2D0EACFCED9BEBBD5BAB8E0C4C3E7CCCBF2
+ D5D2E7CBCACFB4B2D0B5B3E0C3C2EDD0CFEFD1D0F0D2D1EDD0CEECCDCCECCECD
+ EECFCEEDCECCE9CBC9E5C6C4ECCDCAEDCDCCE1C1BFEACAC9EFCFCDEDCCCA4239
+ 388C7876EDCCCA988381000000000000000000A88D8DF4CFCDEFCBCAEDC7C5ED
+ C9C6F0CBCAF0CBCAD4AEADD4AEABD8B4B2EAC4C2E5C0BDDFB9B8EDC6C37B6664
+ 000000000000C2A19EF6CECCF7CFCCF5CDCAEDC5C2B39492151212F4CCCAF2CA
+ C72C2524000000000000000000D4AEACEDC2BFECC1BFEDC0BEEEC0BFECBEBBEF
+ BFBDEFBEBBE7B5B3EDBAB7EEB9B6EDB7B4F0B9B6EFB7B5E4ABA8AA7E7B000000
+ 000000ECAEABF0B2AEEFAEABE7A6A3EDAAA5F0ABA7F0A9A5EDA5A1EA9F9BF0A5
+ 9FEB9E9AEA9D97F0A39DF4A7A2F5A59FF3A19B2D1D1C633F3DF49D96F6A39B15
+ 0F0E0000000000002E1C1AFB9B93FB9890FC8C83FE7F75FF7A6FFFA297FFEBDF
+ FFD2C5FFFEEFFFD0C2FFFFFFFFD7C6FFFEECFFD4C1FFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4FFFFFFFFFFFFFFFFFFFFF5E2FF
+ FFF9FFE0CFFFD4C4FFE0D1FFD4C5FFB1A4FF9185FF7C71FF7369FED4C9FDC9BF
+ 0000009D6964F9B0A7BD7D760000000000000000007D5653ED9E98EE9A95F29B
+ 96F6A29CF6A7A2F2A7A2F5AEA9F5B3ADF3B3AEEBADA8EEB2ADEBB1ACEFB6B2EF
+ B7B3000000EDB8B5ECB8B5443635000000000000000000E4B5B2EBBDB9E4B6B3
+ E9BAB7E4B7B4E2B6B3E7BBB8EBBFBDEBBFBDECC1BEE1B6B4DAB1ADDBB3B0E1B8
+ B5E6BFBDE5BDBA1411117A6563E9C0BE7D68670000000000000000007B6765E9
+ C3C1E7C2C0ECC7C5EEC9C7EBC6C4E7C4C2EBC9C6F2CECCF0CDCBEFCDCBEFCECC
+ E6C4C3E4C1C0EBCAC7EECCCBEFCECDD5B4B3D5B5B3E7C9C6E6C9C6E4C4C2EBCB
+ CAEFD1CFDEC0BE8673723E3636E9CDCCE9CDCC000000000000000000463D3DEC
+ D0D0ECD0CFF2D5D5F0D7D6F2D8D7F0D8D6EAD0CFE9D0CFEDD4D4E7CECEEAD1D0
+ EED6D6E9D0D0E4CDCCE6CECEEAD2D2EAD2D4EAD4D2E4CECDEBD4D4E9D2D2E2CC
+ CCE7D2D1E9D2D4EDD7D7E6D1D1E9D5D5EAD5D6E9D4D4E6D1D1E3CDCD756A6A14
+ 1212EDD9D8EFDAD9766B6B0000000000000000002C2828E6D2D0E3CFCFE3CECD
+ D4C0C0D9C5C3E6D1D1ECD7D6E0CBCBE4CFCEEAD6D5E4D0CFE7D2D1EAD5D4E5D0
+ CFE5D0CFEDD7D7ECD7D6E7D5D4E0CCCBE7D4D2EAD7D6E6D1D1ECD8D7F0DBDBE9
+ D5D5E7D5D4F2DFDFECD7D6F2DEDCF7E2E10000000000000000D2BDBBD4C1C0D2
+ C0C0D1BEBDD2C0BFD5C2C1E2CFCED7C3C3D2BFBED5C2C1D5C2C1E1CECDE4D1D1
+ DECBCAE7D5D5D9C5C4D4C0C0D4C0BFD4C0C0D8C4C4E4D1D1E9D5D6E4D1D0EAD5
+ D5E6D4D2D7C4C3D1BEBED1BDBDD2BEBDDFC9C7E1C9C9DEC6C66B5F5F272222EC
+ D5D4D5BEBD564C4B000000000000000000000000594F4ED1B8B7D4BAB9D8BFBE
+ D5BBBAEACFCEECD1CFEACFCED8BEBBD4B9B8D2B7B6D1B6B5DABFBDEDD1CFEFD1
+ D1CFB3B2D0B4B2D5B8B7DCC0BEE2C5C3D8BBBAD1B4B3D8BAB8E7CAC9E5C7C5D5
+ B6B5D5B6B5D6B6B4D1B3B1CEAEADD1B2B2DEBFBDEDCECDE3C3C2120F0FBB9E9D
+ E6C5C35F5251000000000000000000D2B0ADDCBAB8E5C1C0E6C3C1F0CCCBF3CE
+ CCE4C0BED2B0ADD4AEACE1BEBBF5D0CEEECAC7EAC4C2E5C0BED7B3B000000000
+ 0000574947F3CCCAF4CECBDBB5B3D8B1AD2922227E6968F2CAC7A68685000000
+ 000000000000614F4EE2B5B3DCB0ADDEB0ADDFB0AEE4B4B1E5B4B2EBB9B6E3B1
+ ADDEABA9DFABA8E0ABA8E0AAA7EAB3B1E7B0ACE3AAA8E0A6A300000000000092
+ 6B69EBABA7E3A39FE3A29DEBA8A4EFAAA7E7A29DE59F9BE6A19BE9A39DE69E9A
+ E69D98E99D98F5A6A1F6A69FF5A6A1805854150F0EEEA19AEF9B95613D3A0000
+ 00000000000000F78C84F88279F97F75FC9489FEBFB5FFC6BBFFC2B7FFD0C4FF
+ BAADFFFFFFFFC1B2FFDFCFFFB1A1FFFFEEFFFCE9FFFFFFFFFFFFFFFFF7FFFFF2
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFBFAEFFEA
+ DAFFD6C6FFA597FFC5B8FFC1B5FFAEA4FF8E84FE7E74FC786E9E4D47000000F6
+ C9C0F5A49B7E534E000000000000000000D28883ED9D97EEA49DF3ACA7F6ADA9
+ F6A9A5F5A7A2F4A49FF6A9A4F0A9A4E9A5A1E9A9A5E7ABA7ECB2ADEEB6B20000
+ 00EDB6B2E7B2AD433433000000000000000000E1B1ADECBDB8EEBFBDEDBEBAE0
+ B2AEE0B3B0E2B6B3E1B5B3EDC1BEF5CBC6F2C5C3DAB1ADD8B0ACDCB3B1DEB6B3
+ DEB6B44035343F3433E2BBB9B69998000000000000000000413736DAB5B4D7B3
+ B1E3BFBDEECCCAEAC6C4D9B6B4D9B6B5DAB7B5DEBAB9EECCCBEDCCCAD9B9B7D4
+ B3B2D7B6B4EAC7C6F2D0CED7B7B5D5B6B4ECCDCBECCCCAE9C9C7E7C7C6ECCDCB
+ D6B6B48571703E3635EDCFCEE2C4C3000000000000000000423B3AD6BAB9D6BA
+ B9D7BDBBD9BFBFEBD1D1EDD5D4DCC3C3DAC1C0D6BDBBD7BEBDDEC5C4EDD5D5DC
+ C3C3D6BEBDD8C2C1E2CBCCE7D0CFE2CCCBDBC3C3E1CACAD5BEBED6C0C0D7C2C1
+ D9C3C2E6D1D1DFC9C9DBC6C5D8C4C3DBC5C5D8C3C3D6C1C0282323564E4EE9D5
+ D2EAD5D4282423000000000000000000716666D2BFBED2BEBED1BDBBD2BDBDD8
+ C3C2E3D0CFDFCACAD2BFBECFBAB9CFBAB9D4C0C0E3CECDE3CECDD5C0BFE6D1D1
+ ECD7D8EBD7D6D9C5C4D0BDBDD5C1C0D4C0C0D5C2C1F0DBDBF2DFDED4C0BFD0BE
+ BDD4C1C1D4C1C0D2C0BFE3CFCE0000000000000000EDD9D8E6D2D1D1BFBED0BE
+ BDDAC7C6DAC7C6D9C6C5D1BFBED8C5C4DECAC9D4C1C0D2C0C0DECBCBDBC9C9D9
+ C5C5D0BEBED4C1C1D8C4C4D5C2C1D2C0BFD6C4C4E5D2D2E7D5D4E6D2D2E6D4D4
+ E3CFCFD1BEBECEB8B7DFC9C6EAD2D2E0CAC9CFB8B7120F0F8B7D7CEED7D6A695
+ 93000000000000000000000000928180D2B9B8D0B6B5E5CCCAEAD0CEDBC1C0E5
+ CBCAE2C6C6D2B8B7CFB4B3E1C6C5DBC1C0D1B6B5D0B5B3EBCFCEF0D5D4CFB4B2
+ D0B3B2D7BBB9DBC0BFD6B9B7D0B4B2D0B4B2D9BDBAE1C4C2D4B6B4D2B5B3E1C3
+ C1D6B6B5CEB0ADCEB0ADD9B9B8E6C9C6EDCECD9E8786272121DBBBBADFBFBD13
+ 0F0F000000000000413838D2B1AED1B0ACE2C0BEE3C1BFD2B0ADCFACAAD2B1AD
+ D5B3B1E0BDBAF5D2D0F5D2CFF5D1CFF4CFCDF4CFCCE3BFBD5647460000000000
+ 00ECC4C2E4BDB9D6ADABA48683000000D0ACA9E7BEBA57464500000000000000
+ 0000CBA5A2DBADABDEB0ADE7B8B6E9B9B7E4B3B1E6B6B3E5B4B1DEABA8E0ADAA
+ EAB5B2E1ADAADFA9A6E4ADABECB5B1E6ADAAE0A6A341302F0000005F4543E4A7
+ A3E2A39EE4A5A1F2B0ABEAA9A5E5A49FE7A59FF0ABA7ECA59FE59C97E69C97EB
+ A29CF6AEA9F6B0AAF5ABA6D7938D00000096625EF4A19AB97973000000000000
+ 0000009B534EF79389F9B0A6FBC6BDFDA499FFC6BBFFA79CFFA99DFFFFFBFFAE
+ A2FFC5B8FF9889FFE9D9FFC9B9FFFFFFFFFFF7FFFFFCFFFFFFFFECD8FFFFFFFF
+ FFFBFFFFFFFFFFFFFFFFFBFFEBD8FFFCEAFFFFFFFFEEDFFFFEEEFF9C8DFFCFC2
+ FFC7BAFF857AFFB1A5FFADA3FFA59AFE998EFB877E6434302D1716F8827AF6B2
+ AA2C25230000000000002D201EF2ABA6EDA49EEEA29CF2A19CF6ABA6F5AEA9F6
+ B4AEF4B2ACF4AEA9E7A19CE7A29CEFA8A4E6A39EE6A5A1E9ABA7000000E7B0AC
+ E5B0AB433433000000000000000000E3B1ADEEBEBAEEBEBBE1B2AEDFAEACEBBD
+ B9EDC0BDDEB1AEDEB2B0F6CAC6F4C9C5DAB1ADD9B0ACEBC1BFE1B8B6DAB3B03F
+ 34333E3333E6C0BDEAC3C1000000000000000000000000D6B2B0D6B2B0EAC6C3
+ EECAC7D7B5B3D7B4B2E5C1C0E2C0BED6B4B2E3C1BFF3D1CFE4C2C0D4B3B2D8B8
+ B6EECDCBEBCBC9D7B8B6D5B6B4E5C7C6E7C9C6D4B5B3D2B3B2D2B3B2D4B5B489
+ 7675423A39F0D2D0EED1CF0000000000000000003D3535D5B9B8DAC0BED8BEBE
+ D5BBBAD8BFBEEED5D4E4CAC9D6BDBBD4BBBAD9C1C0E7CECDEAD0CFD5BBBBD5BB
+ BBDCC5C4E6CFCEE9D1D0E3CDCDDAC3C3D5BEBDD4BDBDDBC6C5E5CFCEDAC4C5E2
+ CDCDDFC9C9D6C0C1D6C0BFE2CDCDDFC9C9BAA8A7000000A59595DEC9C9C6B4B3
+ 000000000000000000000000BAA7A6DAC5C5E4CFCFD4BEBDCEB8B7D9C5C4F2DC
+ DBE7D2D1D2BFBECFB9B9CDB7B6E0CBCAEDD7D6EDD8D8DCC7C6E5D1D0E5D1D1D8
+ C4C4CFBDBBD1BEBDE4D0CFD8C4C4CEBABAE2CECDF3E0DFCEBBBACEBABAE3CFCE
+ D9C5C3CCB8B7CCB8B70000000000000000F4E2E1ECD9D8D0BEBDD2BFBFF0DEDC
+ E6D2D1D4BFBFD1BEBEEDDAD9EEDBDAE1CECED2BFBFDAC7C7E4D1D1D9C5C5D1BF
+ BFEEDBDAF2DEDCEAD6D7D2C0BFD2C1C0E9D6D6EFDBDBEEDBDAEAD6D6E9D6D5D1
+ BDBBCDB6B5E5CFCEEBD4D2DBC5C4B5A19F000000E6CFCEEDD6D5403A39000000
+ 000000000000766A69EAD0CFD4BBBAD0B8B6DEC4C3EDD1D0E1C7C6E6CDCDE1C6
+ C5CFB4B3D2B9B7EFD5D2EED1D1DBC0BECFB5B3E7CDCBF4D8D7CFB4B2D0B5B4EB
+ CFCDECCFCEEED1D0D4B7B6D0B4B3EED0CFE7CCCAD0B4B2D5B8B5E4C5C4D7B9B7
+ D0B2B0CEB1ADDEC0BFEBCCCBECCDCB6C5B5B554848EACBC9D1B6B50000000000
+ 000000007C6B69E5C4C2CFAEACD4B3B2D1B0ADCFADABD5B3B1E7C6C4E3C0BEEB
+ C7C5EFCBCAEDC9C6F2CDCAEBC7C4F2CDCAEBC5C2A185820000000000007B6564
+ E6BEBAD6ACAA2A22225F4E4DECC2C0C29D9B0000000000000000002B2222E3B7
+ B5DBADABE2B3B1EBBBB8ECBDBAEEBEBDECBBB8E1B0ADDEABA8ECB8B5EFBAB8EE
+ B9B7DFA9A6E1AAA8EEB6B4EBB2AEE0A7A4916C6A000000140F0FE6AAA7E2A6A2
+ E7A9A6F3B3AEEAA8A4E4A39FEBA7A3F0ABA7EEAAA6E5A29DE6A6A1EEAAA5F5AC
+ A7F4A8A3F3A49EF2A49D452E2C2C1D1BF59C96F897922D1A1A0000000000002D
+ 1F1DF9CAC1FCB0A6FDB2A8FBB4AAFD988DFFA79CFFD5C9FFA195FFB2A5FF8579
+ FFC1B3FFBDAEFFE5D6FFF5E5FFFFFCFFEFDFFFFFFFFFCBB9FFF9E6FFF4E2FFFF
+ FFFFFBE9FFFFFFFFD8C7FFF2E1FFC6B7FFFFFFFFBAACFFE3D5FF897DFFBAADFF
+ B9ADFF7267FF9E94FEA399FDA79DFBA197150D0C814844F88982DA766F000000
+ 000000000000BA8986F2A49DECA39CF0AAA5F4B2ABF5B0AAF6ADA8F6ACA7F3AC
+ A8EBA8A4E7A9A4EAADA8F2B3AEEAA9A5E5A4A1E7A6A2000000E5A8A5E5A9A745
+ 3433000000000000000000E5B3B0EEBDB9EDBDB9DFB0ACE1B3AEECBDB9F0C1BE
+ DEB1ADDEB1ADF3C6C4F2C7C4DCB2B0E0B5B3F2C7C5ECC4C1EAC2BF3F34333F33
+ 32F2CAC7E7C2BF000000000000000000000000D8B3B1D7B4B1EAC5C3E4C0BFD6
+ B4B2DAB8B6E6C5C3EECDCBD6B5B3D6B5B3F2D0CFEECDCBD4B4B2DFBEBBE6C6C4
+ EBCCCAD8B9B7D6B8B6E5C6C5E1C2C1D2B3B2D2B5B3DFC0BEEED0CF988584433B
+ 3BEED1CFEFD1D00000000000000000003D3635DBC1C0E9CECEEACFCED5BBBAD5
+ BBBAE6CDCCE9CFCED6BBBBD4BBBAE1C7C6EACFCFEBD2D2D4BBBBD6BDBBEDD5D4
+ E7CFCFE9D2D1DEC6C6DBC4C3D8C1C1D5BFBFE3CECDE7D1D1E1CBCCE3CECED9C4
+ C3D5BFBFD7C1C0EAD4D4E2CDCC564E4E282323ECD6D6ECD7D65E565500000000
+ 0000000000292424D4BFBFEBD6D7F2DCDAECD6D5CEB8B8D4BFBEEFD9D9E5D0CF
+ D1BDBBD0BBBACEB8B8DCC6C5F0DBDAECD7D7DFCBC9E6D1D1E3CFCFD1BEBDCEBB
+ BBD8C5C4F2DFDEF2DFDECDB9B8DECACAF2DFDECDB9B8D5C1C0F3E0DFF7E2E1D0
+ BBBACBB8B70000000000000000F3E0E0F0DFDED1BFBED2C1C0F2E0DFEDDAD9D4
+ C0C0D0BEBDF0DCDBEFDCDBE5D1D1D1BEBDDBC7C7E5D1D1D8C4C4D2C0BFF0DCDC
+ F0DCDCEEDBDAD2C0BFD2C1C0E5D2D2F0DCDCF0DCDBF0DBDBF3DCDBD1BDBBCBB5
+ B4ECD5D5F3DBDAD9C2C1837473272222E6CECEF0D9D80000000000000000003D
+ 3737DBC3C1ECD2D1EAD1D0D2BAB8D5BBBAEDD2D0EFD6D5EED5D4EAD0CFCFB5B3
+ D6BBBAEED2D2E7CCCCD9BEBBD0B5B4E4C9C7F3D6D5D0B5B4D2B7B6E5C9C7DFC3
+ C2EDD1CFD6BAB9D1B5B3EFD2D0EDD0CFCEB2B0DBBEBBF0D4D1E1C3C1D4B6B4CF
+ B2B0D6B7B5E2C5C3EBCDCB2722219F8787EDCFCD7C6C6B000000000000000000
+ B79D9CEECCCACFAEACD4B2B0D0AEACD2B0ADF4D0CEEDCBC9E3C0BEECC9C6EECA
+ C9F0CDCAF4CECCF4CECBF4CDCBEAC3C1D5AEAB282120000000151211ECC2BFA2
+ 8281000000D0AAA8EDC3C0594847000000000000000000B79593ECBFBDE3B6B3
+ DFB1AEE3B5B3EBBAB8F0BFBDEEBDB9E1AEACDEAAA8EDB9B7EFBAB8EFB9B7DFAA
+ A7E0AAA7EDB6B4EAB4B1E0A9A6CD9C99000000000000CB9694E2A5A1E6A7A4F3
+ B2AEE7A7A3E4A6A2EDB0ABEFB3ADF2B2ACE5A39DE6A19BF2A8A3F3A8A3F3A9A4
+ F3A8A2F3A49DB67571000000985C58F5938C9C625E000000000000000000DB94
+ 8CFBBBB2FCA69DF9978EFCB4AAFEB4AAFF9388FFA196FF766BFFA195FFB2A5FF
+ B6A8FFF3E4FFD8CAFFE1D2FFC2B3FFC3B4FFBFAEFFC7B7FFDECDFFFFFFFFB8A8
+ FFEBDBFFF5E5FFEFE1FFCDBFFFD0C2FFEEE0FFAEA2FFCCC0FF7F73FFA99EFFAB
+ A1FE756BFD9389FCA298BD7C74000000D98982F7948B804B460000000000002D
+ 1B1AF2A9A3EEC9C2ECB2ABEDA7A1F0A8A3F2AEA9F5B6B1F6B5B0EEACA8E7A39F
+ E9A5A1F0B1ABF5B7B2F5B9B4E6ADA9E7AEAA000000E4A8A5E5A8A54533320000
+ 00000000000000E3ADAAEFBBB9EEBBB8E0B0ADE3B5B2F0C2BFF0C2BFE1B2B0DE
+ B0ADF3C6C4F0C5C3DEB3B1E2B8B6ECC3C1E1B9B7E3BBB94034343F3433F2CAC6
+ EAC2C0000000000000000000000000DAB7B5D8B5B3EBC9C6E5C3C1D7B6B4DCBB
+ BADFBFBDEAC9C6D7B7B5D6B5B3EDCCCBECCCCAD4B4B2E1C1BFE7C7C6EECECDDB
+ BDBAD6B8B7E5C7C6DCBFBED4B6B4E4C5C3E5C7C5F0D1D0988584423A39EDCECD
+ E9CBC90000000000000000003D3636E3CAC9EDD4D2EBCFCFD6BDBBD5BBBAE7CE
+ CDE5CBCAD7BEBED4BBBADFC5C5E6CDCCE3CAC9D4BBBBD5BBBBECD5D2EAD2D1E7
+ D0D0DCC6C5D7C1C1DCC6C6D7C1C1D7C2C2DEC7C6E6D0CFEAD4D4DEC6C7D7C1C0
+ D8C2C3EDD7D7CEBABA000000A29292EDD9D8D1BFBE0000000000000000000000
+ 00A29292D4BFBFE7D4D2EBD5D5ECD6D7CFB8B8DAC5C4F0DAD9E7D1D1D1BBBBD6
+ C1C0D4C0BFD1BDBBE9D4D1E5D0CFE1CCCCE6D1D1DBC7C7CFBDBACEBBBAE1CDCC
+ F2DEDCF4E1E0CEBABAD5C1C0E9D5D5CDB9B8D4C1BFEDD8D9E7D5D4CFBBBACBB8
+ B70000000000000000EEDBDAE6D5D4D1BFBED2BFBFF0DEDCEFDCDBD5C2C1D0BE
+ BDE7D4D4EFDBDBD8C5C4D0BDBBDCC9C7E1CECDD6C2C2D2BFBFEDDAD9EEDCDAE7
+ D5D5D2C0C0D2C1C0E1CCCDECD8D8EED9D9F2DCDBF4DFDCD1BAB9CBB4B3F2DAD8
+ F4DEDCD7C0BF8374733D3635E1C9C9958585000000000000000000BBA6A6D0B8
+ B7D9C1BFDBC2C1D0B7B7D1B9B7DFC5C3D6BEBBE5CBCAD9C0BECFB5B3D2B9B8EF
+ D5D4EDD2D0DBC2C0D0B7B7DCC2C1F0D6D5CFB5B4D0B6B6E3C6C5D7BDBAEED1D1
+ D2B7B6D0B5B3EFD2D1EFD2D1CEB1B0D6B9B7EFD1D1E7CCCAD1B4B3CFB3B1E2C5
+ C3E6CAC7CDB3B1000000D2B3B2F0D1CF463D3D000000000000000000F0CFCDE4
+ C2C0CFAEACE1BEBBD5B2B0D7B5B3EFCDCBEECCC9E6C2C0D8B5B3D8B3B1EDC6C4
+ F4CFCCF2CBC9F5CECCEAC3C0D5AEAB705B5A0000000000007862602820204034
+ 33E6BDBAE1B7B5000000000000000000292120EBBFBBECBFBDDEB1AEDFB2B0E2
+ B4B1E0B2B0E7B7B5ECBAB7E0AEACDEABA8E9B6B3EDB9B7EEBBB9DFABA7E0ADAA
+ ECB6B3E9B3B1E0A8A6E7B0AC2C2222000000765856E2A6A3E5AAA6F3B7B3E9AE
+ AAE4A8A4EEB0ABF3B2ADEFABA7E59F9BE6A19BEEA7A3EFA7A2EEA29BF0A19BF0
+ 9C96ED938D442A28140D0DF0A29AEFB0A82D2221000000000000644844F99B93
+ FB9B92F8BFB5FBA399FE9489FF988DFF6C62FF897EFFA79BFF988CFFD5C7FFC6
+ B9FFE2D4FFC6B8FFB7A9FFAB9CFFC0B1FFA596FFCABBFFFFFFFFBFB0FFD2C3FF
+ C2B4FF9183FFC2B4FFA89BFFE9DBFFB8ACFFAEA3FFB7ABFF756BFE9E94FDAA9F
+ FD8278FC8B822E1D1C2D1E1CF6A49BF8A49B150E0D000000000000B9706AF291
+ 8AEE9089EBA39DEEC3BDF0BBB6F2B1ABF5ADA8F6B4AEECADA8E6AAA6E7AAA5EF
+ B0ABF5B4B0F6B5B1E4A7A3E4A8A4000000E4ADAAE3ABA9433332000000000000
+ 000000E3AAA7EFB8B5EBB6B3E0ABA8E3B2AEF3C2BFEFC1BEE0B2B0DEB1AEF0C4
+ C1EEC3C0DEB4B2E0B6B4F0C6C4EAC1BFE6BEBD2921218A7170EFC6C4E4BDBA00
+ 0000000000000000141111D9B5B3D8B5B3ECC9C6E4C1C0D8B6B5DBBAB8DEBDBA
+ E4C4C2D9B9B7D8B8B7EDCCCBE1C1BFD4B4B3D8B9B7DCBDBBEBCCCAD9BAB8D6B8
+ B6E9CBC9E4C5C4D7B9B8EACCCBECCDCCEED1CF8B79783D3534ECCECCEFD2D100
+ 00000000000000003D3635DCC2C0EED5D4EBD1D1D6BDBDD7BEBDF0D8D6EBD1D1
+ D8BFBFD6BEBDEDD5D4EFD9D7EAD2D2D6BDBDD6BFBFEDD6D5EFD8D8EFD7D8EDD6
+ D6E2CDCCDEC7C7D7C1C1DCC6C5E3CDCCE0C9C9EDD7D6E4CECED5BFBFD7C2C1ED
+ D8D8605757282323D5C0C0E9D2D25F56560000000000000000002C2827DCC7C7
+ D2BFBFE3CECEEAD4D4E5CFCFCFB9B8E5CFCFF0DAD9D4BFBED1BBBBE2CDCCD9C5
+ C5CFBAB9E2CDCCECD7D8E5D1D0E7D4D2E1CECCD0BDBBCEBBBAD6C2C1ECD7D6EC
+ D8D7CEB9BAD4C0BFE9D6D5CEBABAD4C1BFF4E1E0F0DBDACFBBBACBB8B7000000
+ 0000000000DCC9C9D6C4C3D0BEBDD0BEBDE1CECDE7D4D4DCCACAD1BFBED8C5C4
+ E5D1D1D4C1C0D5C1C0E9D6D5D8C5C4D1BEBDD1BEBEEAD7D7EFDCDBDFCCCBD1BF
+ BED1BFBFECD8D7F3DCDBF3DCDBF2DCDBEBD5D4CBB5B4CBB5B3DAC3C2F2DAD9D6
+ C0BF8273723C3535DCC4C3877A790000000000002B2626D6BFBDCEB7B5D2BAB8
+ D5BDBBD0B6B6D1B9B8D5BBBAD1B8B7EAD0CFD9C1BFD0B7B6D6BEBBEFD7D6EDD2
+ D2D5BDBAD2B9B9DBC3C2E7CECDD0B8B7D2B9B8EDD1D1E6CDCBE6CBC9D0B4B3CE
+ B3B1F0D2D1F3D6D4D1B5B3CFB2B0E3C5C3DBBEBBCEB1AED0B2B0E2C4C2E6C7C6
+ 7364633D3333D0B1AEE2C1C00000000000000000003F3635DEBDBAD4B2B1D2B2
+ B1E2C0BED8B6B4D5B2B0DEBAB8E6C2C0D7B3B1D4B0ADD4B0ADE4BFBDF3CDCBF2
+ CCC9F7D0CDE1B9B7D5ADABD6AEAB14100F000000130F0F000000A88886E4BAB8
+ 715C5A000000000000000000A48482DCB0ADE7BAB8DBADABDFB2B0E0B2B0DEAE
+ ACDFB0ADE5B5B3DEAEABDEACAAEBBAB6F0BFBBE9B6B3DFABA8E0ABA8E5B0ACE3
+ ACA9E0A8A5E4ACA9614948000000423231E2AAA7E4ACA8F2B7B2EFB2ADE3A49F
+ E5A6A2EEADA9E9A7A3E5A59FE5A19BEFA6A1F2A59FF3A29CF49E99F49E98EB99
+ 94CE8B85000000624B48EEA8A2B87F7B000000000000000000D98A83F7C6BEF7
+ 9990F8948AFC978DFD736AFE7D72FF9C92FF8D83FFA89DFFC7BBFFB5A9FFC0B4
+ FFB6A9FFE6D8FFA496FFC1B4FF8D80FFBAACFFFFFDFFCDC0FFDECFFFC6B8FFB5
+ A8FFCFC3FFACA1FFA79BFFEDE2FF988DFFACA2FE9C92FC796EFC9D94FCABA2BF
+ 6962000000B97670F4A198805653000000000000452C2AF0958EF49792ED918B
+ EB9089F29994F4ADA8F3C2BDF3C1BBF5B8B4EBA9A5E6A6A2E5A7A3E6ABA7E7AC
+ A9E6ABA7E2A5A2E2A5A1000000EEB3B0E1A9A5443433000000000000000000E5
+ B1ADF4BFBAE4B0ACDFAAA7E4B0ACF0BDB9E9B7B4DFB1ADDFB1AEECBEBBE2B6B4
+ DEB2B0E0B5B3F2C7C5EFC5C3E2B9B7000000A48685EBC3C1937A790000000000
+ 00000000423837D9B6B4D9B6B5EDCBCAEDCBCADCBAB9DBB9B9E2C2C0DFBFBED9
+ B8B7DABABAEACBCADBBDBBD6B6B5D5B5B3DABAB8E2C2C0D5B6B4D5B7B6E5C6C5
+ E9C9C7D7B9B7DBBEBBE2C4C2DCBFBD3D35353D3535EBCDCCF0D2D10000000000
+ 000000003E3636D7BDBBE6CCCCDFC6C5D7BFBFE2C9C9ECD5D4DFC6C5D6BFBED6
+ BFBEE1C9C9E5CECDD9C2C2D6BFBED6C0C0E9D1D1EFD8D8EED8D7EDD7D7E9D4D4
+ DCC7C7D7C2C2E1CCCCE3CDCCD6C0C0E0CACADAC4C4D5BFBED6C0BFB4A3A30000
+ 00A19190D5BFBEAC9C9C000000000000000000000000AC9C9CDEC9C9D4C0C0D4
+ C0C0D6C1C0D2BDBDD0BAB9DCC6C5D5BFBFCFB8B8D0BABADAC5C4D6C2C1D0BDBB
+ D6C2C1E5D1D0E6D1D0E9D6D5EAD7D6E0CCCBCFBBBAD0BDBBE4D0CFD9C6C5CDB9
+ B8D5C1C0EEDAD9D7C3C2CEBBBAECD7D6DFCBCBCCB9B8D1BEBD00000000000000
+ 00D9C6C5D9C6C5D2C0C0D2C0C0DBC9C7EDDAD9EEDBDAE3D0CFD8C5C4DAC6C6D5
+ C2C1E9D5D4F0DCDBDAC7C5D2BFBED5C1C0E7D4D4EDDAD9D9C5C4D1BFBED5C1C1
+ EAD6D6F2DCDBEDD8D7EAD5D4E3CCCBD1BAB9CFB7B6D2BBBADEC6C5DAC4C38679
+ 78272222D8C1C08779790000000000005D5453E2C9C9D5BEBDE5CDCBECD2D0D7
+ C0BED5BDBBDBC3C2E2C9C7E9D0CFD9C3C1D2BABAE6CECDEFD7D7E7D0CFD7BFBE
+ D5BDBBE1C9C7E1C7C6D4BBB9DAC2C0796B6AE6CCCCDEC3C1D1B5B3D0B3B1F3D7
+ D5F0D5D1E5C7C5D6B8B6D6B9B6DABAB9D6B7B5D7B9B8EBCCCAE5C5C328222284
+ 706FD1B2B0887372000000000000000000584A49D6B6B3D7B6B4E1BFBDEBC7C5
+ E6C4C2D9B6B4DAB7B5DEBAB8D9B5B4D7B4B1EAC5C2F5CFCDF4CECBF2CBC9F4CD
+ CADCB5B3D7AEACD9B2B05B4B4A000000000000292121E2B9B6E0B6B3130F0F00
+ 0000000000141010DCB2B0E7BBB9EDC1BEE6BAB7E2B5B3E0B3B0E0B2B0EBBBB9
+ E6B8B6DFB0ADDFAEACEDBBB9EEBDB9E4B1AEE0ABA9E4B1ADE7B3B1E5B0ADE1AD
+ AAEDB9B6987674000000000000E2A8A5EAADAAF2B5B1F2B3B0E9AAA6E6A8A4ED
+ ADA9EBA8A4E7A39DEAA29CEFA29DF09F9BF09F99F3A49EF0A7A1ECAAA5ECB5AE
+ 986F6A000000B4817BF6B3AB63413F000000000000473937F5938AF6958CF797
+ 8EF97970FB7E74FC9E95FD8C83FF8E84FFC2B7FFA69BFFC2B6FFAB9FFF978BFF
+ BFB3FF9689FFBFB2FF897DFFAB9EFFFFFBFFDACDFFE6D9FFC2B6FFBFB3FF9589
+ FFA498FF9186FFB1A6FFBAB0FE867DFCABA2FB9288FB8076F99D962E201E2D1A
+ 19F4837CD68A84150F0E000000150F0ED48E89EF9E98EF9B95ED9791ED9791F4
+ 9D98F49D98F29E99F0AAA6F2BFBAECBDB8E5AEAAE7A9A5EFB0ACF6B9B5F7BBB8
+ E3ACA8E2AAA6000000F3B9B5E6ACA8433231000000000000000000EAB8B4F2C1
+ BEE4B3B1E0AEACECB9B7F3C0BEE9B7B5E1B0ACE1B1ADECBEBAE6B9B6DCAEACE2
+ B5B3EFC4C2ECC2C08D7372130F0FDBB4B2EFC7C45F4F4E000000000000000000
+ 8B7472DAB6B4DEBBB9EBC9C9EAC9C7EAC9C7DFBEBDDEBDBBDCBBB9D9BAB9E0C0
+ BEECCCCBE4C5C4DBBDBBE3C3C1DEBEBDDEBFBDD8B9B8D9BAB9DEBFBDE3C4C2D9
+ BBB9D8BAB9D7B9B8D6B9B73E36363F3837E3C6C5ECD0CE000000000000000000
+ 2A2525DBC1C0DAC0C0D8BEBEDAC1C1E5CCCCDFC6C6D9C1C1D7C0C0D8C1C1DAC2
+ C2DAC4C3D9C3C2D7C1C0DAC3C2E3CCCDE9D2D4E5CFCFE7D1D1E7D4D4E3CDCEDB
+ C5C6DBC5C5DBC5C5D9C4C3E4CECEE0CACADBC5C4E4CECD1413135A5151D6C1C0
+ D7C2C2131111000000000000000000564E4DD8C2C3DAC5C4DBC7C7D4C0BFD2BE
+ BED2BDBDD2BDBDE7D1D0D4BEBECFBAB9D9C3C2D9C5C3DBC9C7D2C0BEDAC6C6E6
+ D2D1E7D2D1E4D0CFE9D5D5ECD7D7E0CCCBD1BEBED6C2C1D8C4C3CFBDBBD5C0C0
+ E1CDCCE3CECED4C0BED7C4C2D5C1C1D2C0C0E9D6D50000000000000000ECDAD9
+ ECD9D9ECD9D9F0DCDCEDDBDAEFDCDCECD9D8ECD8D8E9D6D6E6D4D2D8C5C4EEDB
+ D9F0DCDCE2CECEDBC9C6E9D6D5EAD7D7EAD7D7EBD8D7E3CFCFE4D0D0E6D1D1E7
+ D2D1EBD5D4DBC5C4F0DAD9F0DAD9EDD7D6E3CCCBE3CBCAF0DAD9D2C0BF000000
+ ECD5D6928383000000000000928382E4CDCCE3CBC9E3CBCAECD2D1E3CAC9D6BE
+ BDE0C6C5E4CCCBE6CFCEE2CBC9E5CDCBEED6D6EFD8D7EED7D6EBD1D1E7CECDEA
+ D1D0EDD4D4E7CECDE6CDCC433C3BE5CBCAEDD1D0E6CBCAE1C5C4F4D7D6F2D5D2
+ E1C4C2E0C3C0E7C9C7D8B9B8D9BAB8E5C6C5EBCCCACEB3B2000000C7ACAAE9C9
+ C75F5251000000000000000000978181EDCBCAF0CDCCEFCDCBF0CECCEECBC9E2
+ BFBDE0BEBBE9C5C3E7C3C1E3BFBBEDC7C5F2CCCAEDC7C4EDC7C4F4CDCBEFC7C5
+ E4BDBAEEC5C3B99A99000000000000997F7EF0C7C47D67660000000000000000
+ 007A6463E7BEBAECC1BFECC1BEEFC3C1E6BBB9E2B6B3E5B7B4ECBEBBE6B7B4E5
+ B5B3EAB8B5E9B7B5E7B5B3EBB8B5E6B4B1E9B7B4E9B7B5EAB9B6EEBBB8F0BBB8
+ D4A39F000000000000946E6CEFB3B0F0B4B0EDB2ADEEB0ABF0B0ABF3B0ABF0AA
+ A6F0A8A4F0A59FEEA29DF0A6A1F2AAA5F3B2ACF4BAB5F3B7B1F4ADA7F6B0A947
+ 3533150F0FD88E88F7A29A150F0F0000000000009D635EF99B93F9827AFB8179
+ FC9A91FC948AFD887FFEA89DFEACA2FF9C92FFA89DFF9D92FF887DFF8C82FF86
+ 7BFFBAAEFF867AFF9F94FFFFF3FFCBBFFFB3A7FFA99EFF9E93FF7B6FFFABA1FF
+ 9489FE9085FECCC2FEA399FD9389FCABA2FB9086824541000000BD837EF79891
+ 4727250000000000009D6B67F3A7A1EDA39CF0A59EEFA29BEE9D97F2A19AF3A2
+ 9BF4A29DF3A29CF0A29CECA9A4E5B2ACE6B8B4F5C0BBF6BBB7F7B9B5E3A9A4AB
+ 827F000000EDB8B4E7B2AE453534000000000000000000F0BAB8F6C1BEF3C1BE
+ F3C3C0F3C4C1F2C4C1EEC0BEECBEBAEEC0BEF0C2C0EFBFBEEDBDBAEFC1BEEFC1
+ BFF3C6C32C24235E4C4BE3BAB7EFC6C4141111000000000000000000E2BEBBDE
+ B9B7DEBBB9E4C2C1E5C4C2EAC9C7E6C4C4E3C3C2E5C6C4E2C1C0EBCBCAEDCDCC
+ E9C9C9E7C9C6ECCCCBE9CAC7EBCCCAE7C9C7EACAC9E9CAC9E7C9C7E1C3C1DEC0
+ BEDBBEBDD8BBB9423A39423A3AE5CAC9E7CCCB000000000000000000000000EE
+ D5D4EFD6D5EDD4D4F0D8D6F2D9D8F0D8D7EED7D6EDD5D4EFD8D7EED6D6ECD6D5
+ ECD6D5E3CCCBE2CDCCEAD2D4EED8D7E6D0D1E1CDCCE1CBCBE1CCCCE7D2D2E7D0
+ D0EBD5D5EBD5D5E2CCCBE2CDCCEDD6D5443D3D2B2727DFCAC9E4CECD423C3C00
+ 00000000000000002C2929EED9D9EAD5D4E4CFCEEAD5D5E6D1D0E3CDCDE2CCCB
+ E3CECDEED9D8ECD7D5E7D2D1EBD6D4E3CECDE6D2D0E4D1D0E5D1D0E6D2D1E2CD
+ CDE1CDCCE9D6D5ECD7D8EBD7D6DECAC9E6D2D1F2DEDCEFDBDAE9D6D5E7D4D2E9
+ D5D4D5C1C0EBD7D6E9D5D4EEDAD9EBD7D60000000000000000EFDCDBE5D1D1E6
+ D5D4EEDBDBECDAD9EBD7D6EBD7D6DBC9C7EAD7D6EEDBDAE7D5D4EEDADAF2DEDC
+ EFDBDAEEDADAF2DEDCEFDEDCF0DCDCECD8D8E6D4D4E9D5D5E0CBCBEBD5D4F0DA
+ D9EED8D7F0DAD9F3DCDBF4DEDCE1CAC9D5C0BFE7D1CFEAD4D2141312AB9B99C9
+ B6B50000000000005E5554E4CDCCDCC4C4E3CBC9E4CCCADAC1C0D8C0BFDFC6C5
+ DFC7C6E1C9C7E0C9C6E2CAC7E7CECDE7CFCEE9D1CFE7CFCEE5CDCCE9D0D0EED4
+ D2ECD1D1E9D0CE000000E9CDCCEFD5D4ECD0CFE5CAC9F0D4D4F0D5D2E3C5C4E4
+ C5C4E6C7C6E0C1BFDABBB9E1C3C1E6C7C57666652C2525E7C7C5EBCBC9141212
+ 000000000000000000CBAEACEAC9C6EECCCAEAC7C5EECBC9E6C4C2E6C3C1D9B6
+ B5E3C0BFE9C5C2E3BFBBE3BEBBE9C4C1E9C2C0F0CAC7F5CECCEBC4C1E0B8B6ED
+ C5C3F5CCCA2C2524000000443938EFC7C52C2524000000000000141111E7BEBB
+ EAC0BEEFC4C2EDC2C0F2C5C3EFC3C1E7BBB9E5B7B5EABBB8EABAB7E9B9B7EFBF
+ BDEDBDBAECBDB9F0C1BEEEBEBBEEBEBAEEBDB9EFBBB9F0BBB8F0BAB7EFB8B400
+ 0000000000443332F0B6B3EFB4B1EAACA8E6A6A2ECA8A5F0ABA7F0A8A4F0A7A3
+ F0A8A4EEA9A5ECACA7EFB5B0F0B9B4F2B2ACF2ABA6F6B5B0F7B7B1F5AAA4150F
+ 0E150F0EF6B7B0D79C96150D0D000000150E0DDA7870F7837BF9968DF99890F9
+ 8A81FC9990FDB3A9FD9A90FEB2A8FF9C92FF9287FFA499FF7D72FF7B6FFFB6AB
+ FF8175FF958AFFE0D4FFB3A8FF8E83FF968BFF988DFF9C92FE9C92FE968BFC8C
+ 82FC9D94FCC9BFFC9A91FC9D95DA958C000000482926F7A29A9C6E6900000000
+ 0000482D2CF8A9A3F7AAA4F0A7A1F6AEA8F6ADA7F4AAA5F5A9A3F4A59FF5A6A1
+ F5A7A2F5A8A3ED9F9BE79D99E3A39EEBB6B1F0C5C1EBBAB6E2ADA9916D6A0000
+ 00EEB8B4F0BAB8463736000000000000000000EDB9B6F5C0BDF5C1BFF3C1BEED
+ BDBAEEC0BDEDC0BEEEC2C0F2C4C2EEC1BFEDC1BFF3C6C3F5C7C4F5C5C3B99695
+ 000000D4ACAAEFC4C2B69695000000000000000000615151EFC9C7EECAC9EAC6
+ C4E7C4C3E6C4C2EACAC9ECCBCAEACACAEACBCAE0C0BFECCCCCEECFCEECCBCBE9
+ CAC7E9CBC9E9CAC9EACAC9EDCDCCECCCCAEBCCCAE9C9C7E6C9C7E3C6C5E4C7C6
+ E2C5C4433C3C433C3CE7CCCBE7CECE000000000000000000000000ECD2D0EDD4
+ D2EDD4D4EFD5D4F0D8D7EBD1D0F0D7D6EED6D5EFD7D6F0D9D7EDD6D6EDD6D5E2
+ CBCBDCC6C6E0C9C7E9D2D1E7D4D4E6D0D0E1CACBE6D0D0EED9D8EED8D8EED8D8
+ EDD9D8ECD6D5EDD7D7453E3E141313CAB7B6D9C3C39183830000000000000000
+ 00141313D5C2C1F0DBDBECD8D6E6D0D0ECD6D6EBD5D4EAD4D2ECD6D6EAD4D2ED
+ D8D7EAD6D5E9D4D2E6D1D0E2CDCCE5D1D0E3D0D0E4D0CFE7D2D1E3CFCFE2CECD
+ E6D2D2EAD7D6EBD7D6E7D4D4E9D5D4F0DEDCF4E0DFF5E1E0F3DFDFF3DFDEE5D1
+ D0F3E0DFE6D2D2EFDBDAE3CFCE0000000000000000E6D4D2DFCDCCE3D1D0F0DC
+ DCEEDCDBEEDBDAECD9D8E4D1D0EEDADAEBD8D6E1CFCEE7D5D4EBD7D7EBD7D6EB
+ D7D7EFDCDBEFDEDCF2DEDEEEDBDAECD9D8ECD8D8DBC7C6E6D1D0DEC7C6DEC7C6
+ DEC7C6DFCAC9E6D0D0DFC9C7DAC4C4DAC4C4DBC6C5786C6C5B5252E2CCCA2A25
+ 25000000433D3CE6CFCDE4CCCBE7CFCEECD4D1ECD2D1E9D0CFE4CCCCE3CBCAE3
+ CBCBDBC2C2D7BEBDD7BEBEDAC3C1D6BEBDDAC1C1D7BFBDDEC5C4E9CFCEE9CFCD
+ 938281000000DEC2C0EDD0D1E9CDCCE7CCCAEFD4D2F0D4D1E5CAC7EDD0D0EFD1
+ D0EBCDCCE6C9C6E1C3C2E5C7C52923235C4F4ED7B7B5C6ABA900000000000000
+ 0000000000EBCAC7EDCBC9EECBC9EAC7C5EAC7C5EBC7C5EFCBC9EDC9C6EBC7C5
+ EFCCCAECC7C4EDC7C4EEC9C6F0CAC7F0CBC9F7CFCDF4CDCBE3BDB9EEC7C4F2CA
+ C77D6867000000000000B395940000000000000000005F4F4EE2B9B7E6BDB9EB
+ C0BEE9BDBAEFC3C0EDC1BFE5B8B5E7BAB7EBBEBBEABBB9EBBDB9EEC0BEEFC1BF
+ EDC0BDEEBFBDECBAB8EAB7B4E9B4B2F0BBB8F0BAB7F0B9B7F0B9B74535340000
+ 00000000F2B4B2F2B3B0EEADA9EBA7A4E7A49FEBA6A2EFACA8F0ADA9EFB1ACEA
+ B1ACEAB6B2ECB1ABEEAAA6EDABA6EBADA8F2AEA8EFA39CEE9E99D18E8915100F
+ 473230F297919A635F000000000000150B0BDA827CF99D95F99289FB958CFCB0
+ A7FCA89EFC9C93FDA69CFE978DFE867CFEBDB2FF7F74FF7C72FFB4A9FF7F74FF
+ 8C82FFC7BDFFA298FF796EFEA297FEA298FDA59AFD786EFB9F96F9948BF98D84
+ FBB4AAFCB4ABDA817A150E0D150F0EF88E86DA7F79000000000000472F2DF794
+ 8EF79C96F7AAA4F2A7A2F6ADA8F5ADA8F4ADA8F4ADA8F2AAA5F0A6A1EEA59FF2
+ A7A2EBA19CE99F9BE49C98E59F9BE9ACA7E4B2ADE3BAB7987B78000000F2BBB8
+ F4BDB8473836000000000000000000947472EFBDBAF3C1BEF3C1BEEFBEBAEFC0
+ BBEEBFBDECBFBBF0C3C0EBC0BEEFC4C2F3C7C5F4C7C5F5C9C6151111635250F2
+ C6C3EFC3C12C2424000000000000000000CEACAAEDC7C5EDC7C5ECC6C5E7C3C2
+ E5C2C1E6C4C2E7C6C5EDCCCBEFCECEE7C9C6EFCFCEEFD0CFEECECDE9CBCAE7CA
+ C9EBCBCAEBCCCBECCCCBEBCBCAE9C9C7E3C5C4E7CBC9E5C9C7E0C4C3E4C7C642
+ 3B3B423B3BE6CCCBE7CDCD000000000000000000000000ECD2D1ECD2D1E6CDCC
+ E5CCCBE6CCCBDEC3C2E9CECCECD2D2EDD4D2EFD6D5F2D9D8F0D8D8E7CFCDEBD2
+ D2DFC7C7ECD5D4F2DBDAF2DADAE7D2D1E7D2D1EDD7D7E9D2D2EED8D7EDD8D8EA
+ D5D4443D3D141313D2C0C0EFDAD9938585000000000000000000141313C6B3B3
+ ECD8D6EDD9D8E6D1D1E6D0CFEED9D8EAD5D2E4CFCFEAD5D2E5D0D0E9D4D2EAD6
+ D5E9D4D2E6D1D0E1CBCBE6D2D1E2CECEE6D1D1E5D1D0E0CBCBD9C5C4DFCBCAE0
+ CCCBE5D1D0E9D5D4E7D4D2E7D4D2EDDAD9F3DFDEF8E4E3F5E0E0E9D5D4F0DCDC
+ F2DFDEF6E1E0F3E0DF0000000000000000F0DEDCE7D5D5E2D0CFE6D5D4E0CDCC
+ ECDAD9E9D7D6E2D0CEEBD8D7E7D4D4EAD8D7DFCCCCE1CDCDDFCCCAE3D0CFE1CD
+ CDECDADAEFDBDBECD9D9ECD9D8E5D1D0EBD6D5ECD6D5E3CDCCE9D2D1E9D2D1EF
+ D9D8EFD9D8E6D1CFEED9D7E6D0CFE2CCCBD0BDBD000000C4B1B08E807F000000
+ 000000E0C7C7D6BFBDE1C9C7E5CBCAEBD1D0EBD2D2EDD6D4EDD6D5EDD5D4EFD7
+ D6EAD0CFE9D0D0EAD0D0E7CECEE6CDCCDCC4C3E9D0CFEDD2D1ECD1CF60555500
+ 0000D6BBB9E3C9C7DBC0BFE2C5C4EDD0CFEBCECDE0C4C2EED1D0EDD0CFECCFCE
+ E6CAC9E7CBCACBB2B1000000AE9896D7B8B77161600000000000000000002C26
+ 25E9C7C5EECCCBEECDCCEFCDCBEDCAC7E9C5C4F0CECCEFCBC9EFCCCAEFCCCAED
+ C9C6EBC5C3EAC4C2F0CAC7F2CDCBF5CFCDF0CAC7E3BEBBF0CAC7EBC5C2D1B0AD
+ 000000000000000000000000000000000000D1ACAAE1B7B6EBC0BEEEC2C1EDC2
+ C0EFC5C2EFC4C2ECC2BFEBC0BDEDC0BEEDC1BEEDC0BEECBFBBE4B6B3E9B9B7ED
+ BBB9ECB9B6E2B0ACE0ACA9EAB6B2ECB7B4EEB9B6EEB8B5604948000000000000
+ 97706EEFB0ABEEADA9EFAEAAECABA7EAAAA7EDB1ACEFB7B3F2BEB9F0B8B4F0B3
+ AEF2B0ABF5B7B3F5B8B2F3ADA8F3A8A2F2A49FEFA9A4EFBBB5D2938C150E0D45
+ 2C2BD288839A5A56000000000000472E2CDA847DF79088F9A29AF9ADA5FB9B93
+ FBACA5FC9E96FD978DFD8076FD9B92FE847BFD867CFEB7ACFE867DFE8E84FEBA
+ B1FE9C93FE847AFEAEA5FDA398FD978DFD867DFCADA4FB9890F99288FB9B95DC
+ B0A8160F0E150D0CDA958EDA9690150C0C000000472F2DF2ACA6F2A49DF59993
+ F59B95F3A69FF5ABA6F5ADA8F5B1AAF6B3ADF5B1ABF2ACA8F5B0AAF4ACA8EFA8
+ A4EEA8A4EAA49FE6A29DE7A39FE9A6A2EEB2AD9A7A78000000EBBFBAF3C3C047
+ 383700000000000000000090706EE7B7B4ECBEB9EABAB8E5B6B4EDBEBBECBDB9
+ F0C1BFEDBFBDEABDBAEBBFBBEABEBAEFC4C2453939141110EBC1BFE7BEBB7D67
+ 650000000000000000007B6565ECC3C1EBC4C2EAC3C1E9C3C1E4BFBEE3C0BEE3
+ C0BEE3C1C1E7C5C4EFCFCDEACBCAEECFCDEFD0CFEFD0CFEDCECDEBCECCEDCECD
+ EFD0CEEECFCEEFD0CFEECFCEECCDCDEBCECDEACCCBE6C9C7E3C6C5443C3C443D
+ 3DEBD0CFE7CDCC000000000000000000000000EDD4D4F0D6D5ECD2D1EACFCDED
+ D1D1E0C5C5EBD0D0F2D9D7ECD2D1EAD0CFF3D9D8F4DBD9EDD5D2F3DADAF0D9D8
+ E9D2D1EAD2D1EED7D7E1C9C9E6CFCEEDD6D5E4CECDE9D2D4AE9E9E1412121411
+ 11C4B1B0E7D2D1968987000000000000000000151313D5C1C1EBD5D5EED9D9EF
+ DADAEBD5D5DCC6C5EDD8D7EBD5D4E2CDCBE4CFCEDCC9C7E2CFCEE9D4D2E7D1D0
+ E7D2D1E3CECEE6D1D1E1CDCCE3CFCEE2CDCDDAC5C5D9C6C4E3CFCFE1CECCE3CF
+ CEEBD6D6EFDCDAEBD7D6EAD6D5F2DEDCFBE5E4F9E4E3F6E1E0F9E5E4F6E2E1EE
+ DAD9ECD7D60000000000000000F0DEDCE7D5D4EDDBDAF0DFDEE9D7D6F0DFDEE7
+ D6D5E7D5D4F0DEDEEFDCDBECDAD9E4D2D1E0CDCBD8C5C4DBC9C7DCCACAE7D6D5
+ EDDBDAECD9D7E5D0CFE3CECDE9D2D2E7D1D1EED9D8E6D0CFE9D2D1F2DBDAF3DB
+ DBECD6D4ECD6D5EAD4D2E1CACAE7D1D07B6D6D433D3DE5CFCD423C3C00000079
+ 6C6CE7CFCEE5CDCCE6CECCE9D0CFEDD4D4EDD6D4EAD2D0EAD1CFEFD7D6ECD2D2
+ EBD2D1EBD1D1EAD0D0E6CCCCDEC4C3EBD1CFEDD1D0EACFCE2C2727000000E6CB
+ CBE6CBCBDCC1BFE6CBCAEED2D1ECCFCFDEC1C0E0C4C2EDCFCFEACDCCE1C5C3E6
+ CAC7786968000000E7CAC7E2C3C2413939000000000000000000433A39DFBEBB
+ EAC9C6EFCECCEECCCBEDCBC9EBC6C5EFCBCAEDCAC7EFCCCAEAC5C3E9C4C2E3C0
+ BDE7C2C0E9C4C1EBC5C3F3CECBECC6C4E2BDBAEBC5C3E3BEBBEAC4C244393900
+ 00000000000000000000002D2525F0C6C4E7BEBDE9BFBDEEC5C2EEC3C2F0C6C4
+ F0C6C4EBC1BFE5BAB8E6BAB8E6B9B7ECBEBBECBDB9E6B6B4EAB9B7EFBFBBF0BF
+ BBECBAB7E6B4B1EEB9B7ECB7B3EFB8B5EEB6B3987472000000000000453332EE
+ AEABEEB1ACF0B4B1F0B6B2EFB7B3F3BEBAF3BEB9F3B8B4F3B3AEF4B7B2F3B9B4
+ F5B6B2F4ADA8F2A9A3F4AAA4F3B2ACF4BFB9F4A8A3F5A29BD68E89150E0D150D
+ 0CD57C74D6817B150E0D000000150D0CD7867FF5B0A7F6A39AF89C94F9A69DFB
+ 9A93FC958CFC9890FC887FFC857CFB8D85FCA79DFD8B82FD9187FCB1A7FC988E
+ FD9389FCB9B1FB9A92FC978EFDA49AFC8E85FB9F97F89890DB817A160F0E1510
+ 10DA8C86D88681150F0F000000462927F2948DF3A49DF4B1AAF8ACA6F49C97F3
+ 9A94F7A9A5F7AEAAF8B3ACF8B4B0F7B5B0F6B5B0F7B5B1F7B5B1F6B3AEF5B1AC
+ F3B0ACF3B0ABF3B0ABF4B2ADF2B0AB9A706E000000E6B4B1EEC4C0463A390000
+ 00000000000000927270EEBEB9F2C2BFECBFBDE3B7B4E5B8B6E7BBB9F0C4C1EC
+ C0BEE2B6B4E6B9B7E4B8B5423636141010D1ADAAF2C7C4927876000000000000
+ 000000453B3AEBC4C3EFC9C6ECC5C3EEC7C5ECC5C5EEC7C6EFCBC9EEC9C7E5C2
+ C0E7C5C3F0CECCECCBCAEFCECCF0D0CEF0D0CFEFCFCEEACBCBEECFCEEFD1CFEE
+ CFCEEECFCEECCFCDEACCCBEACDCBEACCCBE7CAC9E2C4C3000000443D3CEDD1D1
+ E5CAC9000000000000000000000000CDB6B5EED5D4E9CFCEEBD0D1F3D8D7EBCF
+ CFE9CECDF0D7D5E2C7C6DAC1C0EDD2D2EDD2D2E4CCCBF2D9D9EFD8D7E6CDCDDF
+ C9C6DBC3C3D9C2C2E5CECDEDD5D5E1CAC95D53530000005D5454E4CECEE4CECE
+ 423C3C0000000000000000002C2828D5C1C1EFDAD9E0CBCAECD8D6EDD9D8E4CF
+ CED9C2C1E2CDCBE1CCCAE3CDCCE3CDCDD6C1C1DAC6C5E1CCCBE2CDCDE6D0D0E5
+ D1D0DFCBCADEC9C7E7D4D1EAD5D4E1CECDE5D1D0ECD8D7EDD9D8EBD7D6EFDBDA
+ F0DCDBF0DBDAECD7D6EEDAD9F8E3E2F9E4E3F4E0DFF8E4E3F2DFDEF8E3E2F2DF
+ DE0000000000000000ECD8D7EDDADAF2E0DFEDDADAE0CDCDF0DFDEE7D5D4ECD9
+ D8F0DEDCEEDBDBECDAD8ECDAD8E9D5D4DBC9C7E2CFCEDECBCAD8C6C5DBC7C6E3
+ CDCDDFCAC9E5CFCEEBD6D5E7D2D1F3DBDAEFDAD8E6D0CFE9D1D0F2DADAECD6D5
+ EFD9D8EFD9D8ECD5D5EDD7D6EED8D62C2827796C6CCDB8B7141313000000CFB8
+ B8ECD2D1E9CFCEE9D0CFEFD7D6EDD7D5E5CCCBE0C7C6EED6D6ECD2D2E6CDCCE3
+ CBCAE9D0CFE2C9C6EDD2D2EED4D4ECD1D0C7B0B0000000000000ECD0CEEACFCD
+ DCC1BFE5CAC7ECD0CFEDD2D0E4C9C6DFC2C0EACCCBE7CBCAE3C6C5E6C9C91411
+ 11433B3BE7CBC9E7CBCA0000000000000000000000005F5252E2C1BFEAC7C5EA
+ C9C6EAC9C6E5C3C1E4C1C0E5C3C1EBC7C5E7C4C2E5C1BFE5C1C0E4C1BEE0BBB9
+ E5C1BFEDCAC7F0CBC9EECAC9E6C2BFEAC3C1DFBAB8E5C0BE927A790000000000
+ 0000000000000099807EF0C7C5ECC2C0EBC2BFEEC4C2EFC7C4F0C7C5F0C6C4EF
+ C4C1EDC0BEEDC1BFE9BAB7E9BBB8ECBEBAEBBBB8EAB9B7E4B5B2ECBAB7ECB8B6
+ EEB9B7EBB5B2EAB4B0EFB7B3ECB2AEB58886000000000000000000D19D9AEFB6
+ B2EFB8B5EEBBB7EEBDB8F0B9B6F2B6B3F2B6B2F3B8B5F4BAB6F0B1ABEEA8A3EB
+ A59FEAA49EF3B6B0F3B9B4F4A9A4F3A39CF2A49DF4A59EF49A94472A28000000
+ 9B6662D28681472C2A000000150F0E9C6C66F79B94F8AAA2F79F98F99A92FB8E
+ 86FCB1A8FC867EFC867EFC988EFC9E95FC9188FC938AFBAAA2FB988EF99C94F9
+ A49BF8968CFB9E96FCA69DFB8078FBABA39D625D150D0C2E1D1CDAA39B9C706C
+ 000000000000644643F6A69EF5938CF39993F6A8A4F8B6B1F6ADA8F09E99F59D
+ 98EEA19BEDA8A3F2ADA9F0AEA9F3B2AEF5B6B1F6B7B2F5B6B2F2B2ADF0B0ABEF
+ AEAAF2B2ADF4B4B1F2B2AE463433000000EAADAAEEB7B4453737000000000000
+ 000000967976F0C1BFF3C3C0F0C2C0ECBFBDECC0BDEEC3C0F0C6C4F2C7C4EDC1
+ BFD5AEAC463A39141111D2ACAAF2C7C59A7F7E000000000000000000473C3BF0
+ CBC9ECC7C6F2CCCAEEC9C7F0CCCAEECAC7EECAC7EECAC9EDC9C7E6C2C1DEBAB8
+ E0BDBBDEBAB9E0BEBDE5C3C2E7C5C4E3C4C3DEBDBBE2C2C1EACBCAECCDCCEBCD
+ CCE9CBCAE7CAC9E4C7C6EACDCCE6CAC9DEC1C0000000443D3CEDD2D1EACECD00
+ 0000000000000000000000948382ECD2D0E5CBCBE4CBCAF0D7D6E7CECCE9CFCD
+ F3D8D8EDD2D1F2D9D7F3D9D7ECD2D1EAD1D1F3DAD9F3DAD9F0DAD8EDD6D6DFC7
+ C6DEC6C5EDD6D57E71701413132C2928B7A6A5EED8D8988A8915141300000000
+ 0000000000736868ECD7D6F3DCDCECD5D6DEC9C9E6D1D0ECD8D6E9D2D2DEC9C9
+ E6D0D0E2CDCCE5D0D0E2CDCCD8C3C2E3CFCEE5D0CFE1CBCBE4D0CEE6D1D1E5D0
+ CFDBC6C5E5D0D0E6D2D1DAC6C5E1CDCCE4CFCEE9D5D5E2CECDDFCAC9D5C1C0EB
+ D7D6DCC9C7E6D2D1DFCBCAE6D2D1EEDAD9F2DFDEEDD8D8F0DEDCE9D6D5000000
+ 0000000000E2CECEDAC7C7ECD8D8D2C0C0D0BFBEE6D5D4E6D4D2E6D4D2EDDADA
+ ECD9D8ECD9D8ECD9D8ECD8D8E0CCCBDFCBCAE0CCCCCFBDBDCDB8B6D9C4C3EAD5
+ D4EFD9D8ECD7D5E4CECEF3DBDBF2DBDAE6D1CFE5D0CEEFD9D8EFD9D8EDD6D6F0
+ DAD9EED9D8EBD5D4EED7D6D1BDBB141212968786CFB9B8141212141212D1BBBA
+ EDD4D2EFD7D7F2D9D8ECD4D2D1BAB8D1B9B8EFD8D6ECD2D2D4BBBAD2B9B8E5CD
+ CCD9BFBEEED4D2F2D7D6EFD6D5988786000000000000EFD5D2EDD0D1EACECDEA
+ CFCEEACECEEDD1D0EBCFCDECCFCFEFD1D1EBCECDEBCDCCAE9898000000948181
+ EBCCCB93817F00000000000000000000000094807FE7C7C5E9C7C5ECCBC9E9C6
+ C5E9C6C5EBC7C5EAC7C5EDCAC7EFCDCBEFCDCAEECBCAEDCAC7E7C3C1EECAC9EF
+ CBCAF0CDCAF0CBC9EFCBC9F0CCC9EDC7C5E9C3C1ECC6C4000000000000000000
+ 141111E5BDBBEBC3C1E3BBB9E4BBB9E3BAB8E5BBB9ECC2BFF0C5C3ECC0BEECBF
+ BDEDC1BEEDC0BEEEC0BDEEC0BDEFC0BDECBBB8DAA9A6E2B0ACF0BDBAE9B4B0DB
+ A6A3DCA5A2DFA6A3E0A5A2EEB4B10000000000000000007D605FEEBAB7EFBFBB
+ ECB8B4E9B2ADEDB2AEEDB4B0EDB5B1EAB0ABE7A8A4E9A6A1EAA6A1EAA8A3EBB3
+ ADEEB4AEF2A6A1F2A59FEA9D98E99B96F29A94F4948DF598929A6662150E0E46
+ 2C2BD886809C6864150F0F000000482E2CDA948CF79E96F99B94FB8A83FBACA4
+ FC8A82FB877FF99C95FD9890FC968DF89289F5A198F69B93F6A59CF5958CF69B
+ 93FBA69DF89B94DA807A482D2C000000643F3DF7958D64423F000000150F0E9D
+ 6460F8A9A3F9B0A9F7A69FF59791F7A19AF8AEA8F7B7B2F3ADA8F3A5A1EA9692
+ E79C97EAA6A2EBA9A4EEAEAAEBACA8EBADA9ECAEABE5A8A4E3A6A2E3A5A2E3A6
+ A3EAACA8EFB2AD463433000000EFB3B0F0B5B246353400000000000000000043
+ 3938EAC0BEF3C7C4F2C4C1EFC0BFEEC1BFEABFBDF2C6C4F0C6C4796362151211
+ 463B3AD6B1AEF0C6C4463A3A000000000000000000453939F6CECCF4CCCAEFCA
+ C9F3CECCEFCCCAF0CDCBEBC7C6E5C1C1E4C1BFE5C2C0E2C0BEDCB9B7DCBAB9E1
+ BEBBE2BFBEECC9C9ECCAC9ECCBCAE7C6C4EBCCCBEFD0CFF0D2D0F0D2D0F0D1D0
+ EACCCBEDCFCEEED0D0F0D4D2EBCECE000000453D3DEFD4D2ECD0CF0000000000
+ 00000000000000978786F2D8D7EFD5D5ECD2D0F3D8D8F0D6D5F2D8D7F4DAD9EE
+ D5D2F3D9D8F2D9D7DEC4C3E6CECDEBD2D2EFD7D7F0DAD8D6C0BF9F8D8D564C4C
+ 0000002D29299A8B8AF3DBDB9A8B8B2D2929000000000000000000453E3DB7A4
+ A2D1BBBADEC9C7F4DCDCF2DCDAEAD5D5E9D4D4EBD6D6E6D1D0E7D4D1E9D4D2E4
+ CFCFE6D1D0E5D0D0E0CBCAE4D0CFE4D0CEDFCAC9E3CECEE9D2D1E6D1D0D9C4C3
+ E6D1D1E5D1D0D7C3C2E0CBCBE0CCCCDCC7C6DCC9C7CFBBBBCDB8B8ECD8D7ECD8
+ D8D5C2C2CEBABAE7D4D2F0DFDEF2E0DFE5D1D0E3CECDDAC5C400000000000000
+ 00E6D2D2E5D2D1EAD7D6CEBBBACFBDBBE6D5D4E3D0CFE2CFCEECD8D8EBD8D7E6
+ D4D2EBD8D7EDDAD9E9D6D5E6D1D1DECBCACDB8B9CDB7B6D8C2C1E6D1D0E0CAC9
+ E3CDCCDAC5C4E9D1D0EED8D7DFC9C7E6D0CFEED8D7E7D1D0DEC7C6ECD5D5E7D1
+ D0EBD4D4ECD5D4ECD4D2C6B0AE443D3D453D3DCFB8B8443D3D1413127B6D6CED
+ D6D5F0D8D8E5CECDD1B8B7D1B8B7EFD7D6ECD2D2D2BAB8D2B9B8DCC3C3DAC0BF
+ EDD1D0F0D7D57C6E6D141312000000000000EED4D1EDD2D1EDD2D1EDD1D0EDD2
+ D0ECD0D0E7CBCAECCFCFEFD2D1EBCECCEBCECD443C3C000000CBB2B0E4C6C55A
+ 4E4E000000000000000000000000948180E9C9C7E6C7C5E7C7C6E7C7C5EBCAC9
+ EACAC7ECCBC9EFCDCCEFCBCAE9C6C4EFCCCAEFCBCAE6C3C1EECAC7EBC6C5EECB
+ C9EDC9C6EDC7C5EEC9C7EAC4C3E5BFBEE7C3C0453B3A0000000000005F4F4EE9
+ C2C0EAC3C1E3BBB8E0B6B5E1B8B5E5B9B8EEC3C1F0C4C1E5B8B6E9BBB8EDC0BD
+ F2C3C1F2C4C1E5B6B3F0C0BEEAB8B5D8A5A2DCA9A6EAB5B2E7B2AEE2ABA8EDB5
+ B1EFB6B3DFA6A4E1A8A5000000000000000000151110F2C0BDF0BBB8F2B9B5EF
+ B7B4F2BBB8F2BBB7F3B7B3F4B4AEF3B1ADF2B0AAF0B3ADF0BDB7F0B4AEF2A7A3
+ F2A7A2F2A8A3E99E98E99590EF948EF49A94F5A39CF4A59ED78C86623D3B0000
+ 00644744D8958E7F514E150F0E000000472C2BB9726CF5948CF49890F88D85F8
+ 877FF79F98FB958CFB9A93F7948BF6A198FBA79EF8B2A9F48B83F3A199BD7C75
+ 633D3A0000002D1A19B97E787F514E150E0D000000624542F4B7B1F7A7A1F89F
+ 99F9B0A9F7B0A9F7A59EF39993F7A59EF7B0AAF3B5B0F2AEA9ECA29CE69793EF
+ A49FF2AEABF6B6B2F6B7B3F5B8B4F6B9B5EBB0ACEBAEAAEBB0ACE2A8A4E4A9A5
+ EFB3B0463534000000F0B6B3F2B7B4463635000000000000000000453837F0C6
+ C4F3CDCAF0CAC6EAC1BEE9BEBBAD8C8A604E4E1410102B2322B49493E6BDBA7D
+ 6866151111000000000000000000796362E6BEBBF4CBC9F3CCC9EEC7C5F3CDCA
+ F2CDCBF3CECBEFCCCBEECBCAEECBCAEDCBC9F0CECDEECCCBEFCDCBF0CECDEDCB
+ CAF2D0CEF0CFCDEFCFCEECCCCAEACBCAEECFCEEFCFCDEED0CFEACBC9ECCECDEE
+ D0CFEDCFCFF0D4D1D0B7B6000000453D3DEFD5D4EDD2D1000000000000000000
+ 0000002C2727998887B6A3A1EDD5D4F2D8D7F0D6D5F3D9D8F2D8D6E3C9C9F0D8
+ D6EBD1D0E5CCCCD0BABA9989897E7170463F3F000000272222564D4CD0B9B9B9
+ A7A6635A59151313000000000000000000463F3FB7A6A5E6CFCED0B9B8CFB9B8
+ E6CFCFF4DEDEF3DCDAECD6D6E3CFCEE9D2D2E7D1D0E6D1D1E7D2D1E2CDCCE6D0
+ D0E5D0D0DAC6C5DCC9C7E1CCCBDAC6C5E0CAC9E4CFCDE4CECCD6C1C0E5D1D0E5
+ D1D0D9C6C5E2CECDE5D0D0EED9D9EFDAD9CEBABACEBBBAEAD7D7ECD9D9D4C1C0
+ CEBBBBEBD8D8EFDCDCF4E2E1F2E0DFF3E0DFF2DEDC0000000000000000EBD8D7
+ E6D4D2E6D4D2D2BFBECEBABAECD8D8E7D6D5EAD7D6E7D6D5E7D5D5E2CECDE5D1
+ D1E9D5D4EDD9D8E7D5D4E0CDCCCEBAB9CDB7B6E1CCCAF2DCDBF0DAD9D8C2C1D9
+ C4C3E2CCCBE6D0CEE1CAC9EBD5D4EED8D7E9D2D0DAC4C2E3CDCCEBD5D4E3CDCC
+ E7D0CFE6CFCEDAC1C0D8C0BE786B6A1411116E62619F8D8C2823232A25257C6F
+ 6FCAB6B5D0B8B8D1B8B7EFD7D5E7D0CED2B9B9D1B9B7B9A4A38B7B7A443D3D00
+ 0000000000000000000000000000DFC4C3DCC1C0DFC4C3E5CBCAECD0CFEBD0CE
+ E2C5C4DCC0BFDCC1BFEACDCCB09A990000002B2525E2C4C3E0C2C11310100000
+ 000000000000000000005E5251C2A6A6DABBBBE4C4C2EAC9C7E9C6C5DEBDBBE4
+ C2C0E9C6C4E5C1BFD8B5B3D7B5B3DAB7B5D8B6B5DEBAB9E0BEBBE0BDBADEB9B7
+ DEB9B7E5C0BEE7C3C1DCB8B7DFBAB8917A79000000000000CFAEACEFC7C6EFC7
+ C5EAC1BEEABFBDEBC1BEEDC2C0EFC3C2E9BEBAEABEBBEDC1BFEABEBAE7B8B5E4
+ B5B2DCADAAEBBAB7E2B0ADD7A4A1DCA8A5E4AEABE3ACAAE7B1ADE5B0ADE2ACA8
+ DEAAA6DEAAA7140F0F000000000000000000987674EFB8B4E9B3B0E6B2AEE9B3
+ B0E9ADAAF0B2AEF2B3AEF2B1ACEFB4B0E9B7B3EDAEAAEAA29CEBA39DEDA5A1F0
+ A8A2E99994E7908AED9591EF9E99EEA29CEE9D97F09A95ED9892D2908A614441
+ 00000063413EB9817B98635E462C2B000000150F0E472A279C5B569A5853F3A1
+ 98F99189FB9D96F89790F7A1989E6C689C6C68462724150F0E150E0D63403DBA
+ 7D78804A46150F0E000000623F3DD4847EEF9E98EEB4ADF5B1A9F9A7A2F8A59E
+ F2ABA6ECA7A2ED9C97EF9B95F2A29DECA6A1EFB3ADEBAAA5E6A19CEDA19CF3A9
+ A4F3B0ABF4B4B0F6B8B4F7BAB6F7BBB7F6BBB7F5BAB7E1A8A4AB807E95706E14
+ 0F0F0000009874729874722B2120000000000000000000000000000000000000
+ 0000000000002B23234238377D6766D1ACAA987D7B614F4E14100F0000000000
+ 000000005E4E4DCEABA9E7C0BEE7C1BFF4CDCAECC6C4DFB8B6EAC3C1ECC6C4EB
+ C5C4EDC7C7EFCCCBEECBCAE4C3C1E1BFBEDFBEBBE2C1C0ECCBCAECCBCAEACAC9
+ E3C2C1EBCBCAE2C3C2DEBEBEE3C4C3E5C5C4E9CAC9DBBDBBDEBFBFE7CAC9EACC
+ CBE9CCCB5A4F4E000000453D3DEFD4D2ECCFCE00000000000000000000000000
+ 0000000000000000000000000000131111403939423C3B453D3D151313000000
+ 0000002C2828453E3E7E71717F72718A7B7B6C5F5F3F38380000000000000000
+ 00000000292424736868CCB8B8F2DADAF4DCDBF2D9D8D4BEBBCFB9B8E3CDCBED
+ D7D6ECD5D5DCC6C5D6C1C0DBC4C4D6C1C0D9C4C3E5D0D0E2CCCBDFCACAD7C2C1
+ D5C0C0DAC5C5E0CAC9DCC7C5E4CECDE0CAC9D7C1C0D6C0C0E6D1D0E5D1D0D7C3
+ C2D6C1C1D7C3C2E7D4D2E6D1D1D0BEBDCFBEBDEBD8D8EAD7D7D5C2C1CEBBBBD9
+ C6C6F0DFDEF4E2E1EDD8D8DECBCAD6C3C10000000000000000E6D4D2E6D4D2E9
+ D6D5CFBDBBCEBABAE3D0CFE0CDCBD4C0BFCEBABAD1BFBED4C0C0D4C0C0D5C2C1
+ E6D1D0E2CFCED6C2C1CDB7B6CDB7B6DEC7C6F2DCDBDFCAC9CDB7B6D0BBBADAC5
+ C4D5C0BED8C1C0E6D0CFEAD5D4D1BDBDCFB9B9D1BBB9E6D0CFE7D1D0E9D1D0E1
+ C7C7CDB5B3CDB5B3D6BFBDCDB8B6564C4C121010544B4B8576768D7F7E433D3C
+ 554B4B3D3635453D3D433D3C3D36360000000000000000000000000000000000
+ 00000000000000000000D2B9B8D5BAB9D6BAB9D6BBBADFC5C3B09B9B8E7D7D3D
+ 3636282222000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000423A39433A3A5D4F4E947F7D9882
+ 81CCAEACD5B3B1D6B3B2DEBAB9DEBAB9DFBAB9E3C0BED9B7B4D7B4B3DEBAB8EE
+ CBC9E3C0BED8B5B3D8B4B3E2BEBA0000002C2424EBC4C2EDC5C3ECC3C1EBC2C0
+ E3B9B7E4BAB8E7BEBADBB2B0D7ACAAD9ADABDBB0ACD9ABA9D8A9A7D8A9A6DBAA
+ A8F0BFBBE7B5B2BE918D906D6C9572705B4545403231403231140F0F00000000
+ 00000000000000000000000000000000000000002A2120423231765957906A67
+ E6A9A5EFB3AEF0B9B5E6B5B1E5A9A4E9A39EE6A29CE49F9AE59F9AEC9E9AEB95
+ 90E6938EEA9994EBA29BE99B96EA9792EE9A94EC9E98EBA9A3EBA39CD087827F
+ 58552D1F1D140D0D613D3B9D5E599A706C613734462926150C0B000000000000
+ 000000000000000000150F0E462F2D7D47447D5A567E504C482F2D0000002D1D
+ 1C7E4E4AD28E88ED9993ED9791ED9791EBA39DECB6B0F8B1AAF8A7A1EA9D97E9
+ A59FEBA9A3EC9D98E69590E69A95EEABA6EAAEA9E5A7A2E7A49FE99F9BE69E9A
+ E3A19CD29D989C767380605E453533140F0F0000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000002A212041
+ 3534403535403736141111000000000000000000130F0F403434766261C4A29F
+ DBB4B2DAB5B2E3BEBBE4BFBDEBC4C2D8B3B0D6B0AEDAB5B3E6C1C0EEC9C6ECC7
+ C5EDC9C7F0CDCBDFBDBAD9B7B6D9B7B6DEBDBBEECECCE0C0BFD8B9B8DBBBBAEE
+ CECDE5C6C5D9BBBADCBDBD927E7D8A7676574A4A3E36352A2323000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000001310103D3636403938453D3D443D3D413B3B2B
+ 26260000000000000000000000000000000000003E38385F5555847474D1B9B9
+ D2BDBAD5BEBDD8C2C2EDD6D5EED6D6E3CBCAD0BAB9CFB9B8D6C0BFE2CCCADCC7
+ C5D1BDBBD1BAB9D4BEBBD2BABAD4BFBEE4CFCEDBC6C5D2BBBACEB8B7CEB7B6D9
+ C3C2E0CAC7D9C2C1DBC6C5CEB8B7CDB7B5CFB9B8E2CCCBE4CFCDCEBABACEB9BA
+ CEBABAEAD7D6EBD8D8D1C0C0CFBEBDE6D4D2DECCCCD5C2C1CEBBBACEBBBAD5C3
+ C2DBC7C6CFBBBACAB7B6CDBAB90000000000000000ECD8D8EAD7D6D9C6C5CEBA
+ BACEBABAD9C6C5ECD8D8D5C1C1CEBABADCC9C7DECBCAE5D1D1DCC9C7E5D0D0E6
+ D2D2D2BEBDCDB7B6CDB7B6D1BBBAEBD5D4D2BDBBCDB7B6D5BFBFF0DAD9EAD4D2
+ D6C0BFD5BFBED9C3C3CFB9B9CFB9B9D0BAB9E6D0D0EAD4D2E4CECCD4BAB9CDB5
+ B3CEB5B4D9C0BFECD2D1DFC6C5D2BBB9847675564D4D403A391412123D36363D
+ 3635463F3E000000000000000000141111453D3D453D3D3E38373D3636413A3A
+ 443D3D000000D6BBBAE2C7C5E4CACAE0C5C5C4ADAC928180897A798775758776
+ 75897876907E7D917F7F877574877675917F7E8B7B798775748774738D7B7A92
+ 7F7E8976758773728773728774738C79788D7A79927D7C957F7D957F7E917B79
+ BA9D9CD7B6B4EBCAC7ECCAC7E4C3C2E0BEBBDEBAB9D7B5B4DEBBB9E6C3C2DAB7
+ B6D9B5B4E0BAB9ECC7C5453A3A937B79EDC5C3F0C9C6ECC5C2EAC1C0E9C0BEED
+ C4C1EDC4C1DAB1ADD8ADAAE3B7B5EDC0BEE0B1AED8A9A7D8A8A6E9B8B5F3C0BE
+ B58D8C8A6A6892716F9878768B6C6A8B6C6A8B6E6C8D716F947875967B799676
+ 749776759776749878759474728E6E6C906D6A946E6C96706E926C6AAC827FEB
+ B8B4EBB9B5E5AAA6E7A6A1EFACA7EEACA7E4A29CE69C98F09D99EC9B95E69893
+ EDA59FEFA49EEB9C96E99691EB9D97EEA9A3EEA9A3EB9D98ED9E98F2A9A3ED9E
+ 97D187829B635F472C2B140E0D000000482B29482D2B2C1F1D00000000000000
+ 00002C1C1A45322F150E0E0000002E201F482F2D9C6A66D98C86F7ADA7F48E88
+ EDA59EEC9B95F5A49DF69F99EC9D97E9A9A3F0B5AEF5AAA5E79792EDA59FF6B4
+ AEF6B4B0E69894E59792F0A6A1E7A6A2E4AAA6ECADA9EEADA9F4AEA9C7898591
+ 666497706E906A688E6A688E6B68926E6C93706E98767499787593716F997875
+ 906E6B8D6B6992706E9A787598767492706E8D6D6B8C6C6A9372709475749173
+ 728C72708D7574907B79AC9392DEB9B7DCB7B6E5BEBDEEC6C4E1B8B7DBB3B1DB
+ B4B3EFC9C6E9C3C1EAC4C3D7B2B0D6B0AEDAB6B4EBC6C4F4CFCDEFCCCAEEC9C7
+ F0CDCBECC9C6DEBBBAD8B7B4E2C0BFEDCDCCDEBEBBDBBBBAECCDCBEFD1CFDBBE
+ BDD9BDBB9683839884838E7B7B887574897676907D7C8D7B7B88757489767592
+ 7F7F938181968484907F7E9887869987878B7A79877676938281998887958484
+ 8779788E7F7E9888879483838676758676759685859887879485859080808B7D
+ 7C938483938382D4BBBAD2BBB9D5BDBDE0C7C6F3DBDAD0B8B8D4BDBBD8C1C0E6
+ D0CEE6CFCEF6DEDCF6DEDCE3CCCBCFB9B8D0BAB9DAC4C2ECD4D4E1CBCBD0BAB9
+ D5BEBDE3CBCADCC6C4DCC6C5E6D0CFE5CFCECFB8B7CDB7B4CCB6B4D9C2C1E3CD
+ CCDAC5C4D5C0BFCDB8B7CDB7B6CEB8B7DAC5C4DFC9C7CFBAB9CCB7B5D4BFBFED
+ D9D9EDD9D9D4C1C0CFBEBDEBD8D8EBD8D7D5C2C1CCB8B7D9C5C4F0DEDCF0DCDB
+ DAC6C5CAB7B6DCC9C70000000000000000E6D5D4E3D0CFD2C0C0D2BFBED5C2C1
+ D2C0C0E3D0CFD7C3C2D5C2C1DBC7C6D8C3C3EFDCDBEFDCDBE7D4D2E7D2D2D0BD
+ BBD7C2C1D6C1C0D1BDBBECD6D5E1CBCACFBAB9D8C2C1F0DAD9F3DCDBE5D0CEE7
+ D1D0DFC9C7D0BBBAD8C2C1D2BBBAE4CECEF0DAD8F0DAD8D5BDBACFB7B5D6BFBD
+ D4BBB9ECD2D1E9D1D0D9C2C1D0BAB9E6CFCFE9D0D0EDD6D4D2BABAD2BAB8F2D9
+ D8EDD5D4D4BDBAD1B9B7EBD2D0ECD2D2EED4D2E4CBCAD2B8B8E7CECDECD1CFDC
+ C3C2D6BEBDE5CBCBE7CDCCE6CCCBE5CBCAEACFCED7BDBBD6BAB9D9C0BED7BDBB
+ E6CBC9E5CAC9D6B9B8D7BBBAE4C7C6DEC2C0D8BDBAD5B8B6E1C3C2E5C7C6D7B9
+ B8D5B7B6D8B9B7D5B7B6D8B9B7DBBDBAE7C6C4EECCCAEECCCCEBCAC9D6B6B5D8
+ B6B5E9C7C6EDCBCBECCBC9E2C1BFE3C1BFD7B5B3D9B7B5DAB7B6DEB9B8E4C0BD
+ EAC4C4EDC7C6EEC7C6DEB7B5EAC2C1ECC5C3ECC4C2E5BEBAE6BFBBE9C0BDEDC3
+ C1DBB2B0D9ADABEFC3C1F0C3C1EDBFBBDBACAADAABA8E5B5B2F0BFBBEDBBB9DA
+ AAA7E7B6B3EFBFBBDAAAA7DCAEABE3B7B4E5B9B7EABBB8EDBBB9E7B5B2EAB9B6
+ EBBAB7EBBBB8E3B1ADE2ACA9E4ABA8EAB1AEEBB2AEE7B2ADE4B4B0EAB7B3E9AD
+ A9E6A5A2E9A9A5ECACA8EEACA8E59E9AE79A96EEA19BEB9E99E69F9AEFA7A2EF
+ A39DED9E98E79A95E9A29CF2AEA9F0A9A4EA9A94EBA49DEBA29BED9D97F6A39C
+ F69B95F7A69FEC9791ED8E88F7958D9E6661986A66965450996460965E5A9760
+ 5CBB8A85F5A69FF8A19AF8A59EF7A8A2F4A59DF5A29BF7ACA5F29590EB9993EB
+ 9F99F8A7A2F4A39CEF9D98E79F99EDB5B0F0B1ABE79E98EC9E9AF4B0AAF7B7B2
+ E6A59FE69B96F0A59FE79F9BE4A49FEFB7B3EEB2ADF5B6B2E4A19CE39D99E7A6
+ A3E2A7A3E4AAA7EDB5B2F3BAB8ECB7B3EEB9B6EFBAB7E7B5B1EFBDB9EBB7B4E0
+ ADAAE9B5B2F3BFBBF4C0BDF4C0BDE2AEACDEABA8F2BFBDEFBEBBF0BFBEDFB0AD
+ E0B4B2EFC6C4EEC9C6DEBBB9DEBBB9EBC7C6EDC9C7EBC5C3DAB5B4E1B9B7EFC7
+ C6EDC7C5E3BEBDD8B3B2DFBAB7D8B5B2E4C1C0F2CFCDEFCDCBEECBCAEAC7C5E2
+ C0BFDEB9B8D7B5B3D9B8B6DBBBB9DEBDBBEBCBCAE9CAC9EECECDD9BDBBD9BDBD
+ EED1D0EFD1D0EED0CED7B9B8E1C4C3E4C6C6E9CCCAD7B9B8DBBFBEE9CCCBEACE
+ CDEDD0D0DCC1C1EED4D2EFD4D4D8BDBDD6BBBAEACECDEBCFCFDFC4C3D6BDBDEA
+ CFCEF0D6D6F3D8D7D6BBBAD4BAB9E6CDCBF2D8D7EFD8D6F2D9D8F0D8D6ECD4D4
+ D6BFBED5BDBBD9C1C0D5BDBDDEC6C5EFD8D7DCC5C5D5BEBDD9C3C2ECD4D2F3DB
+ D9F9E1E0F8E0DFD7BFBED6BFBED4BDBDD5BEBEE4CECDE6D0D0D5BFBDD6BFBEE3
+ CCCAE2CBCAE4CECDE7D1CFE3CBCACFB8B7D4BEBBCFB8B7D4BEBDE6D0CFDEC7C6
+ D1BBBACEB8B7D2BEBBCEB8B7E6D0CFE7D1D0D5C0BECBB5B4D9C5C3DAC6C5ECD7
+ D7D2C0BFCEBABAEBD8D7EDDAD9D5C1C0CBB7B6F2DFDEF7E3E2F0DCDBE1CECDCA
+ B7B6E9D6D50000000000000000EEDADAD9C6C5D0BEBDE2D0CFE5D1D0CFBDBBD2
+ BFBEDAC6C5D8C4C4D8C4C3D5C2C1E5D1D1F0DCDBEDD9D8DAC5C4CEB9B9F0DBDA
+ F2DBDACEB8B9E9D2D1EDD7D7D1BBBAD8C2C1ECD6D6EED7D6DCC7C5E9D2D1D2BE
+ BDD1BDBBE2CCCAD8C2C1D7C1C0ECD6D6E3CCCACEB6B5D6BFBDE4CDCCD4BDBBDF
+ C7C7E3CCCCD6C1C0D4BDBDE4CECDE7D0D0EAD2D1D4BDBBD1BAB8E4CCCBE1C9C6
+ D2BBB9D2B9B7D9C0BEDFC6C4E4CCCAD7BEBDD2B8B8E0C6C5E7CDCDDAC1C0D6BB
+ BBDEC4C3DFC5C4DCC2C0E4CAC9EACFCED5BAB9DCC1C1E7CDCBD9BFBEE5CACAE6
+ CBCAD6BAB9DABFBEE6CBC9E4C9C6D9BDBDD7B9B8E3C6C4E7CAC7D6B8B6D9BAB9
+ E6C7C6DABBB9DBBDBAE2C2C1EACAC7EECDCBEECECCEECCCCD9B8B7D7B6B5E7C6
+ C4EAC9C6EFCECCEFCDCBEAC7C5D7B4B3DAB7B5D9B5B4DCB7B6E6C2C0E7C3C1EE
+ CAC7ECC6C4DAB5B4E0B9B7EAC3C2ECC5C2E6BDBBE6BFBBE1B8B5ECC2BFDBB1AE
+ D9ACAAEBBEBBEEC1BFE6B7B5D9AAA8D9AAA8DCADABE6B7B4E3B5B2DAACA9E0B3
+ B1E1B5B2DAAEABE3B8B5EABBB8EEBFBBECBBB8E4B5B3E9BAB7EDBFBDEFC0BDEF
+ BDBAE7B2B0E2ACA8E3ACA9EDB5B3EDB9B6ECBDB9E5B1ADEAAEABEBADA9E5A7A4
+ ECAEAAEDADA9EDA9A5E59995E69B96F0A6A1EBA6A1E6A29DEFA7A3F3A6A1F2A4
+ 9EE69E99E9A8A3F2ADA7EDA49DE79C97ECA7A1EA9F99EE9E98F6A49EF79C96F8
+ B3ACEB918AEB918AF79790F9A69EEDA8A2EB857FED9C96EC968EF09A94F6B8B2
+ F5A59DF4A49CEE9892F3A8A2F3A39CF6A8A2F8A9A4F5A49DEA918AEAA49DF6A8
+ A3F6A8A2F0A19AE79A95F0AEA9F2BBB5E6A59FECA49EF5ACA7F7B6B1E6A6A2E6
+ A49EF7ACA7E79E9AE39E9AEBACA8EBB3B0F6BBB7E4A8A4E2A29DE39F9CE3A39E
+ F4B8B4F5BDB8F5BEB9F2BAB7F3BEBBF3BFBBEAB6B3ECB9B6E7B5B3E0AEABE4B3
+ B0F0BEBBF3C0BEF3C1BEE3B1AEDEABA9F0BFBDEEBEBBEBBDB9DFB1ADE0B2B0EB
+ BEBBECC1BFDFB6B4DEB8B6E7C4C2E6C6C4E1BFBDDBB9B8E3C0BEEFCBC9EAC3C2
+ DBB5B3DEB8B6EEC7C6D9B5B4DEB9B8F4D1CFF4D1D0F3D1CFF3D0CEEFCDCCE0BE
+ BDD6B5B3D8B7B5D8B7B5DEBDBAEACAC9E9C9C6EECECDD9BBBAD9BDBBEDCFCEEF
+ D1D0E9CCCAD7BAB9E4C6C6E1C4C3E3C6C5D7BAB9DFC3C2EDD1D0EDD1D0EDD0CF
+ DEC3C2EDD1D1EFD5D4DBBEBED6BBBAE9CDCCECD1CFDFC4C3D6BDBBE2C6C6EACF
+ CFF2D7D6D5BAB9D4BAB9E9CFCEEFD6D5EDD4D2F0D7D7EFD6D5E1CAC7D4BBBAD6
+ BFBEDAC3C2D4BDBBD6BFBDE7D0CFE0C9C7DAC3C2E3CBCBD9C2C0EDD5D2FBE2E0
+ EED6D5CFB7B5ECD4D2DFC9C6D2BBBAE0CAC7ECD4D1DCC5C3DBC3C2E5CDCCE4CD
+ CCE6D0CFE7D1CFD4BEBDCEB7B6E0C9C7D4BEBDD0B9B9E5CECDDAC5C3CEB8B7CF
+ B9B8E1CBCAD2BDBAE1CAC9ECD7D5D2BDBBCCB6B5E0CCCCE4D0CFECD7D7D2C0BF
+ CCB8B7E5D2D1EFDBDAD2BFBECBB7B6DECBCAE6D2D2E5D2D1D7C4C3CAB7B6DCCA
+ C90000000000000000E2D0CFD0BEBDD0BEBDEDDAD9F0DFDECFBDBBCEBBBBD8C4
+ C4D2BFBEE2CECDDAC6C5D0BEBDE4D1D0DAC6C5CEBAB9CDB8B7F2DCDCF2DEDCCD
+ B7B6CDB7B6D6C0BFCFB8B8DFCAC9E7D1D0D0B9B8D8C2C1D9C4C4CFB9B9D2BFBD
+ EBD5D5D7C1C0D0BAB8E9D2D0D5BEBECFB7B6736767433D3D0000000000001311
+ 116E6363877979D6C2C1DEC6C6DCC6C5D4BEBDD5BEBDE5CCCC90807F27222200
+ 0000000000413A3AA69493D2B9B8D2B8B8DAC1C0E5CCCAD6BDBBD6BBBAE2C6C6
+ A59292564C4C0000000000002822228B7B7BE2C6C66E60602823230000000000
+ 001310104139394039393E36363E3736141111000000000000A6908EE6C7C6D6
+ B8B7D6B7B5DBBDBBE3C3C2E6C6C5E9C9C6E3C3C1D5B4B2D6B6B4E5C4C2D9B8B7
+ D8B7B5E1BFBEDAB8B5D7B4B2DFBAB8DAB6B5D6B2B0D9B4B3DFB9B7EEC7C6ECC7
+ C6E7C2C1E5BFBEEDC6C4EDC6C4ECC4C2EBC2BFE3B9B6E7BEBAD9AEABD8ACAAE1
+ B4B1EFC1BFE1B3B1DAADABDAADAAE0B3B1EABDBAE1B5B2DAAEACE2B7B5EAC1BE
+ DEB2B0E1B3B0E0B0ACE4B4B2E1B3B0E0B3B0E2B5B2E9BAB7EEBBB9EEB9B6E7B2
+ ADE3ACAAE3AEAAE9B7B4EBBFBBE5B2AEE4A9A6E6AAA6EBADAAE5A9A5E7ABA7EF
+ ACA8E9A19CE49A96E49C98EFAAA6EFADA8E5A19BE9A19BF3A7A2EDA49FE6A49E
+ EAA9A4F3ACA7E99C97E7A29CF2ABA5EEA29CE99B95EF9D97F7A19AF9B5AEEB91
+ 89EA918AF49791F7A7A2EBA59EEA8982F2A29BEF9993EF9A94F7BDB6F4A39DEC
+ A29BE9918AE9A49DEE9E98F3A8A2F6A59EF4B0A9EA8E88E79E98EFA59EF6A9A4
+ E99C96E69893EAA39DEFB6B1E6AEA8E7A5A1F3AAA5EDA8A4E4A7A2E4A7A3F7B4
+ B0EDA49FE39C98E6A49EF5B8B4F3BDB8E3AAA6E3AAA6E6A8A5E2A29DF0B1ADF5
+ B9B6F3BBB8EBB5B2F0BBB8F5C1BEF0BDBAEFBDB9E1B1ADDFADABE3B3B1E7B6B3
+ DFAEACE9B8B5E5B5B3DEACAAE2B2B0EBBAB7E3B4B2DEB1AEE2B4B2EABBBAECBF
+ BEDEB2B0DCB4B2E2BBB9EDC9C6DFBEBBDBBDBBE0BFBEEECCCADFBBB9D9B6B4E2
+ BEBBEFCAC7D8B3B2D5B1AEEECAC9F3CFCEEDCCCAF4D1CFE9C7C5D7B6B5D6B5B4
+ E6C5C4E5C5C3D7B7B5DFBEBDF0D0CFF0D0CFDCBEBBD9BDBAE1C1C1EDCECDDEC0
+ BFD7B9B8E0C3C2E9CDCCDABEBDD7BBBADBBFBEEED2D1EFD4D2EED5D4E3C9C9EC
+ D1D0EACFCFDABFBED7BDBBE1C6C6EED2D1E6CBCAD6BDBBDBC0BFEBD0CFE6CBCA
+ D4BAB8D6BBBAE7CDCCEDD2D1E7CECDEAD1D0E4CBCBD4BBBAD4BABAE7D0CFE7D0
+ CFD5BEBDD2BBBBDAC2C2D5BFBED8C1C0D9C3C2D1BAB9D1BAB9DEC4C3CEB5B4CE
+ B6B6ECD4D2DEC7C6CEB6B5CCB4B2DBC3C2CFB7B5D5BDBBE2CAC9CEB7B6D8C1BF
+ DAC3C2CDB6B4CFB8B6E6CFCED8C1C0CDB6B4E4CDCCDAC4C3CDB7B5D0BBBAE3CC
+ CBCFB9B7CDB6B5E3CDCCCDB8B6CDB7B6D0BDBBE0CCCCE0CCCBCEBBBACCB8B7EC
+ D7D6ECD8D8CCB8B7CBB7B6E1CECDDCCAC9DFCCCBCFBBBACAB7B6CEBAB9000000
+ 0000000000D2C1C1D0BEBDD0BEBDEDDADAEFDCDBD2C0BFCEBDBBD5C2C1D0BEBD
+ D2BFBED0BDBBCFBBBAD5C1C1D1BDBBCEB8B9CDB8B7E3CFCEEED9D8CEBAB9CEB8
+ B7D6C1C0CFB8B8D0BABAD2BDBDD1BBBAD7C1C0D1BEBBCFB9B9DBC6C4EAD5D4D5
+ C0BFCFB9B8DBC5C5D0BAB8D0BAB9E6D0CFE9D2D26E6363000000746969D7C3C2
+ D5BFBFDAC4C3DAC4C3D6C0BFD5BFBDDFC7C7E6CFCDDAC3C2D1BBB9000000433C
+ 3CEBD1D1DEC5C3D2B8B8D2B8B8E5CCCBE7CDCDD9C0BFD5BBBAD6BEBDD6BBBAD7
+ BEBB282323000000BAA4A3DCC3C1E1C6C5D7BDBBBDA6A5000000403939D6BABA
+ D7BBBAD8BDBAD7BAB9DCC0BEE0C3C1BDA4A33E3636292323E3C6C5D7B9B8D6B8
+ B7DABDBBE4C6C5E5C7C5E7C9C6E6C6C4D6B5B4D5B4B2D7B6B4D6B5B4D7B5B4D9
+ B7B5D9B7B5D5B3B1E9C6C3E1BEBAD6B2B0D6B2B0D7B3B1EAC5C2EBC6C5E7C2C0
+ E2BDBAECC4C3EAC2C0E9C0BEE1B8B5DEB4B2D9AEACD8ACABD8ACAAD9ADAAE3B6
+ B4DFB2B1DBB0ACDBB0ADDFB4B2DFB4B2DBB1AEDAB2B0ECC2BFEFC3C2ECBFBBE1
+ B1ADDEAEACDEB1ACDFB4B2E0B3B1E3B4B1E5B4B1ECB8B5EAB6B3E9B3B1E5B3B0
+ E3B4B1E3B7B4E4B1ADE3A9A6E3A9A6E5ABA8EDB2ADE6AAA6E5A6A3E7A29EE69F
+ 9BE39D98E4A19CF0B0ABF2AEAAE7A29CE59B97E69F9AE6A49EE7AAA5EFACA7F2
+ AAA5E79F9AE6A59EEEA6A1EA9E99E79B95E79590EB9D97F7ADA7F09893E9918A
+ E9918AEA9D97E99F99ED9089F8AAA4F6A29CEE9993EBB3ACE99994E9A39CE78E
+ 88ECABA6F4A59EF6ADA8F7A8A3F3ABA5EF9C97E99893E9A49EEA9F9AE69B97E6
+ 9A95E9A19AF5B3ADEBB7B2E5AAA5E6A39EE59E99E4A39EE3A8A4F4B8B4F2B0AB
+ E59E9AE29D99E3A29DE3A7A3E5B0ABECB5B1EFB6B2E2A6A2E5A6A3E9ABA8E4A9
+ A6E1ABA8E6B3AEF2BFBAECB8B5F0BEBBE4B3B1DEADABDFB0ADDFB0ADDEAEACE3
+ B5B2E2B4B2E0B1AEDEAEABDEAEACDEB0ADDEB1AEDFB2B0E1B4B2E1B4B2DCB1B0
+ DCB1B0DFB4B2E7BFBDDFB8B7DBB8B7E0C0BEE4C5C4DBBBBADAB8B6E5C4C2E7C5
+ C3D9B6B4D6B2B1E6C3C1EDC9C7E5C3C1EFCDCCE1BFBED8B6B5D6B6B5DFBFBDDF
+ C0BED6B6B4D6B6B5DCBDBBF2D1CFEDCECDD9BBBAD9BBBADEC0BFD9BBBBD7B9B8
+ E1C4C3E7CBCAD8BDBBD7BAB9DBBFBEE7CDCCE7CCCBE9CECEE1C6C6DFC4C4DAC0
+ C0D7BDBDD7BDBBD8BEBEE1C6C6ECD1D0E0C5C5D6BBBBD7BBBAD6BAB9D6BAB9DA
+ C0BFECD0CFEDD4D1EDD2D1E9D0CFD9C1C0D4BBBAD4BBBBECD2D2EED6D5E1C9C6
+ D2BBBADCC5C4D8C1C0D5BDBDD5BDBBD0B8B7D6BFBDDBC3C2D0B7B7CFB9B7E0C9
+ C6D4BAB9CEB6B5CBB3B2D5BEBDCEB6B5CFB7B5CFB7B6CDB6B5D2BBBACFB8B6CD
+ B6B4D4BEBDE6D0CFD7C1BFCDB6B4D5BFBECFB7B6CCB6B5D9C3C2E7D1D0CFB9B9
+ CBB6B4E5CFCECEB9B8CDB8B7D2BFBED5C2C1D2BFBECCB9B8CEB9B9DEC9C7D8C3
+ C2CBB6B5CBB6B5EEDAD9EFDBDADFCCCBCAB7B6CAB7B6DCC9C700000000000000
+ 00D9C6C6D6C3C3DECCCBE9D7D6ECDAD9D8C6C5DAC7C6E3D0CFE0CCCBE4D0CFDE
+ CBCAE3CFCEF0DBDAE6D2D1DFCAC9D6C1C0E7D2D1F0DBDAE7D1D1E3CECDDAC4C4
+ D9C4C3DAC4C4DEC7C6E3CECED9C2C2D7C1C0D9C4C3E2CCCBE3CFCDE5CFCFDEC9
+ C7E2CCCBD9C3C3E1CBCBE6D2D1E6D1D1928485000000928584E2CECEE3CECEE6
+ D2D1E0CBCBDFC7C7E4CECDEBD5D4E3CCCCE3CCCCD8C1C1000000443D3DEAD1D1
+ E7CFCFDBC3C1DBC3C2E7CECDE1C9C7E3CBCAE4CBCBE3CBCAE4CBCAE7CDCD423B
+ 3B000000E4CAC9E6CCCBE4CAC7E2C6C5E0C5C4000000413A39DFC3C1E3C6C6DE
+ C2C1DFC3C1E2C5C4E5C9C7E2C4C3DEC1C0141111E7CAC9E6C9C7E0C3C1E0C2C0
+ E5C7C6EACAC9EDCDCBE6C6C4E9C9C6E4C1C0DEBDBBDFBBBAEAC9C5E4C2C0E9C5
+ C3E1BEBBECC9C6E9C4C3E1BDBBE3BFBDE5C1C0EBC6C3EAC4C3E3BEBDE0BAB8E7
+ C0BEE2BBB8E0B8B5DEB4B1E1B7B4E0B5B3E1B5B2DFB3B0DFB5B2E7BEBAE6BDBA
+ E1B7B4EAC0BEEBC2C0E5BEBBE0B8B5E5BBB8EFC3C2F0C3C0F0C2BFF0C2C0EBBF
+ BBE9BEBAEABDBAEEBFBDEFBEBBEDBAB8EDBAB7EDB9B6ECB9B7EBBEBAEBBEBBEB
+ B7B4EAB1ADEBB1ADE7AEABEDB4B1EFB5B1EBADA9E7A4A1EFAAA7EFABA7ECA9A4
+ EBACA8EFAEAAF2AEAAF0AAA5ECA6A2EDA9A4ECADA9F2B4AEF3B0AAF0A8A3F2AE
+ A9EDAAA4EFA7A2EBA29CEDA29CF09C97F3ACA7F8A9A4F9A49DF49D97F39D98F5
+ AAA5EEA49DF29892F8ABA5F6A49EF6A39CF8C2BBF3A49DF7B5AEF8A19BF8B3AC
+ F6ABA5F8AEA9F8ADA7F6ACA7F5ABA6F59F9AF5B2ACF6AEAAF3ABA6ECA39EF3A8
+ A3F5B2ACF4B8B4F3BEB8EFB1ADEFABA7E7A29DECACA8ECB1ABE9AEAAEBA9A6E6
+ A29DE4A29DEBABA7ECB3AEEDB9B5F3BDB8EBB4B1E4AAA6E4A7A4E4A7A4E4ABA7
+ EFBAB6F3BFBBECB8B5F2C0BDF3C1BEE3B3B0ECBEBBEDBFBBEDBFBDEDBFBDE4B7
+ B4EABBB9EFC2C0E6B9B7E2B4B2E4B7B5EABEBBEABDBAEDC2C0EBC1C0E5BAB9E2
+ B8B6EEC3C1EDC4C2E3BAB9EDC9C6EBC7C7E3C2C1E9CAC7EFCFCEEECECCE4C4C2
+ E2C0BEF3D0CFEECCCAE5C2C1F2CFCDEDCCCBE0BFBDDBBBBADBBBBAE3C3C2E2C3
+ C2DFBFBEDFBFBEE9CAC9EDCECCE3C5C4E4C5C5E5C7C5EBCDCCE7C9C7E9CCCBEA
+ CDCCE5C9C7E3C6C5EDD1D1F0D4D2EDD0CFE7CDCDE4CAC9E3CACAE9CFCFE7CDCC
+ E1C7C7E0C5C4EACFCFECD2D0E6CDCCE6CDCBE9CECDE6CCCBE5CBCBE7CDCCE7CC
+ CBEFD6D5EED4D4EDD2D1E7CECDDFC6C5E7D0CEEDD4D4EDD5D4EDD6D4E3CACAF0
+ D9D8F0D9D8EED6D6E6CECDE3CBC9EBD2D1F0D8D7E9D0D0ECD5D5ECD5D5E0C7C5
+ D6BEBDDBC4C2EDD5D2E4CCCADCC5C3DCC5C3E0C9C6E3CBCAE0CAC7E1CAC7E6D0
+ CFE6D0CFE1CAC9D9C3C2E7D1D0E6D1CFE3CDCCE6D0CFEAD4D2E5CFCEE7D1D0EC
+ D6D5E0CCCAE1CDCBE9D6D5E0CCCBEBD7D6EDDAD9F2DFDEEBD7D6E7D4D2DECAC9
+ DCC9C7F4E1E0F7E3E2F2E0DFE1CDCCEDD8D8F8E4E30000000000000000DECCCB
+ DCCAC9E1CECEE6D6D5EAD8D7DFCCCCE6D5D4E9D6D5E9D6D5ECD8D8EAD6D5EEDA
+ D9F0DCDBF0DEDCF2DCDBEBD6D5F2DBDBF0DBDAECD7D7E1CCCBD6C0BFE1CBCAEE
+ D9D8F0DBDAF0DBDAEAD4D2EBD6D5EED8D7E9D4D2E9D4D2E7D2D1E7D2D1E6D2D0
+ E3CFCFE4D0CFE5D0D0E4D0CF918383000000928585E5D2D0E7D4D4E9D4D5DFCA
+ CAE2CDCCE9D4D2EAD4D4E6CFCEE9D2D1E3CDCC000000443D3DEAD2D2E7CFCEE1
+ CAC9DBC3C1E1C7C7DBC2C1DEC4C4E2CAC9E9D0CFEBD1D0EAD0CE423B3B000000
+ E7CECDE4C9C9E4CAC9E5CBCAE5CCCA000000413A39E3C9C6E5CAC9E2C6C5E0C3
+ C2DEC2C1E2C5C4E2C5C4DFC3C28E7D7CAA9594E4C7C6E4C7C6E1C2C1EACBCAEB
+ CCCAEDCCCAEECCCBF3D0CFF4D1CFF4D0CFEFCECCF0CFCDEFCCCBEECCCAEECBCA
+ EECAC9E6C3C1E3BFBDE9C4C2EDC9C5EEC7C6EBC6C4EBC5C3E9C1BFECC3C2ECC4
+ C2E1B8B5E2B9B6E6BDBAEAC1BEEAC0BDE9BFBDEBC1BFEEC4C2ECC4C2ECC4C2EE
+ C6C4EFC7C5EFC7C4F0C4C3F0C3C1F0C2C0F0C3C0ECC1BEECC1BFEBBFBBEDC0BD
+ E7B8B6EEBDBAEEBBBAEAB8B5E9B7B5E9B9B6EABFBBE6B9B6EAB7B4EBB3B0EDB5
+ B1EEB6B4EEB6B3EFB6B2EFB4B1EEADAAEDAAA6F0ADAAF0B0ABEDAEAAE7A8A5EE
+ ACA8F2ADA9F2ACA7F2AEAAF0B2ACEDB2ACF2B3AEF3AEA9EEA9A4F0B1ABF5B0AA
+ F5ADA8F3A9A3F7AAA5F8A7A2F7B9B4F8A6A1F9A69FF6A29CF6A49DF8B1AAEFA4
+ 9DF49D97FBADA7F3A39CF8A69FF8C3BDF6AAA4F9B6B0F9A7A1F4AAA5F0A9A4F5
+ AAA5F0A9A4EFA69FEDABA6F3A19BF3A9A4F5B2ADF5ACA8F0A9A5F5ACA7F4ACA9
+ EEAEA9F4BEB8F5BEB8F0B1ACE9A7A2F5B4B0F3B7B3EDB3B0F4BAB7F5B5B2F3AE
+ AAF6B5B2F6B7B3F2B8B5F4C1BEE5B1ACE5B0ACEFB7B4F3B9B6EFB4B1EEB6B3F6
+ C0BDF3BFBDF4C2BFF3C2BEE7B7B4F3C2BFF4C5C2F4C5C3F4C5C3EABDBAEEC2BF
+ F3C6C3F2C5C3EDC1BFEDC0BFEDC1BFEFC3C2F0C5C3F0C5C3EEC4C2EEC4C2EFC6
+ C4EDC3C2E7BFBDEEC5C3ECC5C4ECC7C5F0CECCEFCFCDEED0CEE7C9C6EECFCEF3
+ D2CFEECDCCE9C7C5F3D0CFF3D0CFF3D1CEF4D2D1EDCDCCF3D2D1F4D4D2EFCFCE
+ E1C2C0EECECDEECFCEE7CAC9E6C9C7E0C1C0E6C7C6EACCCBE7CAC9E9CCCAEDD0
+ CFE9CDCCEDD1D0EBCECEEBCFCFEACFCEE2C7C6E1C6C6ECD2D1EDD4D2EAD0CFE7
+ CECEEBD1D1EBD0D0EBD0CFEBD1D1ECD0D1EFD4D2EED2D2ECD0CEE4CAC7EDD1D0
+ E7CECCEFD5D4EFD6D5EFD6D5EFD7D6EED6D5EED5D5EED6D5F3D9D8F5DCDBF4DA
+ D9F5DBDAF5DADAF4DADAEED7D5F2D9D8F2D9D8EFD7D6EED7D5EACFCEE9CFCEEE
+ D6D5EED5D4EBD2D1E9D0CFE7D1CFE2CACAE2CACAE7D0CEE7D0CFE7D0D0E6CFCE
+ DBC5C4E1CAC9E9D1D0EBD5D4E2CCCBD8C1C0E9D1D0E7D1D0EBD5D4ECD7D6DAC6
+ C5EBD7D6ECD8D8E4D0CFECD8D8EFDBDAF3E1E0F0DEDCE7D4D2E7D4D4E6D5D5ED
+ DBDBF0E0DFE6D4D2D9C6C5F0DFDEF2E0DF0000000000000000ECD9D9ECDAD9E3
+ D0CFE6D2D1E7D6D5DECBCBE6D5D4E3D0CFDECAC9E9D6D5E9D5D4ECD6D5ECD7D7
+ EEDAD9EFDAD9EDD9D7F2DBDAF2DCDCF3DEDCF2DCDCEDD8D7EFDAD9F0DBDAF0DC
+ DAF2DCDAEDD7D6EED9D8EED9D8EBD6D5E7D4D2E7D2D1E5D1D0E6D2D1E6D2D1E5
+ D0D0E3CFCEE4CFCF918485000000928584E0CCCCE6D2D1E7D4D2E0CCCBE1CCCC
+ E5D0D0E6D0D0E5D0CEE6D0CFE2CCCB000000433D3CE9D1D0E6CECDE1C9C9DFC5
+ C5E5CDCDDFC6C6E1C7C7E6CDCCEAD0D0EBD1D0EACFCD423B3B000000E6CCCBE3
+ C9C9E4CACAE5CBCAE5CCCA000000413A3AE4CAC9E6CBCAE6CBCAE4CAC9E2C6C4
+ E6CBC9E5CAC9E3C7C6E4C9C7E4C7C6E6CAC9E2C3C2E1C2C1E9CAC9EECDCCEECE
+ CCF2D0CEF0CFCDF4D2D1F4D1CFF0CFCDE9C7C5E6C4C3E9C7C5EBC9C6EBC7C5E4
+ C1BFDFBBB8E0BAB9E9C3C1EBC6C3E9C2C0EAC3C0E5BFBDEDC5C4EEC4C4E9C0BE
+ E9C0BEEBC2C1EEC5C3EFC5C4EDC5C2EDC5C2EEC6C5EEC7C5EBC6C4EDC7C4EFC5
+ C4EFC5C3EFC3C2EBC0BEEDC2BFEFC4C2ECC2C0EDC1BEEEC1BDEFBFBDE4B5B3EB
+ BAB8ECBAB8E7B8B6E6B8B5E5BBB8E5B8B5E7B5B2EAB3B0E6B1ADEBB5B2EFB8B5
+ EFB7B4EEB5B1EFB1ACE7A7A4E9A8A4ECACA8EFB2ADECB0ABE6A8A4ECAAA6EFAA
+ A6EEACA8F2B2ADF2B7B3ECB0ABEFB0AAF3ACA8F2B1ABF2B1ABF6B2ACF6AEA9F4
+ ABA5F4A6A1F5A9A4F6B4AEF6A39DF8A8A3F8A49EF8A9A3FBB5AEF0A49DF39D98
+ F9B0A9ED9E99F2A19AF3BBB6EFA7A2F6B2ACF8AAA5F3A7A2F5B2ACF2A8A3F4AD
+ A9EDA39DF0ACA8EFA59FEFA19CEFB1ABF2AEA9F0ABA6F3ACA8EFA8A3F2B0AAF3
+ B8B3F5C4C0EEB5B1ECADA9F7B5B0F6B7B3EFB5B2F2B8B4F5BBB7F5B5B2F6B5B1
+ F6B6B3F0B5B1EBB4B0DFADA9E0AEAAEEBAB7EFB9B6E5ACA9EDB2B0F5BEBAF3BE
+ BBF5C2C0F3C1BEE7B7B4EEBFBAEDBFBBF2C3C0F2C5C3E3B7B5EDC1BFF3C7C4F0
+ C5C3EDC2C0ECC1C0ECC1C0EEC3C2F2C6C4F2C7C4F0C7C5EFC5C4EEC5C4EDC4C2
+ EAC1C0EDC5C4ECC5C3EEC5C4EFC9C6EFCCCAEECCCBE6C6C4EED0CDF3D5D2EFD1
+ CEDEBFBDE7C6C4EACAC7F0CFCEF0CFCEE2C1BFF0CFCEF2D1CFEBCBC9E1C1C0EB
+ CDCCE9CBC9E9CBCAEACDCCEACCCBE4C6C5DCC0BFD9BBBADABEBDE3C6C5E0C3C2
+ E2C7C6E4C9C7ECCFCFEBCFCFE3C9C7DFC4C3EBCFCFEDD2D1E9CECDE3C9C7E7CD
+ CCEAD0CEECD1D1EBCFCEEACFCEEFD5D2F3D7D6EFD2D0E6CBCAEDD1D0ECD0CFEF
+ D5D5EFD5D4EED5D4EFD6D5EED5D2ECD2D1EBD1CFEED6D5F3D9D8F3D9D8F3D9D9
+ F3D9D8F0D8D7ECD2D2EDD4D2F0D9D8EDD6D5EED6D5EAD0CEEDD4D2EED5D4EDD4
+ D2ECD4D2E7CFCFE9D0CFE3CCCBE3CCCAE7D0CFE7D0CFE6D0CFE7D1D0E2CCCAD8
+ C1C0DEC6C5EAD2D1E1CBCAD6C0BEE7D0D0E6D0CFE2CDCCE6D1D1D6C2C1EAD6D5
+ EDD9D8E4D0CFE7D4D2E6D2D2EFDCDBF2DFDEF0DEDCEAD8D7E6D5D5EFDCDCF0DF
+ DEE6D6D5D8C6C6EBD8D8E3D0D00000000000000000EEDCDBEEDBDAE7D6D5E9D7
+ D6E9D7D6E0CDCDEBD8D8E9D6D5DECBCAE7D4D2EDD7D6EDD7D7E9D5D4E7D5D2E7
+ D2D1E9D2D2F2DBDAF2DEDCEED9D8E9D5D4E4CFCEE2CCCCE3CECDE3CECDECD6D7
+ E3CFCDE9D4D2ECD7D6EBD6D6EAD6D5E7D4D4E3CFCFE5D1D0E5D1D0E6D2D1E6D2
+ D1E6D2D2928686000000948787E1CDCDE5D1D0E6D2D1E3CECEE5D0CFE7D2D2E9
+ D2D2E6D0CFE6D0CFE3CDCC000000433D3DE9D1D1E7D0D0E2CBCBDCC4C4E1CAC9
+ E1CBC9E1C9C7DBC2C2E1C7C6E5CDCBE6CCCB3F3838000000E1C6C5DBC2C1E3CA
+ C9E3C9C7E2C7C6000000413A3AE5CBCAE6CBCAE6CBCAE6CACAE6CAC9E6CBC9E5
+ C9C7E4C9C7E5C9C7E6CAC9E9CAC9E2C4C3E1C2C1EACAC7EACAC9F0D0CEEECCCB
+ EFCECCEBCAC7EECCCBEAC9C6DEBBBADEBBBAE4C2C0EAC6C5E9C5C3E6C3C1E1BB
+ BAE1BBB9E2BEBDE6C1C0E6C1BEE5BFBDDEB7B5EAC2C0EEC5C3E9C2BFE7C0BEE2
+ BBB8ECC3C2E6C0BEE3BEBAE3BEBAE1BEBAEBC4C2E5BFBBE9C0BFEDC4C2EBC0BE
+ ECC3C0E7BEBBE9C0BEE9BFBDE6BBB9E2B4B2ECBDB9EFBFBBE9B8B6ECBBB9EDBF
+ BDECC0BEECC2C0EBBDBAEBB8B5E9B5B2ECB6B3E7B2AEEBB5B2EEB8B5EFB6B4EF
+ B3B0EEB0ACEBACA8ECAEAAEFB3AEEFB5B2EDB0ABEAAAA6EFACA8EFAEAAEEAEAA
+ F3B7B3F3B8B4EFB3AEEFADA9F3B2ACEFB2ADEAA9A4F4AEAAF0AAA5F0A9A4F2A4
+ 9EF3ADA8EFA9A4F5A49EF8A9A3F5A29CF7ABA5FBB6B1EA9C97F5A49EF8B0AAF4
+ A7A2F3A49DF5BDB6F5AEA8F8B5AEF8ADA8EFA39DF7B7B2F7ADA8F6B2ABEBA49E
+ F2ACA7F0ADA8F0A19BF2ADA9F2B1ABF2ADA9F4B1ACF5B0ABF5B2ADF6B7B2F6C0
+ BBF2BEB9EAB0ABF4B6B2F6B5B1F5B8B4EFB7B4F3BAB7F3BAB6F5B6B3F4B5B1EF
+ B3AEECB2AEE0AAA6E0AEABE0AEAADEABA8E0ABA8E6B0ACF0B8B5EFB8B5F5C0BD
+ F3C1BEEBBAB7F4C4C2EEBFBDF0C1BFF2C4C1E3B8B6EDC1BFF0C6C4EDC3C1ECC2
+ C0ECC2C0E4BAB8E9BDBBEEC3C1EBC1C0EDC3C1ECC3C2EFC7C5EDC5C4E6BFBEEA
+ C3C1EBC4C2ECC4C3EEC6C4EEC9C6EECAC7EAC6C5EDCCC9F3D2D0F2D4D2EBCDCC
+ EED1CFEDCECDF2D2D1F2D2D0E3C4C2F2D1CFF4D2D0F3D2D0EBCBC9EFD0CFEDCD
+ CCECCDCDF0D2D0F2D4D2EBCECEEDD0CFE5C7C6DEC2C1E9CBCAEFD4D2EDD2D1EC
+ D0CFEDD2D1EDD2D1ECD1D1E7CCCCE7CDCDECD1D0EACECDE5CBCAD9BEBBDABFBE
+ EACDCCE6CBC9E3C6C5E9CDCCEDD0CFDCC0BFE2C6C4E9CDCCE2C6C5EAD0D0E9CF
+ CFE9CFCFECD2D1E7CFCDE6CDCCE2C9C7E4CBCBEED6D5EDD6D4EDD5D4EDD4D2EA
+ D1D0E2C9C9E6CECDE2CAC9EAD1D0E9D0CEE6CECDEAD0CEE6CFCEEAD1CEECD2D0
+ E5CECCE6CFCDDEC6C4DAC2C0DFC7C5E1C9C7E3CCCBE6CFCEE5CECDD6BFBEE1CB
+ C9E9D1D0E1CAC9D8C2C1EAD5D4E9D4D2EDD8D8E9D4D4D0BDBBE9D5D4EEDAD9E7
+ D4D2ECD9D8E7D6D6ECDAD9EFDCDBF0DFDEE9D6D6ECD9D9F3E1E1F4E2E2EEDCDB
+ EBD8D9F0DFDEE6D4D20000000000000000DECCCBECD9D9EBD8D8E6D2D2E1CECE
+ D5C3C3E5D2D1EBD8D7D9C5C5D5C1C0E1CCCAE7D2D1D8C3C2DCC9C7DEC9C7E1CC
+ CBE5CFCED7C2C1D6C1C0D2BEBDD4BFBFDEC9C7DCC7C6D5C1C0E5D0D0DBC7C6E2
+ CCCCE9D4D4E6D4D2E9D6D6E7D5D5E6D2D1E6D4D2E6D4D2E7D5D2EAD5D5E7D4D4
+ 938787000000938686E2CECEE4D0D0E6D2D1E3CECEE4CFCEE6D2D2E6D1D1E6D0
+ CFE6D0CFE6CECE000000433D3DE9D1D1EAD2D2E9D1D0E5CECCE6CECDE5CCCCE0
+ C6C6DEC5C4E2CACAE7CFCEE9CFCF413A3B000000E0C6C6DCC3C1E0C6C6E3CAC9
+ E3CAC9000000413A3AE2C7C7DCC3C2DCC3C2E1C5C3E3C9C7E5CAC9756867E2C7
+ C6E4C9C7E6CAC9E7CAC9E7CBC9E4C7C6E6C7C6EACAC9EBCBCAE7C7C6EDCDCCDE
+ BEBBEBCBC9EDCBCBE9C6C5E7C6C4EDCACAECC9C7ECCAC6ECC9C6E6C2C1E5C0BF
+ E4BFBEE9C3C1EBC6C4EBC5C4E7C1C0EDC6C3EBC6C3ECC6C4EAC4C2E4BFBDEBC6
+ C4E6C2C0E3BFBDE1BBBAE1BDBAEBC4C2E2BAB7E5BDB9E9C0BEE6BEBBECC3C1EA
+ C2C0EBC0BEEABEBBE6B9B7DEB1ADE0B2B0EBBBB9E5B7B4E5B9B6ECC1BFEBC3C0
+ EDC0BDEDBBB9EDB9B6ECB8B6EDB9B7EAB6B3ECB8B5EEB7B5EEB4B1EFB2B0EFB2
+ B0EEB1ADF0B5B3F0B7B4EFB5B1EEB2ADEBABA7EFAEABF0B2ADEBAEAAEFB7B4F2
+ B7B3F0B3AEF0AEAAF2B5B1ECB0AAF0B0AAF4B0AAF4AEA9F4ABA6F5A8A3F4B5B0
+ ECA49FF3A59FF3A59FF0A19BF7AEA9FBB8B3EA9D98F3A49EF3ABA6EDA39DEB9D
+ 98ECB4AEEAA8A3F2AEA9EFAAA5EA9C97F2B5B0F4AEAAEEAAA6E7A39EF0ABA6F4
+ B6B1F2A8A3F0A9A5EDB0ABF2B1ACF3B1ACEEABA7F4B0ABF3B4B0F3B8B4ECBBB6
+ E3AEABE6ACA8EEB2ACEDB0ABE6ADA9ECB5B2EAB4B1ECB4B1EEB3AEF2B5B2F0B5
+ B2EDB6B3EBB7B4EDBDB9EDBDB9EBB9B6EAB7B4EEB9B6F3BDB9F4BFBAF0BEBAF0
+ C0BDF4C4C2F4C5C2F4C6C3F3C5C3E9BDBAEDC2C1F2C7C5EFC6C3EFC6C4EFC6C4
+ EDC3C2EDC4C2EDC3C2EEC5C4EDC5C3EEC5C4EDC6C5EDC6C4EAC3C2ECC5C4EAC3
+ C2ECC4C4EAC4C3EEC9C6EEC9C7EAC4C3EAC6C3EFCDCCF2D0CFEBCCCBEED1CFF0
+ D5D2F0D4D2F0D4D2EBCDCCF0D2D0F2D2D0EDCECDE3C3C3F3D2D1EBCDCCDBBDBB
+ EDCECDF3D2D1EBCDCCEED2D0E6C9C7E3C7C6EACECDEDD1D0EDD1D0EED2D1EDD1
+ D1ECD0D0E9CECDE7CDCCECD1D0EFD5D2EFD4D1EDD0CFD9BDBAE7CAC9E7CBC9E5
+ CAC7D9BEBBE4CAC6E5CBC9DBBFBDD5BAB8D7BBBBDCC1C0E0C6C5DCC3C2E5CCCB
+ E6CDCDE3CBCADFC6C5DAC2C1DCC4C3E6CDCDE6CECDEDD6D5EED7D6E6CECDE3CB
+ CAE5CDCBD8C0BFE0C7C6E1C7C6DAC1C0E4CCCBD8BFBED7BEBEE2C9C7E4CBCAE4
+ CECBE3CCCBE0C9C7E3CBCADBC4C3DBC5C4E2CBCAE5CECDDBC4C3E4CFCEEAD4D2
+ DEC7C6DEC9C7E6D1D1E9D4D2E9D5D4E9D5D4CEB9B9DFCBCAEBD7D6E0CCCBE7D6
+ D6DBC9C9DFCCCCEDDBDAEEDBDBE6D2D2E7D6D5F2E0DFF3E1E0EAD8D7ECDAD9F3
+ E1E1E9D7D60000000000000000E6D5D4EFDEDCEFDBDAEDD9D9ECD9D8D8C5C4DE
+ CCCBE6D4D2E1CCCBD2BBBADAC3C1D7C1C0D4C0BFD8C4C3DAC5C5E0CBCBECD7D7
+ E9D5D4EDD9D7EDD9D8DEC9C7E9D4D2EDD9D8E1CBCBE2CECEE0CBCAE6D1D0DFCA
+ CADCC9C9E2D0CFE2CFCEE1CDCDDECACADFCBCAE1CDCCE5D1D1E7D4D492858500
+ 00008E8383DEC9C9E3CECEE4D0D1DEC9C9DBC6C5E3CECDE0CBCBE2CDCCE5CECD
+ E0C9C7000000423C3BE3CCCBE6CECEE7D0D0E6CFCEEBD2D1E9D0CFE7CFCEE7CE
+ CCE2CAC9E9CFCEE7CECD423B3B000000E1CAC9DFC6C5E2C9C9E4CBCAE2CAC900
+ 0000403939E3CAC9E0C5C4DCC2C2E0C4C3E1C5C4A99594141111E4C9C7E6CAC9
+ E4C9C7E6CAC9E9CCCBE9CBCAE3C5C4EECFCEEBCCCBEECFCDEECECCE9C9C6EDCC
+ CBEECCCBE9C7C6E4C2C1EDCBCAECCAC9ECC9C9ECC9C9EAC6C4E6C3C1E5C0BFE6
+ C2C0EBC6C5EAC5C4EAC5C3ECC6C5E9C4C2E9C4C3ECC7C5EAC5C4EBC7C6EAC6C4
+ EDC9C6EAC4C2E4BFBDEAC2BFDFB7B5E5BEBBEBC4C2E9C2C0EAC2C0ECC3C0EFC3
+ C2EEC1C0EDC1BFE9BBB8EBBDB9EEC1BFECC1BFEFC6C3EEC5C3EDC1BFECBBB9EA
+ B7B5E5B4B2E4B3B1EAB7B4E9B6B3ECB6B4EAB2AEE5ABA8EBB0ACECB0ADE6ADAA
+ EEB7B4EAB1ADEDB2AEEEB1ACEAABA7EBAEAAECB1ACEBB4B0EEB6B2F0B6B2EEB1
+ ABF0B2ADF4B8B5F3B5B1F5B4B0F6B4B0F5B2ADF4ABA7F7B1ABF7BDB7F0A6A2F5
+ A9A4EFA49EE99C98F7B2ACFBBBB6EEA39DEFA49EEFAAA5EAA29CEB9F9AE7AEAA
+ E9A9A4F5B3ADF6B5B0F0A49EF5B6B2F7B4B0F6B3ADF0B0AAF2ADA8F4B4B0F0AC
+ A7F0A7A3EAADA8EAACA8EFB0ABEAAAA7EDACA9EFB0AAEFB3AEF2BBB7EDBFBAEB
+ B6B3EEB6B2EDB1ADE4AAA7F0B9B6EDB9B5EDB9B6EDB6B3EAB0ACE9ADABF0B7B4
+ F2BAB7F0BDBAEFC1BEF0C1BFEEBFBBECBBB8EEBAB9F3BEBAEBB6B4ECBAB8ECBD
+ B9EFC2BFEFC2C1EBBFBEE3B7B5E5BBB9ECC2C1ECC3C2EFC6C4EDC5C4EDC6C4EA
+ C3C1EEC6C4EFC7C6EBC4C3EBC4C3EBC4C3EBC4C3EAC4C3EAC4C3E7C3C1EDC6C5
+ EBC5C4EEC7C7EBC6C5E6C2C1E6C2C1EAC6C5EECCCAE3C2C0E9C9C6E9CBCAECD0
+ CEEACFCEE3C7C6E7CBCAF0D4D2EBCDCDE2C4C4EFD1D0EBCDCCDBBDBBF2D2D0F3
+ D1CFEECECCF2D2D0E7C9C9E7CAC9E3C6C5D8BDBBDEC1C0E6CBCAECCFCFE5CBC9
+ EBCFCFEBCFCEEED2D1F0D5D2F2D5D4F0D4D2E5C7C5EED0CFEFD1D1EDD0CEEBCF
+ CDEDD1D0EED2D1EDD0CFEBD0CEEDD1CFEFD4D2EDD2D2EBD1D0E7D0CEEAD2D0EC
+ D2D2EBD1D1E3CBCAE5CDCCE6CECDE2CAC9EDD5D4EDD4D4E1C9C7E7D0CFE7CECD
+ E5CDCCEAD1CEE5CCCBDEC4C3ECD4D1E9CFCEECD2D1ECD4D1E6CECDEBD2D1E4CD
+ CBE6CFCEE4CDCBDEC7C5DFC9C7E2CBCAE2CBCAD9C2C0E5CFCDEBD5D4E0CBCAE3
+ CFCDE6D1D0D8C3C2E3CFCEE2CDCDCEBAB9E1CCCCE4D1D0DFCCCCE7D7D6E3D1D0
+ E6D4D2EFDCDCEFDCDCEBD8D8EEDCDCF3E1E1F0DFDEE7D6D6EBD8D8F3E0E0EFDE
+ DE0000000000000000EDDAD9EFDFDEEFDBDAEEDBDAF0DEDCE6D2D2EAD7D6EFDA
+ D8E5CFCEDEC7C6F0DAD9EBD5D4E4CFCEE1CCCCD8C3C2ECD7D7EFDAD9EFDAD9ED
+ D9D8EFDAD9E0CCCBE6D1D1EDD9D8EAD5D4EBD6D6ECD8D7EDD8D7E6D4D2E6D4D2
+ E7D4D4E4D1D0DAC5C5DAC5C5E2CDCCE3CFCFE2CDCDE7D4D49184830000009184
+ 85E4CFCFE4D0D0E7D4D2E5D1D0E3CECEE6D1D1E4CFCDE5CFCFE6D0D0E5CECE00
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000DEC5C5DBC3C2DEC5C4E4CCCBE4CBCA0000001412
+ 12423B3B423B3B423A3A413A3A423B3A141111000000E3C7C7E4C9C7E3C9C7E4
+ C9C7E4C9C7E1C4C3DBBEBDE6C7C6E9CAC9EACBC9EBCBCAEACAC9EDCBCBEDCCCA
+ E2C1C0E3C1BFEECCCAEBC7C6ECC9C6EDCAC7EDC9C7E9C5C3E1BDBAE1BDBBE9C4
+ C3DFBBBAE0BBB9E3BFBDE6C2C1E7C4C3ECCAC9EBC9C6EBC9C6E5C2C1ECC6C5E1
+ BBB9E5BFBDEDC6C4E7C2C0EAC3C1EEC9C5ECC5C3E9C0BDE7BEBBEEC2C1EFC3C1
+ F0C4C1EDC0BEF0C4C2F3C9C5EEC6C3F3CAC6EFC2C0EEBEBBEEBDBAECBAB8E4B3
+ B1E5B4B2EBB8B5E6B3B1E9B2B0E7ADABE4AAA8ECB3B0EAB1ADE6B1ADF0B8B6EE
+ B5B2EEB4B0EDB1ACECB1ACF2B6B2F0B8B4EFB8B5EFB6B3EFB3AEEEAEAAF2B6B2
+ F6BAB6F0B3AEF4B4B0F6B5B1F4B2ACF5ACA8F8B5B1F7B8B3F3A7A3F6ACA7F5AA
+ A5EFA6A1F0ACA8F7B9B4EFA49FF5ACA7F6B2ADF0A9A4F3A9A4EFB6B1EBAEA9F6
+ B4AEF6B8B3EEA49FF3B3ADF6B6B1F5B2ADF0B2ADF2B0AAEFAEAAECADA8EFA6A2
+ E9A7A3EDB2ADF2B3AEECACA9EFB0ACF0B1ACEEB2ADF0B7B3F3C1BDF3C2BFF3BE
+ BAF0B8B4EDB2AEF2B9B6F2BDB8F0BDB9EDBAB7EBB5B2E7AEABEEB5B3F2B9B6EF
+ BAB7EBB8B5EABBB9E5B7B5E9B9B6EBBBB8E9B5B3EAB7B4ECBAB7E5B4B2E9B9B7
+ E6BAB8EBBFBBE6BBB9E5BBB9E4BBB9E6BEBBE9C0BEE4BDBBE4BEBBE2BAB9EBC4
+ C2E5BFBEE7C2C0EBC4C3EAC4C2EAC5C4E5C0BFDEB8B6E5C1BFEAC5C4E9C4C3EB
+ C6C5EAC6C5EAC6C4EAC5C4E9C6C4EECBC9E7C4C3E6C5C3EDCDCBEFD0CEE5C7C6
+ DABFBEE7CCCBF0D6D4EFD4D1EBCFCEEED4D2EED1D0E7CACAF2D4D2F3D4D2F6D6
+ D4F7D8D6E9CAC7EED0CEE9CCCBD7BAB8DABEBDECCFCFF0D5D4EDD1D1E3C6C6E5
+ CAC7E9CDCCE3C5C4ECCFCDE2C4C3DABDBBE7CBC9EBCFCDE5C9C7E2C6C5EBCFCE
+ EDD0CFEDD2D0ECD1CFECD1CFEED5D2EED5D2EFD6D4EED5D4EAD2D0EED5D5EBD2
+ D1DFC6C5E4CCCCE7D0CFE6CECDEDD6D5ECD5D5EDD6D4EAD2D1ECD4D2E4CCCCEC
+ D4D1EBD1CFE7CECEECD1D0ECD4D2EFD6D5EED5D2E6CDCCF2D8D7E3CBC9E4CCCB
+ E6CFCEE4CDCCE0C9C6E6CFCEE3CCCBD8C1BEE5CFCEE6D1D0DFCAC9E4CFCEE6D1
+ D0E4D0CFEDD9D8EDD8D8E0CBCAEEDAD9ECD8D8EBD9D8EDDADAEBD8D8E6D4D4EE
+ DBDBEFDCDCE5D4D2E5D4D4F0DEDEF2E0E0F0DFDEEDDBDAF2DFDEEDDBDB000000
+ 0000000000EDDAD9EFDCDBE7D5D4E6D4D2ECD9D8E1CECDEFDAD9F6E0DEEDD7D6
+ E9D2D1F4DEDCECD7D6E9D5D4EBD6D6DAC5C5EDD9D7F4E0DFF0DBDBEBD7D6EFDB
+ DADCC9C9E5D0D0EDD9D8EDD9D8E5D0D0E9D5D4EED9D9ECD8D7ECD9D7EAD6D6E6
+ D2D2D4BFBFD4C0C0EBD6D6E9D5D4E0CCCBEAD5D5928585000000908382DFCBCC
+ E3CECEE7D4D2E3CECEE3CECEE7D2D2E1CCCCE5CFCFE6CFCFE6D0CF000000443D
+ 3DEAD4D2E7D0CFE1CACAE1C9C6E7CECEEAD1D0E5CDCCDFC7C5DBC2C2D6BFBDD9
+ C1C13F3938000000D7C1C0DAC2C0DEC5C4E5CCCBE5CBCA000000423C3BE6CCCB
+ E6CCCBE6CCCBE6CCCAE6CBCAE5CAC9000000E5CACAE5CAC9E6CAC9E7CACAE9CD
+ CCE9CBCAD8B9B8DCBEBDE7C7C6E1C2C1E1C1C0E2C2C1EBCBC9EDCBCBE2C0BFE2
+ C0BEEDCAC9E9C6C4E4C2C0E4C2C0E9C5C4EAC6C4DFBBBAE5C2C1E9C6C4E9C6C3
+ E7C4C2EDCBC7EBC7C5E4C1BFEBCAC7EFCCCAEFCCCAEEC9C6EDC7C6EAC3C1EEC9
+ C5EFCAC7EDC7C6EAC4C2EEC6C4EDC4C2EAC0BEEAC0BDEAC0BEECC1BEEEC2C0E7
+ BEBBF0C6C4EBC3C1E6BEBAF3C5C2EBBBB8EDBEBAF0C0BEEEBFBBEAB8B6ECBAB8
+ ECBAB7EBB5B3EEB6B4EEB6B4EAB2AEF0B8B5EEB8B5E9B4B1EDB6B3EEB5B2EDB2
+ ADECB1ADEEB4B0F3B9B5F0BBB8F2BAB7EFB6B3F2B5B2EEB3AEEEB5B1F4B8B4EF
+ B3ADF3B4B0F7B6B2EFACA7F4ACA7F4B7B3F2B1ACF5ADA8F6B0AAF7ADA9F7AEA9
+ F7B6B1F8BDB8F5AAA5F6ADA9F7B4AEF4ADAAF4ACA8ECB3ADE9AEA9F4B3ADF4B9
+ B4EEA7A2EFAEA9F3B6B1F3B0ABF0B2ADF3B3AEF0B0ABE9AEA9EEA9A5E9A5A1EF
+ B6B2F4B7B4F3B5B1F5B8B4F5B7B3F2B4B0F3B7B4F3BEBAF3C3C0F2C1BEF2BAB7
+ EEB6B3ECB3B0EFB9B6F0BEBAF0BEBAEFBDBAECB7B5F2B9B6F4BBB8F3BEBAF3BF
+ BBF0BFBDEEC1BEEDC0BEF3C4C1F2C2C0F0C1BEEFBEBBF0C0BEF2C2C0F0C3C1F0
+ C4C2EBC1BFEBC0BEEABFBDE4BBBAE9C0BEECC4C3E3BDBAE1BBB9EAC4C3ECC5C4
+ EBC5C4EAC3C2E9C3C2E9C4C2DFB9B8DAB5B4DEB9B8EBC5C5ECC7C6EBC7C6E9C5
+ C3E2BEBDE5C2C1EDCACAEDCAC9E6C3C2E7C5C4EAC9C7E7C7C6D8B9B9D7B9B8E2
+ C6C5EBCECEECD1D0ECD1D0EED5D4ECD0CFE6CBCAF0D5D2F3D6D5F3D5D4EFD1D0
+ D8B9B8ECCDCBE9CBCADEC0BFD6B9B8DCBFBFE6CAC9E6CBCAD9BDBDE2C6C5E6CA
+ C9E7CBC9E6CBC9E3C6C5D9BDBAE4CAC7EACECCE5CAC7E1C5C3E7CCCAE7CBCAE0
+ C5C3E4CAC7E7CCCBE7CECCEDD2D0EED5D2EED5D4E2C9C7EDD2D2ECD4D2E1CAC9
+ E0C9C6E3CCCBEDD6D5EED8D7ECD4D2EDD6D5EAD1D0E4CDCBDBC3C2DEC5C3ECD4
+ D1E9D0CFE4CAC9E9CFCEECD2D1E7CECDE1C9C7F0D8D7EFD7D6E9D0CFE9D1CFE6
+ CFCDE4CDCBEAD1D0E7D0CFE3CCCBE9D2D1E4CECEE9D4D4EDD8D7E4CFCEE5D0D0
+ EAD6D5E3CFCED5C0BFE6D2D1E4D1D1E6D4D2E2CFCEDAC6C6DCCBCAE6D4D4E7D6
+ D6DECCCCE3D1D1EFDEDCF0DEDEF4E2E1F0DFDEF3E0E0F4E2E200000000000000
+ 00DCCBCAE7D6D5E6D4D2E5D1D0E6D4D2DAC4C4F0DAD9EED8D7E6D0CFECD5D4F2
+ DCDBEFD9D8E7D4D2EAD5D4E4CFCFF2DBDAF4E0DFEDD9D8E5D0D0E6D1D1D7C3C3
+ DECACAE7D4D2E5D1D0DAC6C5DAC6C5E1CDCDDFCACAE0CBCBE0CCCCE1CDCDD2C0
+ BED4C0BFDECACADFCBCADCC9C9E9D4D48C7F7F0000008B7F7FDBC7C6D8C4C3DB
+ C6C6D8C4C3D8C3C2DFC9C9D7C2C2E0CBCCE1CACBE4CECD000000413C3BE9D2D1
+ E7D0CFE7CFCEDAC2C1E1C9C7E7CFCDE6CFCEE2CBCBE4CDCCE4CDCCE4CCCC423B
+ 3B000000D7BFBED8C1C0DFC5C5E3CACAE2C9C7000000413A3AE4CACAE3C9C7E3
+ C9C9E1C6C5E1C5C4E3C9C7AD9999E2C7C6DEC2C2E1C4C4E4C9C7E9CBCAE9CBCA
+ DABBBADFC1C0E7C7C6E4C5C4DBBBBADCBDBBEAC9C7E9C7C6DCBAB9DEBBB9E6C3
+ C2E1BFBDE5C3C1DFBDBBE9C6C4ECC9C7EAC7C5E5C3C1E5C4C3E2C0BFDFBEBBE3
+ C1BEE3C1BFE0BEBAE2BFBDDEB9B8E2BEBBEAC4C2E5C0BEDCB7B5E6C2C1EAC6C4
+ E6C1BFE1BAB8ECC4C2E7BFBDE2B8B6EBC1BFE9BFBDEBC0BEE3B9B7E0B8B5EFC9
+ C6E7BFBBE7B9B8EFC0BDE6B7B3E9B8B6ECBBB9E9B8B6E6B6B4ECBAB7EAB5B2E7
+ B2AEEEB6B3EDB6B3E5AEABEEB9B6EEBAB7EBB4B1E5AEAAE4ABA8E6ACA9E9AEAC
+ E9B0ACEEB9B5EDB8B5ECB6B2EDB4B0F3B7B2F2B8B4E6B0AAEDB2AEE7ACA7F3B5
+ B0F3B3AEECA8A4EEABA7EAB2ADE7A5A1EEA7A2F0ABA6F2A9A5EAA6A1F0B2ADF7
+ BAB6F2A7A3EFAAA5F2B0ABF2ACA8F4ADA9EDB3AEE6ADA9EBAAA6F0B7B2EFAAA6
+ F4B1ACF4BAB6F3B2AEECAEAAF0B3ADEEADAAF0B5B1F0B2ACECA6A3F2B4B1F0B7
+ B3F0B4AEF6B9B5F4B7B3EBADAAEAB0ACF0B9B5EFBEBAF0C3C0EFBEBAEFBBB7EF
+ B8B5F0B9B6F0BBB8ECBBB8E9B8B6E7B7B4EEBAB7F2BAB7F3BDB9F0BDB9ECBAB6
+ ECBDB9E9BBB8F0C4C1F2C4C2EFC1BFECBDBAEFC0BDEFBEBDEDBEBBEFC2C0EBC0
+ BEEDC3C1EFC6C4ECC3C1EFC6C5EFC7C6E6C0BEE6C1BFEDC7C5EAC5C3E3BEBDE1
+ BDBAE5C2C0E6C3C2DEB9B7DAB6B5DEBAB8EECAC9EECBC9EAC7C6E0BEBBDEBAB9
+ E4C1C0E6C3C2E4C2C1D9B8B7DBBABAE0BFBEE0BFBFD8B9B8D8B8B8E5C6C5E6C9
+ C9E2C6C5E6CBCBEED5D5E5CCCBE0C5C4EACFCEECCFCFEFD4D2F3D7D5E6C9C7EA
+ CDCCF3D5D4EDCFCED7BBBAD5B8B7E1C5C3E1C4C2D6BAB8E0C4C2E5CAC7E9CCCB
+ E4C7C6DFC3C1D6BBB9DCC1BFE7CCCAE1C5C3DEC2C1E0C4C2E0C4C2DCC2C0DCC2
+ C0D6BBB9D6BBBADBC1C0EBD0CFEDD2D0DBC2C0E5CBCAEDD2D2EDD4D2EAD1D1E4
+ CCCCECD4D2EDD5D4E9D2D1E5CECDDBC4C2E4CDCCE9D0CFE0C9C7E3CAC9D9C1C0
+ DCC4C3D9C0BEDFC6C5DCC3C2D0B8B7E6CDCCE3CBC9DBC3C2E9D1CFD9C1C0D2BB
+ BAE7CFCEE9D1D0E9D2D1E6D0D0D8C2C1EBD5D4EED9D8EBD5D4E3CFCEE6D1D0DB
+ C7C6D0BDBBD7C2C2D7C3C4DFCDCCE4D1D0DAC9C7DCCAC9ECD9D8EFDCDCEBD8D9
+ E5D4D2DCCBCAE2D0CFE6D5D4ECDAD9EFDEDCF2E0E00000000000000000D1C0C0
+ CFBDBBCEBBBACFBDBBD7C3C1D2BEBBD0BBBAC9B3B2CBB5B4EBD5D2F7E0DFDBC6
+ C5CCB8B7CFBABAE7D5D4EAD7D6E3D0CFD2BFBED2BFBED5C1C0D4C0BFE2CECDEB
+ D6D6EDD8D8D5C1C0D6C1C1D6C3C2D5C2C1DAC6C6EBD8D7EBD7D7D2BFBED4C0BF
+ D6C2C2D9C4C3D7C4C3D8C4C3877B7A0000008E8282DCC9C9D6C2C1D7C3C2D8C3
+ C2D6C1C2D5BFC0D5C0C0E0CBCBE3CDCDDCC6C60000003E3838E6CFCEE9D2D1DA
+ C3C2D2BABAD4BDBBD5BDBDDBC3C2DAC2C1DBC5C4E4CCCCE1CAC93F3938000000
+ D7BFBEDAC2C1E1C7C7E5CCCBE4CBCB000000413A39D9C0BFD7BDBBD7BEBDD7BE
+ BBD7BDBBDCC2C1E2C9C7DEC3C2D7BDBDD7BBBAD8BBBADBBEBDD6B8B7D4B6B5D5
+ B6B5E4C5C4EACBCAE0C0BFE0BFBEEACAC9E9C6C5D6B5B3D5B4B2D7B5B4D6B4B3
+ DEBBBAEAC7C6EFCDCCEECDCBDEBBBAD8B8B6D9B9B8D8B7B6DBBAB9ECCAC7F2CE
+ CCECC7C5E1BDBAD7B3B1D7B3B2E6C2C0E5C1C0DBB8B6DCB9B7DBB6B4DBB6B4DB
+ B5B3DBB4B2D9B1AEDCB4B1EEC5C3EFC5C3DEB6B3DAB3B1DEB7B5F3CAC6E5B9B6
+ DEAEACDFB1ADE2B3B0E0B1AEDBACAADFAEACE1B0ADEAB6B4DFA9A6DFA8A5E5B0
+ ACEDB7B4E9B5B2EEBBB7F0BBB8E3ADAADEA6A3DFA6A3E0A7A4E6AEAAEFB9B6EE
+ BBB8E2ACA9E0A8A5E5ABA7F0B7B3E6B0ACE0A9A5E2A7A4E1A5A1EDB0ABF4B5B0
+ E7A49FE1A39EE1A8A3E09D98E39E99E7A39EE19A96E09D98E0A39EE9ABA7E9A1
+ 9CE19D99E1A29CE9A7A2F3ADA9E6ACA8E3ACA7E4A39FE3AAA6E6A5A1EFACA8F3
+ BDB7E7AAA6E3A6A2E4AAA5E4A7A2E7ABA7EBB1ACE6A49EE2A39FE1AAA6E2A7A4
+ EDB2ADE7ACA8E1A5A2E1A6A2E4ACA8ECB7B4EDBEBAEBBBB8EDBAB7EEBAB7EEB8
+ B5E6B1ADE1B0ACE0B0ADDFAEACE0B0ACE4B1ADEEB8B5E1ACA9DEAAA7DCABA9E1
+ B2AEEABEBBF2C6C3E4B8B7DFB3B1E2B5B3EDBEBDEEBFBDEEC0BEE7BBB9ECC2C1
+ EFC5C3EEC5C3EEC6C4E5BEBDDCB7B5DFB8B7E4C0BEE0B9B8DBB8B6DBB9B7E4C1
+ C0ECC9C6E0BEBBD9B7B6DCB9B8EBC9C6EBC9C6E4C1C0D8B5B4D8B5B4DFBBBAED
+ CBCAECCBCADBBBBAE0C0BFEAC9C9EACAC9DAB9B9D8B9B8E1C1C1E0C1C1D9BBBB
+ DBC0C0EED2D1E2C9C7DBC1C1D7BEBDD8BEBDDCC1C0D9BFBED2B6B5D8BAB9EFD2
+ D0E6CBC9D5B8B7D4B8B6D6B9B9D5B9B8DAC0BFE3C9C6E5CAC9D6BBB9D2B6B5D4
+ B8B6D1B7B5D2B7B5DEC3C1E3C9C6D9BEBDD1B7B5D5B9B8E2C6C5D6BBB9D2B8B6
+ D2B9B6D5B9B7EBD0CFF2D8D6E0C5C4D1B7B6D7BEBBECD4D1E1C7C7D5BDBBD6BF
+ BDDCC5C3D6BEBDD2BBB9D5BEBDE9D1D0ECD4D2DCC4C3CFB9B7CFB7B7DFC6C5EC
+ D2D0EFD7D6EED6D4E6CECDE7CFCEE0C6C5D0B7B6CFB7B6CDB5B4CEB6B5DCC6C4
+ DCC5C4D0BBBACFBAB9CFB9B8CFBAB9E2CCCCEDD8D7ECD7D6E7D2D1D4BFBED0BD
+ BBD2BFBED0BFBEE0CECDF0DEDEE7D5D5DCCACAE9D7D6EBD8D8E7D6D5DBCAC9D0
+ BFBFD0BFBED0BEBED2C0C0DAC7C7E0CECD0000000000000000DBCAC9D1BEBECD
+ B9B8E6D2D1F6E0DEE9D4D1CCB6B4C9B4B2D5C0BEECD6D5F0DAD8CEBAB9CEBAB9
+ CFBBBBDFCCCBE7D6D4D6C2C1D0BEBDE6D2D1F2DCDCE4D1D0E2CFCEE6D2D1D7C3
+ C2D0BDBBE0CBCBEBD6D6D7C4C3D4C1BFECD8D7EDD9D9D2C0BED4BFBFE5D1D0E7
+ D4D2DAC5C5D4C0C0877A79000000918484D6C3C3D5C1C0E0CBCBE4CFCFD5C1C0
+ D5C0C0D7C3C2E3CECEE5CFCFD5BFBE000000413B3AE6D0CFDBC4C3D2BAB9D6BF
+ BEEAD2D1DBC4C4D5BDBBD8C1C0D6C0BFD6BFBED6BEBD3E3737000000DEC5C4E0
+ C6C6DCC3C1E2C9C7E3CACA0000003E3737D5BBB9D8BEBDE3C9C7DBC1C0D6BBBA
+ DABFBEE4CAC9DABFBED6B9B9DEC0BFE2C5C4DEC0BFD4B7B5D4B5B4DEBFBEEECE
+ CDEECECCE4C4C3E4C3C2EECECCE1C0BFD4B3B2DBBAB8EFCDCCE0BFBED4B3B2E6
+ C5C3F0CFCDE9C6C5D7B7B5DEBEBDEECECDE1C0BED6B4B1DAB8B6EFCCC9EAC4C3
+ DBB6B4D6B3B0D7B4B2EBC7C6ECC7C6DCB9B7D9B4B2DEB8B6E6C0BFE1B9B6DAB2
+ B1D9B1AEE5BBB9F0C7C5EDC6C4D9B3B1DAB5B2E7BFBDEDC2BFDAADAADAACAAEB
+ BDBAECBFBBDCADAADBABA9E7B6B4E9B5B2E9B4B1DBA7A4DEA8A6F0B9B7F0BDB9
+ EBB8B5EDB9B6E9B4B1DCA7A4DEA6A4EBB4B0ECB5B2E9B3B0EDB9B6E7B5B2DEA9
+ A6E2ABA7EBB1ADEDB5B2DFA9A5EAB1ADF4B9B5E3A8A4DFA39EF3B3B0E6A49FDE
+ A39EEFB3B0F5B1ACEDAAA5EFABA7E6A19CDF9E9AE1A6A2F4B6B2F0A9A5E1A19B
+ E1A29DF3B1ACF3B1ABE3AAA5E3ADA9E9AAA6E4AAA6E2A49FE9A6A1F3B9B5E3A8
+ A4E3A7A2EFB4B1EFB4B0E7ACA8E7B1ABE6A7A3E19F9BE1A8A4F2B8B4F2B6B4E7
+ ADA9E0A6A3E0A5A2E3AAA7EFB9B5EFBDB9EEC2BFEDBEBAEFBBB8EBB6B3E0AAA7
+ E0ACAAE6B5B2E6B6B3E4B6B2E3B2B0F0BDB9E9B3B0DCA9A7DEABA8EDBDBAECBF
+ BBE4B9B7DFB5B3DFB4B2DEB3B1ECC0BEF0C4C1F0C3C1E7BAB8ECC1C0EEC4C2EE
+ C6C4ECC3C2DBB4B3DBB6B5E4BEBDEBC6C5E3BEBBDBB8B6DEBAB9ECC9C7ECCAC7
+ E0BEBBD9B7B6E0BDBBECCAC9EFCDCBE6C4C2D8B5B4D8B5B4E1C0C0EDCDCBEECE
+ CDE7C7C5E1C0C0EBCBCAE9C9C7D9B9B8D8B9B9E4C4C4E9CAC9DBBDBBD7BABAE6
+ CBC9DEC3C2D7BDBDD7BBBAE7CDCCE9D0CED4BAB9D2B8B7E6CBCAF2D5D4D6BAB8
+ D4B8B6DFC4C2E7CDCCD5B9B8D5BAB9EBCFCDE9CDCCD2B7B5D6BABAEBCFCDD6BA
+ B8D1B5B3E4C9C6E6CCCBE0C5C3D1B7B5D6BDBBDCC3C2D0B7B5D8BEBDDCC2C1DA
+ C0BDE1C6C6EFD6D4D4BBB9D1B8B6E6CECCEBD2D0D5BDBBD4BBBAE1C9C7E7D0CF
+ D2BBB9D2BBB9DFC9C6ECD5D2EBD4D1D5BEBDCFB9B8CFB7B6DBC4C2ECD5D2F3DA
+ D9F3DAD8F0D8D7F5DCDAF2D9D7DAC3C1C9B2B1CBB4B2D1BAB9DCC5C4CFB7B5CE
+ B8B7E3CDCCE0CBC9D0BBBACFB8B8EED9D8EDD9D7D2BEBDCDB8B7DEC7C7E9D5D4
+ D0BEBDCEBBBBE0CDCCE4D1D1DAC6C6E9D6D5EAD8D8E9D7D6D2C0C0CEBDBDDAC9
+ C7D9C7C6CDBBBADAC7C7F3E1E10000000000000000EDDAD9D4C1C0CAB7B5F2DC
+ DBF7E1E0F2DCDBCAB4B3C9B4B2DCC7C6E7D1D0EED8D7CFBBB9D2C0BFD1BFBFDA
+ C7C6E6D4D2DAC7C6D2BFBEE5D1D0ECD9D8F2DEDCE9D6D5E2CECDD1BDBDD2BEBE
+ EDD9D8EFDBDADAC7C5D2C0BFE2CECDECD8D8D5C0BFD5C1C0EBD7D7EAD5D6E3CE
+ CED6C3C2877A79000000928585D5C0BFD6C3C2E4D0CFE4CFCFD7C3C3D5C0C0DB
+ C6C6E5CFCFE7D2D1D4BEBD000000443D3DEAD4D2D5BEBED2B9B9E5CDCDEDD6D5
+ EBD2D4D5BBBBD8C0C0D5BEBBD5BDBBD6BFBE3F3938000000E5CCCBE2CAC9D9C1
+ C0DEC5C4E1C7C60000003E3737D6BBBADFC4C3E6CCCBE5CACAD6B9B8D6BABAE6
+ CBCA8A7978877474E6CBC9E6C9C7E7CBCAD5B6B5D4B6B5E1C2C1EDCCCCEBCBCA
+ E4C4C3E6C6C5EECDCBD5B6B4D5B5B3EAC9C7EECDCCEECDCBD5B5B3DEBEBDF0D0
+ CFDEBEBDD7B7B6E0C1BFEFCECCEAC7C6D6B3B1D7B4B2EAC5C3EAC5C3D9B5B4D7
+ B4B2D8B5B4E7C4C3ECC9C6DEB9B7D8B3B1E0B8B6E5BEBDE7C0BFDAB2B0D8B1AD
+ ECC4C2F2CCC9EBC5C3D9B3B1E1B7B5F2C7C4F0C3C1D9ACAADBAEACF3C5C3ECBF
+ BBE0B2AEDAABA8F2C0BDEAB6B4E9B3B1DAA6A3DFABA8EFBDB9F0BEBBEAB8B5EA
+ B8B4E4B1ACDCA7A4DFA8A5E5B0ACE4B1ACEDBAB7EFBEB9E5B2AEDEA9A5EDB5B1
+ EFB7B4E2ADA9DEA8A5EFB7B4F4BAB6EEB3AEDFA39EE7A8A4EBABA7E0A9A4EEB2
+ ADF5B3ADF4B3AEF6B4B0F4B1ACE2A39EE1A7A3F4B7B3F3ACA9E1A19CEDAEAAF4
+ B4B0EBA9A5E2A8A5E6B3AEEFB2ACF0B7B3E1A6A2E9A7A3F3B9B5E6AEAAE5A9A5
+ F2B8B4F3B7B4F2B6B1F0B7B4ECB2ADE09F9BE5A9A6F4BEBAF2B9B5E3AAA7DFA7
+ A4E0A7A4E1A7A4F0B8B5F2BEBAF0C1BEF0C4C1F0C1BEEAB7B5DFACA9E0ABA9EB
+ B9B6EABAB8ECBEB9EDBFBBF2C2BFEEBBBADCA9A6E1ADABF0BEBBEEBFBBE1B4B1
+ DFB5B3E0B7B5DEB5B3E4BAB8F2C6C4F0C5C2ECC0BEECC0BEF0C5C4F2C6C4EBC3
+ C1DBB3B1DBB6B4E9C2C1E9C3C2EAC5C3DBB8B6E1BEBBEDCBCAEECBCAE0BEBDD9
+ B7B7E0BEBBE2C0BFECCAC9DBB9B8D8B6B5D9B7B7DCBBBAEAC9C7EECECDE7C9C7
+ DFBEBDE6C6C5E5C5C4D9BAB9D8B9B9EBCCCBEBCCCBE0C1C1D7BAB9E2C5C5DEC1
+ C0D7BBBBDEC1C0EED4D2EDD4D2D9C1C0D2BAB9F2D8D6F2D7D5D1B8B6D6BAB9E7
+ CDCCEBD0CFD7BDBBD4B9B7E5CBC9E5CACAD2B7B6D9BEBDEACECDE5CBC9D0B5B3
+ DBC0BEE7CCCADBC0BED0B7B6DCC2C1D9BFBDD2B8B7DAC0BEDCC3C2DCC3C2E7CE
+ CDEDD2D1D4BBB8D2B9B8E7CFCEE9D0CFD2BAB8D5BDBADBC3C1DFC7C6D4BDBAD2
+ BBB9D8C1BFE5CFCDE6CFCED2BAB9D0B9B8CFB7B6D4BBBAECD4D1EED7D6F3DBD9
+ EFD8D6F7DFDCF7DFDBE5CECCC9B2B0D1B9B8EBD2D1F0D8D7CBB5B3D0BBBAECD6
+ D7EAD5D2D6C1C0CEB8B7E7D2D1EAD5D5CDB8B7CDB8B8E9D2D1F2DEDCD7C4C4CE
+ BBBBD7C4C4EAD7D7E7D6D4F0DEDCEFDEDCE2D0CFCEBDBDD2C0C0ECD9D9F2DFDF
+ D0BFBECFBEBDE1CECE0000000000000000E0CCCBD0BBBAC9B4B3ECD7D5F5DFDE
+ F2DCDBCCB6B4CAB4B4EDD8D6EFDAD9E6D1CFD1BEBEE4D1D0D8C5C4DAC7C6ECD8
+ D8ECD8D8D7C3C2D6C2C1E1CDCCEDDAD8EBD7D7E2CDCDD1BDBDD4BFBFF2DEDBF0
+ DCDBE2CFCFD2C0BFDFCBCA5D55559F918ED2BFBEEAD5D6E9D5D5E3CFCEDAC6C5
+ 867A7A000000938585D4BFBFD8C4C4E5D0D1E1CDCCD8C4C4282323DECAC9E6D1
+ D0E7D2D1D4BFBD000000423C3CE3CCCBD4BDBBD2BAB9E2CACAEBD2D4E7D0D0D5
+ BDBBD5BEBDD5BBBBD5BDBBE3CBCB433C3C000000E7CDCDE5CCCBE2C9C9E4CBCB
+ E4CBCA0000003E3737D6BBBAE5CBC9E7CBCAE2C6C4D5B9B8D6B9B8E6CAC98A79
+ 78877474E3C6C5E9CCCBEACDCCD6B7B6D5B7B6DEBFBEECCCCCEACCCBDCBEBDDC
+ BEBDE9C9C7D6B7B6D6B7B5DBBDBBE2C2C1DFC0BFD6B7B5D8B9B7EBCCCBDFC1BF
+ D7B8B6E9C9C6F2CFCEF0CDCCD6B3B1DAB6B4EAC5C4E6C4C2D8B6B4DBB9B6E0BD
+ B9E0BAB8ECC6C5E2BBB9D7B1AEE5BEBBE4BBB9EAC2C0D9B2B0D8B2B0E9C3C1F0
+ CDCBE7C3C1D9B1AEDFB4B2EFC3C1EFC3C1D9AEABDBB0ACEDC1BEE9BAB8E1B2AE
+ D9A8A6ECB8B6E4B1ADECB8B5D9A6A4DEABA8F0C0BBF2C1BEF0BDBAF0BBB9EAB5
+ B2E0A9A7DEA8A5DEA9A6E3B0ACF4C3C0F4C1BEEBB7B4DCA7A4E7B1ACEDB8B5E0
+ ACA8DFA9A6EFB7B4F0B6B3F2B7B4DEA49FE4A6A2ECB0ABE2ADA9E0A29EE5A5A1
+ E4A49FF2AEABEFAEAAE2A6A2DFA6A3EEB1ACE5A29DE1A39EF4B7B3F0B2ADE3A4
+ 9FE3ABA7F0BFBAEEB2AEF4BAB7E4AAA6E4A59FF2B6B3EEB7B3E4A9A6E6ACA8EB
+ B3AEEFB5B1EDB5B1EFB8B4E0A19DE3A6A2F3BDB8F2BAB7E1A8A5E0A8A5E3ABA8
+ E0A7A4E4ACA8F0BAB8ECBAB7EDC1BEEEC1BEE7B7B5DFADAADFABA8E6B3B1E5B4
+ B2E3B4B2E3B5B3EFC1BFEEBFBBDCABA9E0ADABF0BFBBF0C0BEDFB2B0E2B6B4E5
+ BDBBE1B8B7DEB6B4EAC0BEEFC5C4EBC0BEEBC1BFF0C4C2F3C7C5F2C7C5DBB4B2
+ DCB7B5EFCAC7EEC9C6EFCAC9DAB7B6DEBAB9E4C3C1EAC7C6DEBAB9D8B6B5DCBA
+ BADBB9B9E6C5C3D9B7B6DEBBBAE4C3C3DBBABAE6C6C5EECECDECCCCCE4C5C4EB
+ CCCBEDCDCCD9BABAD8B9B9EECFCEEECFCEE5C7C7D7B9B9E0C2C1E0C2C1D7B9B9
+ DCBFBEEDD1D0EBD0CFDEC1C1D2B9B8E6CCCBF0D7D5D2B9B8D7BDBBE4CBC9E7CD
+ CCD8BEBDD4B9B7E3C7C6E5CBCAD2B7B6D5B9B8E4C9C7E6CCCBD2B8B6D6BBB9E1
+ C6C5D5BAB9D6BDBAE6CDCBE1C7C5D7BEBDD5BDBADBC3C1DEC4C3E7CFCFE5CCCC
+ D5BDBBD4BDBADEC6C4DCC4C3D4BDBBD7C0BFE4CDCCDEC6C5D7C0BFD4BEBDDAC4
+ C3E4CECCDEC7C6D1BBBADCC6C5D9C2C1D1BAB9DAC4C2EBD5D4EAD2D1E2CBCAEF
+ D9D7F3DCDBE2CCCBCDB7B6D9C3C1EDD7D7EFD9D8CDB7B7D0BDBBE7D2D2E2CECD
+ D5C1C0CFBAB8D7C3C2E9D5D4CEBAB9CFBDBBEED9D9F2DEDCE5D2D1CFBEBEDECC
+ CBEEDCDCE7D6D5EEDCDCEDDBDAD2C2C2CFBFBEDFCECEE3D1D0E6D6D5DECCCCCF
+ BFBED6C5C50000000000000000D2BFBECDB8B8C7B4B3E5D0CEF2DCDBF0DAD9CA
+ B5B4CAB5B4E1CCCBECD8D7D0BDBAD1BEBDE9D6D5E1CDCDD2C0BFE5D2D1E4D1D0
+ D2BFBED9C6C5D9C5C5D7C2C2E4D0CFDBC7C6D0BDBBD4BFBFEDD9D8EFDBDAD8C4
+ C4D2BFBFDAC9C7AE9E9E121010554D4C9083828D81818A7E7D877B7B554D4D00
+ 0000574F4E857979877A7A9285858E82823E3939000000C1AEADE7D2D1E7D2D1
+ 554C4C0000000000005A504FA18E8DD1B9B8D5BEBDE6CECDDFC7C5D2BBBAD5BD
+ BBD4BBBAD5BBBB8B7D7C0000000000003D3736B9A5A4DCC3C3CAB4B25D535200
+ 0000282323877676907E7E94838192807F867473877574433B3B131010877474
+ E5C9C7E9CCCBEBCDCCD7B8B7D6B8B7DFC2C1EDCECDEBCDCCDEBFBFDABDBBE1C3
+ C2D9BBBAD7BAB9DBBDBBDCBFBDDBBEBDD7B9B7DABDBBEBCDCBDBBDBAD7B7B5EC
+ CBC9EFCECBEAC6C5D6B3B1D9B7B6E9C5C4D9B7B5D7B5B3E5C2C0E6C2C0D8B3B1
+ E1BAB8E4BDBBD7B0ACE3BDB9E9C1BFE7C0BED6B1ADD7B2B1EAC6C3EBC6C3DFB7
+ B5D9B0ACDBB0AEF2C6C4F3C6C4D9ADABD9ADABE6B9B7E6B9B6DCADAAD9A7A5EA
+ B7B4EBB7B5E2B0ADD9A8A5E0B0ACF5C5C1F5C3C0F3C1BDF4C0BDEEB9B5DEA9A6
+ DEA9A6E2B0ACE4B4B1E5B5B2F3C1BDE3B0ACDEA8A5E7B3AEE9B6B3E0ADAADFA9
+ A6EDB6B3EEB5B2E9B1ACDEA4A1E5A7A3F2B8B5E0AAA6E4A6A2EDADA9DFA19CED
+ ADA9F6B6B2F3B6B4DFA8A4E1A5A1E09D9AE3A6A2F3B7B3F3B5B1E1A29EE3AAA6
+ E9B8B4E6ACA9EFB7B3E3ACA8E2A5A1E6ACA8E6B2AEE3AAA7E6ADA9E6B0ACE5AC
+ A9EFB6B3EAB4B0DFA4A1E2A4A1F2B9B6EFBAB6DFA9A6E4ADA9ECB5B2DFA7A5DF
+ A7A4EDB8B4ECB8B5EEBFBBEFC4C1ECBEBADFADABDFACA9E9B6B3E4B3B0DEAEAC
+ DEB1ADECBFBDEABEBBDCAEABDFAEACEEBDBAE1B2AEDEB0ADE5B9B7E6BBB9E1B9
+ B8DEB6B4E0B8B5EFC7C5EBC3C1EDC3C1EEC3C1EFC4C2EBC1BFDAB2B0DBB4B3ED
+ C6C5EEC9C7E7C2C1DAB6B5DEB9B8EAC6C5F0CECBE0BFBDD8B6B5E6C5C3E3C2C1
+ DBBAB9D8B7B5E9C9C7EDCDCCD8B9B9DBBBBBEDCDCCEDCECDE2C3C2E7C9C6EBCC
+ CBD9BAB9D8BAB9EDCFCEEECFCFDFC1BFD8BBBAE4C6C5E5C9C7D7B9B9D7BAB9E9
+ CBCAECCFCED8BEBDD5BAB9E2C5C4EED4D2D2B9B8D6BDBBE6CDCDEBD1D0D6BDBB
+ D2B9B7E7CDCBE7CDCCD2B7B6D6BBBAE7CCCCEAD0CEDBC1BFD2B9B8D9BFBED4BA
+ B8E2C7C6E9CECEE4CBCAD2B9B8D5BDBAE0C7C6DAC2C2E1C9C7E7D0CFD5BFBDD5
+ BEBDE4CDCCEDD6D5D5BEBDD8C3C1E6D0CEE5CFCDD6C0BFD5BFBDE5CFCFE7D2D1
+ D5C0BED1BBBBEBD4D2E4CDCDD0BAB9D5BFBFECD8D6EFDAD9ECD6D6EFDAD9EFDA
+ DAE5D0D0CFBBBAD2BFBFDECACAE9D4D4CFBABAD0BEBBDFCBCBDBC7C7D5C1C1CF
+ BBBAE9D6D5EEDBDACEBBBBCFBDBDE9D6D5EEDCDBD5C2C2D0C0C0D8C6C6E9D7D7
+ E0CFCEE5D4D2E2D0D0D2C2C2D0C0C0D9C6C6E4D2D2E9D8D8DBCBCBCFC0C0D5C4
+ C50000000000000000CEB9B8CBB7B6C9B4B3D0BABAE2CCCBDEC7C6C9B4B2C9B4
+ B2D4C0BED8C3C2CEBBBAD1BEBDDFCDCBDCCACAD1BFBED7C4C4D5C2C2D0BEBDDA
+ C7C5D8C5C4D1BFBDE1CECDD6C2C1D0BDBBD4BFBFEFDBDAF2DEDCD4C0C0D2C0BE
+ DAC7C6DECAC92723228578769487869285848A7E7D857A798579798B7F7E8B7F
+ 7F877A7A8679798D81818D81818679796D6362716565EAD4D290818184757484
+ 7574928381938383AE9B9AD1B9B9D2BAB9DBC4C3D5BDBDD2BBBAE4CCCBD7C0BE
+ A18D8D87767690817F887979857574857574E0C6C59483839483839484848E7F
+ 7D877676877675907D7D897676867473907E7D948181877474B9A19FE6CAC9EB
+ CECEE3C6C6D6B8B7D7B9B8E1C3C2ECCECDEBCDCDE6C9C7E3C6C4E9CCCBE2C4C4
+ DBBFBEDEC1C0E1C3C3DCC0BFDBBFBDE9CAC9E5C6C4D6B6B5D6B5B4E9C6C4ECCA
+ C7DCBAB9D6B4B2D8B7B5D9B9B7D7B5B3D7B4B2E7C3C2E7C3C1D7B1B0DEB8B6EA
+ C3C1DAB3B2D8B2B0E6C0BEDAB5B3D5B0ADD6B3B1EBC6C3EDC5C4E0B6B3D8AEAB
+ D8ADABE9BFBDF2C6C4DBB0ADD9ADAAE0B4B2E7B8B6D9A9A7D8A7A5E6B4B2E9B7
+ B4D9AAA7D9AAA7DEAEABF4C3C0F4C3C0F0BEBAF3BFBDE7B4B0DBA8A5DAA8A5DC
+ ACA9DCADAADCACA9E1B0ABDFABA8DEA9A6E3B1ACE7B5B2E2AEABDFAAA7E0AAA7
+ E4ADA9E0A7A4DEA39FE4A9A5ECB6B3DFA7A4E5A7A4E7AAA6DC9E9AE4A49FF5B7
+ B3F3B8B4E0A9A6DEA19DDE9E9AE4A9A5EFB4B0EEB2ADE0A49FE1A9A6E2B3B0E1
+ AAA6E2AAA7E1ADA9E2A7A3EAADAAE7B5B1E3ACA9E6AEAAE3ADA9E1AAA6E7AEAB
+ E2ACA8DFA7A3E4A7A3ECB3AEE0ACA9DFAAA7E9B2AEF2BAB7DFA9A6DEA7A5ECB6
+ B2ECB8B4EFBFBBEDC1BEEFC4C1E3B4B1DEADAAE5B3B1E6B3B1DEADABDFB1B0EC
+ BFBDE2B6B3DCB1AEE1B2AEE7B7B4DCADAADEB0ADE5B8B7EFC4C2EAC0BEDEB6B4
+ DEB7B5E5BFBDEAC2C0EDC4C3ECC2C0E4BAB8DCB4B2DAB1AEDAB2B0E2BBB9E9C3
+ C1DCB8B7DAB6B5DAB8B7DFBBB9EAC6C5DAB8B7D8B6B5EAC9C9E0BFBED8B7B6D8
+ B7B6E1C1C1ECCCCBD8BAB9D9BAB9EBCCCBEBCDCCE5C6C5EBCDCCE9CBCAD8BABA
+ D8BAB9E2C5C4DEC1C0D7BABADBBFBEECCECEE6CBCADABDBBD6B9B8D8BBBADABD
+ BBD6B9B8D6B9B9E9CDCCEFD2D1D7BBBAD4BAB8D8BFBEE0C6C5D2B9B8D2B9B8DA
+ C1BFD6BBBBD2B8B7D5BBBAE6CCCBE7CDCCE0C5C4D1B8B7D2B8B7D4BAB9E2C9C7
+ E9CFCEE5CDCBD0B7B7D5BDBAD8BFBED2BAB8DAC2C1DFC7C5D4BDBDD5BEBDE7D1
+ D0EDD6D4D8C2C1D5BFBED8C2C1DBC4C4D5BEBDD5BFBDE1CBCAE3CDCCD2BDBBD0
+ BAB9E4CDCCDFCAC7D0BAB9D2BBBAE7D2D1EDD8D7EDD8D8EBD6D6DCC9C7D6C2C1
+ CFBBBAD0BBBADECAC9ECD7D7D6C2C1CFBDBBD4C0C0D4BFBFD0BEBBD5C2C1EEDB
+ DAE5D1D1CEBBBBCFBDBDE9D5D4EBD8D8D0BFBED0C0BFD5C3C3E5D4D2DECCCDE4
+ D2D2E6D6D6D2C2C2D0C0C0D2C2C2DAC9C7DCCCCCD1C1C1CFC0C0D7C6C6000000
+ 0000000000D4C1BFCEB9B8CEB9B8D0BAB9D1BDBAD5C0BFD1BBBACFBAB9D8C3C2
+ D9C4C3D2C0BFE0CCCBDFCCCBD7C3C3D4C1C0DECCCBD9C6C5D8C5C4D7C3C3D7C2
+ C2E0CCCCE9D5D5D7C4C3D4C0BFDAC5C5EDD9D8EDD9D8D7C3C2D5C1C1E2CECEDA
+ C6C6D7C2C1DFCAC9F0DBDAEED9D9DEC9C7D4C0BED5C1BFEBD6D5E4D0CFDCC7C6
+ DAC5C4DCC7C6DEC7C7DAC4C3D6C0BFDCC6C4E3CCCBDEC4C4D2BBB9D4BBBAE1CA
+ C7E1C7C7F0D8D7EAD2D0D7C0BFDAC3C1DBC3C3DFC6C5E6CECDDEC6C4DFC6C5D5
+ BDBBD6BEBDD6BEBDD7BFBEE0C5C5E6CCCBE6CDCCE6CDCBEAD0CFE9CECED9BFBF
+ D7BBBAD9BEBDDCC0BFDBBFBEEBCECCEACCCBD6B8B7D5B7B6E4C7C6E7CBCADEC0
+ BFD8BBBBDBBFBEE7CAC9EBCECDEACDCCE7CBCAE7CCCBEACDCCE6CBCADFC3C2DF
+ C3C3E0C4C3E1C3C2E9CAC7EBCCCBE0C0BED8B7B6D9B8B7EAC9C6E9C9C6DCBDBA
+ D9B9B6E0C0BEDEBBBAD8B5B4E1BEBBEAC5C3EBC6C4DAB5B3E4BEBBECC6C4EAC3
+ C1DCB7B5E2BDBADFB9B8D8B5B3E0BAB7EEC5C4E6BBB9DAB2B0D8AEACD9B0ADDF
+ B4B2EEC3C2E1B7B4DFB3B1E1B3B1E3B5B2E0B0ADDAABA8EBBAB8EBBBB9DCADAB
+ DAADAAE2B2B0EFBFBDEFBEBBE5B4B1EFBDBAEAB7B4E1AEACDEADAADFB1ACDFB0
+ ACE5B6B3EEBDB8E0ACA9DFACA8EAB8B5ECBAB7E7B4B1E3ADAAE4ADABE4AEABE1
+ A9A6E0A6A2F0B7B3F3C0BBE6ADAAEBAEAAE9ACA8E1A4A1F3B4B0F5B9B5F2B9B6
+ E3ADAADCA19CDE9E9BE9AEAAEBB2ADEBB1ACE0A5A1E2ABA8EDBFBAEBB4B0EFB7
+ B4E5B2AEE2A8A4EDB2ADEFBBB8E9B4B1E9B1ADE5AEABEBB5B2EDB5B2EAB4B0E2
+ ADAAECB3B0ECB1ADE2ADA9E2AEABE9B4B0EFBAB7E4AEABE0ABA7EDB7B4ECB8B4
+ EDBAB8ECBEB9ECC2BFEDC1BFE4B6B4E7B7B4E5B4B1E2B1ADEABAB8F0C3C0EDC2
+ BFE2B7B5F0C4C1EBBEBBE0B1AEDFB1AEE4B7B5EFC2C0E9BDBBDFB5B3DFB8B6E5
+ BFBDEEC7C5EFC9C6EFC7C5ECC3C1E1B8B7DFB5B3DFB6B4E3BBB9EBC4C2E4C0BF
+ DEBAB8E1BFBDDFBBB9E2BFBEDCBAB9DFBEBDEAC7C6DFBEBDD9B9B8DCBEBBDEBF
+ BDE9CBCADCBEBDDFC0BFEECFCEEDCFCEEBCDCCEED0CFEDCFCED8BBBAD8BABAE7
+ CBCAE5C7C6D8BBBAD8BBBAEACECDE7CBCAE6CBCADABEBDD9BDBBDCC0BFDBC0BF
+ DBBEBEECD0CFEFD2D0ECD0CFD9BEBDDCC1C1DFC4C2D5BBBAD6BDBBDCC3C2D8BF
+ BED4BBB9D6BDBADCC3C2E4CBC9E4CCCAD2B9B8D1B7B7D6BDBAE2C7C7E9D0CEE9
+ CFCFDAC1BFD4BBB9D6BDBDD6BFBDE1C9C7E4CDCCDFC7C6D9C3C2E6CFCEE3CCCC
+ DFC9C9D7C1C0D7C1C0D8C3C1D6C1C0D6C1BFD9C3C3DBC4C3D4BEBBD5C0BFE5CF
+ CEDBC4C3D1BBBAD5C0C0E1CCCBE3CECDE7D4D2DECAC9D5C1C0D7C3C2D4C0C0D7
+ C3C1E2CCCCF4E0E0F3E0DFE3D0CED9C6C5D8C5C5DAC7C5EBD7D7EEDBDBE3D0D0
+ D1BFBFD4C0BFEEDBD9EDDAD9D5C2C2D2C1C1E6D6D4EBDADAE2D1D1E6D6D6E9D8
+ D9D4C4C5D0C0C0DECDCDEBD9D9EEDCDCDECDCDCFC0C0DFCECE00000000000000
+ 00E4D0CEE4D0CEF3E0DFECD7D5E4CECDF3DEDBF0DBD9EBD6D4EBD7D6EFDBDAEF
+ DBDAEEDAD9E9D6D5E6D2D2EBD7D7EDDAD9EAD6D6ECD8D8E2CFCEE5D0D0F0DCDB
+ E4D0D0DFCBCAEAD6D5E7D4D2ECD8D7F0DCDBE1CCCCDECACAE1CCCCE1CCCBEAD5
+ D4EFDBDAECD7D7ECD8D6EBD5D5EAD4D4E9D4D2EBD6D5E5D0CFDEC9C7E9D4D2E7
+ D2D1E7D2D1EAD4D2EAD2D1E5CECDE4CDCBECD2D1DCC4C3E4CBCAEED7D5E1C7C7
+ EBD1D0EFD8D7E7D0CFEDD5D4EDD5D4EDD5D5E9D1D0DCC5C3E0C7C6E0C7C5E7CE
+ CDE2CAC9E5CCCBE2C9C7DCC2C0D9C0BFE3CAC7E7CECDE4CBC9DFC5C4E2C6C4E5
+ C9C7E7CCCAE7CBCAEBCECCEDCECFE7CBCAE6CAC9E5C9C7E7CCCBE7CDCCE3C7C6
+ DCC0C0DFC3C2E9CCCBE9CECDE2C6C6E7CCCBE9CDCCE3C7C7DBC0BFE5CAC9E5C9
+ C7E2C4C2EACBC9ECCCCAE4C4C3E2C1C0E9C9C6ECCCCAECCCCAE4C5C3E7C6C5E9
+ C7C6E9C5C3E3C0BEEAC5C3EAC4C3EAC4C2E9C3C1EAC4C2ECC7C4ECC9C5E7C4C1
+ EFCCCAF4D0CDEBC5C2F3CBC9F3CAC7F0C7C5EAC0BEE2B9B7DFB5B3EBC1BFEFC5
+ C3E0B5B3EBBEBBECBEBAEEBFBBF2C2C0EABAB8F2C2C0F0C1BFEBBEBAEEC0BEEE
+ C0BDF0C0BEEEBDBAEEBDB9F0BFBBF0C0BDF4C3C1F4C5C2EEC1BEECBDB9F5C4C1
+ F4C2BEEAB7B5EDBBB8F2C0BEEBB9B6ECB8B6EDB9B6F0BAB7F0BBB7EBB3B0EEB3
+ B0F4BEB9F4C1BDF0B7B4F5B8B5F3B7B3EDB1ADF6B8B4F7BDB8F4BDB8EDB9B5DC
+ A19CDE9F9CF2B7B5EFB7B3EEB5B1E1A6A3E1ABA8F2C4C0EAB5B2ECB5B2E3B1AD
+ E2AAA7EDB3AEEEBAB7EFBBB8EDB6B3ECB6B3EFBAB7F2BAB6F4BEBAF2BFBAF0B8
+ B5ECB1ADEDB6B4F2C0BDEDBAB7F0BBB9F0BBB9EDBAB6F0BAB8EFBBB8ECB9B6E7
+ B8B5E5B9B6EAC1BEEBBFBBEBBDBAECBDB9ECBBB8E4B4B2EFC0BEECC1BEEBBFBD
+ F3C7C5F3C6C4EFC2C0E4B7B4E1B4B2E7BBB9E9BDBAE1B7B5E2BAB8EDC6C4EEC9
+ C6E6C0BFE2BBB9EBC4C3EAC2C1E7BFBDE3BAB8E5BEBDEFC7C6EFC9C7EDC7C6EC
+ CAC7EBC7C6EDCBCAEAC9C7EBCAC9E9C7C6DFBEBDEACAC9EBCBCADFC1BFECCDCD
+ E9CBCBE7C9C7EED0CFEBCDCCE9CCCBEDD0CEEDCFCED8BBBAD7BBBAE9CCCBE5C7
+ C6DABDBBD7BBBAE1C5C4E9CCCCEDD0CFEDCFCEEACDCDECCFCEECCFCFE9CDCCE4
+ C7C7ECCDCDF0D2D1E7CAC9E2C5C4E9CCCBE7CCCAE5CBCBE7CDCCEBD1D0EAD1D0
+ E2C9C7E4CCCBE7CECDE6CDCCD4BAB9D1B8B8DBC2C1E9CECDEDD2D2E9D0CFEFD6
+ D5EBD2D1E9D1CFE7CFCEE2CAC9E1C7C7ECD4D4EBD2D2EAD2D2E6CFCEE6D0D0E2
+ CCCBDEC7C6E2CBCAE4CFCDE2CCCCD6C1C0E2CCCCE6D0CFE6D1D0E9D1D0E4CECE
+ E0CAC9E6D2D1E5D0D0E9D5D2E7D4D2EAD5D2E6D2D1E5D1D0E9D4D4E2CDCDEDD9
+ D8F4E0DFF4E1E0EFDBDBEAD7D6E4D0CFE9D5D4E6D4D2ECD8D8EDDADAE6D4D2E6
+ D4D2EFDCDBEFDEDCE6D6D5E0CECEECDBDBEBDADBE5D5D4E9DADAEBDBDBDBCCCC
+ D1C0C0E3D1D1EFDFDEF0DFDEDBCBCACFC0C0E5D6D50000000000000000F0DCDB
+ EFDCDBF3E0DFF2DFDEF3DFDCF7E1E0F4DFDEEED9D9EDDAD9EFDBDAEBD7D5EFDB
+ DAEEDBDAECD9D8EEDBDAEDDAD9EFDCDBF2DFDEEAD7D6F2DEDCF2DFDEECD9D8F0
+ DCDBF2DFDEF0DCDBF2DEDCF2DFDEEBD7D6ECD8D7ECD8D7EAD5D4F2DCDBF2DCDB
+ EBD6D6E9D2D1EDD7D6EED9D8EAD5D4EDD7D6ECD5D5DEC7C6E6D0CEEED8D6EFD8
+ D6EDD5D4EFD7D6ECD5D4EAD2D1E6CECDD8C0BFEDD4D4F3DAD9E6CECDE6CECCED
+ D5D4DCC6C4E7D0CEECD2D4EBD2D4E9D1D0DEC5C4E1C9C7E7CECDECD4D2EDD4D2
+ EDD4D1EAD0D0E7CDCCE4CACAECD0D1E9CECEE6CCCBE4CAC9E1C5C4E5C9C9E5C9
+ C7E4C6C5EBCECCE7CBC9E7CAC9ECCFCFE4C9C7E7CCCBE9CDCCE7CCCBE4C9C7E4
+ C9C7E9CCCBE7CCCBE2C6C5E9CDCDE9CFCEDFC3C2D9BDBDE2C5C3E5C9C7DBBDBB
+ D9BBB9EACAC9E0C0BFDFBEBDEBCBC9ECCDCAECCDCBECCBC9EBCAC7E9C7C5E9C5
+ C4E5C2C1E7C4C3EDC9C7ECC7C5E9C3C2E5C0BFEBC6C4EECBCAEBC9C7EFCCCAF4
+ CECBECC4C2F3CAC7F3CAC7F3CAC9F2C9C6EEC4C3EAC1BEEBC3C1EFC5C2E7BBB9
+ E3B7B4ECBDBAF2C2BFEFC1BFE9BAB8F3C4C2F3C6C3EBBFBDF3C5C2F3C4C1F2C3
+ C0F0C0BEF0C0BDEABAB7EFC0BDF4C5C2F5C7C4F0C3C1EBBBB8F5C3C1F2C0BDEB
+ B9B6ECBDB9EEBFBBEEBDB9E9B5B2E7B4B1EBB6B3F2BBB8EDB4B1EBB2AEF2BFBA
+ F3BFBBEEB5B2F0B6B2EAB0ABE1A7A3F2B5B2F3B9B6E5AEABE0ACA8DB9F9BE2A6
+ A2F0B8B5EDB5B1EDB5B2E4AAA7E0AAA7E5B9B5E5B2AEE3ADAAE1B0ABE3ACA9EE
+ B3B0ECB8B4EFBDBAEEBAB6EEB9B6EEBBB8EFBAB8F4BEBAF3BFBDEEB9B6E5ACA9
+ E9B1AEEFBDB9EDBBB7EEBBB9EEBBB8EEBBB8EFBBBAECB9B6EDBBB8E9B8B5E3B5
+ B2E1B7B4EAC0BEEDC2BFEDC0BDECBDBADEADABE6B6B4E2B4B2DEB3B0EDC2BFF0
+ C6C4EEC3C1EFC3C1EDC0BEEFC3C1EFC4C2EDC2C0EBC2C0EFC7C6F2CCCAEFCAC7
+ E9C3C1F0CBC9F0CAC9F0CAC7E9C2C0EBC2C1F0C9C6EEC7C6EAC4C1F0CCCAEECB
+ C9EECDCBEFCECDF2CFCEEECECDEBCAC9F0D0CFEFCFCEE4C5C4EED0CEEED0CFEB
+ CCCCEDD0CEE3C6C5E2C5C4EDD0CFEDD0CFDABDBDD7BBBBEACCCCEACECDDBBFBE
+ D7BBBBE3C6C6ECCFCFECCFCEEDD1D0EDD1D0EACDCDE7CCCBE7CCCBE2C4C4EBCD
+ CCF0D0D0E1C2C1DCBFBEEBCDCCEBCECDEACECDE5CAC7EDD1D1EDD4D2EAD0CFEC
+ D4D1E6CECDDCC4C3D2BAB8D2BAB9DCC4C2E7CFCDECD2D2E1C9C6E6CECCEBD2D0
+ EED6D5F2DAD8EED7D6EDD5D5EFD9D8EDD8D6EDD6D4EAD2D2E9D2D1E6D0D0E5CF
+ CFE5CFCFE6D1CFE5D0CFDEC9C7E3CDCCE6D1D0E6D0CFE7D1D0E5CFCFE5D0CFE9
+ D5D2E5D1D1E7D4D2E5D0CFECD7D7EBD6D6E3CFCFE1CBCBD5C1C0D7C2C1EBD7D6
+ EEDAD9E7D2D2DCC9C9DECACAE9D6D5DECBC9E9D6D5EDDADAE4D1D1E0CDCDE7D7
+ D7EAD9D8E9D8D7E5D4D4EBD9D9E9D8D8E2D1D1E9DADAECDCDBE7D9D9D1C1C2D2
+ C3C3EFDEDEEFDFDFD1C1C1D0C0C0E6D6D60000000000000000ECD8D6EEDAD9F2
+ DFDCEAD6D5EAD6D4ECD7D5EED8D7ECD7D5EAD6D5E6D2D1E2CDCCE9D7D6E5D2D1
+ DFCCCBE7D4D4E6D2D2E5D1D1EFDBDBE7D4D2EBD7D6EEDBDAEBD7D6ECD8D8F2DE
+ DEEFDBDBEFDBDAEFDBDAE4D0CFECD9D7F0DBDBEBD6D5F2DBDAF3DCDBEDD8D7ED
+ D8D7E7D1D0F2DBDAEED9D8EFD9D8EDD7D6E2CAC9DEC6C5EFD7D6F0D8D6ECD2D1
+ EED5D5ECD4D1ECD5D2E5CECDDBC3C3DCC4C3EED7D5EDD4D4ECD4D1EDD6D4E2CC
+ CBECD4D4EAD1D1E5CDCDE7CFCEE5CDCCE4CBCBE7CFCEE7CECEEBD1D0EDD4D1EA
+ D0CFE1C7C5E3C9C7ECD0D0EDD2D0EBD0CFEACFCDEACFCEECCFCDE7CBCAEDCFCF
+ F3D5D4E7CAC9E2C5C4E1C4C3E1C5C3DFC3C2E5CAC9E9CDCDE6CAC9E3C9C7E9CE
+ CDEACFCEE4CAC9E9CECDEACFCEE9CCCBDBBFBEDFC1C0DCBEBDD8BAB9D8B9B7E4
+ C5C4DEBEBBD9BBB9E6C7C5EBCCCAEDCCCBEECDCBECCBC9ECCAC7ECC9C7E9C6C4
+ E1BEBBE9C4C3EAC5C4E6C2C0D9B6B4E3C1BFEBCAC7DEB9B7E7C2BFE9C2C0DEB5
+ B3ECC4C1EFC6C4F0C9C6F0C7C5EDC5C2E6BEBBE4BBB8ECC1BFEBC0BDE7BBB8EA
+ BDB9EABDB9E5B7B4DEB1AEEDC2C0ECC1BFDFB3B0EEC1BFF0C3C1EEBFBDEFC0BD
+ EFC0BDECBDBAECBEBBECC0BEF0C4C2E6B8B6E6B7B4F5C3C1F4C2BFF0BFBDEEC0
+ BDEABAB7EEBDB9EEBDB9ECB8B5EDB8B6EFB9B6EDB5B2E7B1ADEDBAB7EFBBB7E9
+ AEABEFB5B2E7AEABE3A8A6F2B8B5EBB4B1DBA7A4DBA7A3DBA19DE9ADA9EEB7B4
+ E9B2AEECB4B1EBB3B0E1ACA8E1B5B2E3B1ADE3ADAAE3B2ADE6B3B0EAB1ADEAB5
+ B2EEBEBAEDB9B7ECB8B4ECB9B6ECB8B4EDB8B5EFBDB8EDBBB8E7B1ADE3ABA8E6
+ B3B1E7B7B5EAB8B5E9B7B4ECB9B6EBB9B6EBB9B6EFBEBAEEBEBAEDBFBBEABFBB
+ EFC6C4EFC5C2F0C4C1EDC0BDE9BAB8F0C1BFE3B6B3DAB0ACDBB0ADE6BBB9EAC0
+ BEEFC3C1EEC3C1EFC4C2EEC3C1EBC0BEEDC2C1EEC5C3EEC6C5EDC6C5EDC7C6F0
+ CCCBEFCBCAF0CCCAEEC7C6EDC6C4F2CAC7F0C9C7EEC6C5F4CCCBF2CECCEFCDCC
+ EECDCCEFCFCDEAC9C7E1C0BFEECECDECCCCCDEBFBEECCDCCECCECDE7CBCAEBCE
+ CDE2C5C4DEC1BFEDD0CFEED0D0E5C7C7D7BBBBDBBFBEDEC1C0D7BBBBD9BEBDE7
+ CBCAEBCFCFEBCECDF0D2D1EFD2D1EBCECDEFD2D1F3D5D4EED0CEF0D2D1F4D5D2
+ F0D1CFE5C9C7ECCECDECCFCDECCFCEE2C6C4E9CECCEDD1D1E9CECCEAD1CFDAC2
+ C1D1BAB9D2BBBAD8C1C0E3CCCBE9D0CFEAD2D1DFC6C5E6CDCDEED7D6ECD2D2F3
+ D9D8EED6D5EAD2D1EDD7D6EDD7D5EDD6D4E9D4D1E6D0D0E7D2D1E5CFCEE3CDCD
+ E5D0CFE6D0CFE4CECDE5CFCEE6D0D0E3CDCCE0CAC9DCC6C5E2CDCDE2CECDE3CF
+ CFDFCACAD9C4C3E6D2D1E7D4D2E9D4D4E9D4D2DEC9C7D8C4C3EEDADAF0DBDBED
+ D9D9E4CFCFDAC6C6EBD7D7E9D6D6E9D6D5EAD7D7D9C5C5D7C4C4DBCBCBDECCCC
+ DECDCDE4D2D2E9D8D8E4D2D2DCCCCCE3D4D2E9D9DAECDCDCD8C9C7D2C2C2D5C6
+ C6D5C4C5CFBFBFDBCCCBF2E0DF0000000000000000D7C2C1DCCAC7E5D2D1EAD6
+ D5EFDAD9F2DCDBEFD9D8EFDBD9F0DBDAEEDAD9E6D1D0EBD8D7EBD7D8E7D5D4EB
+ D7D8ECD9D8E1CDCDE9D7D6E6D2D1EDDAD9EFDCDAEEDADAE6D2D2EDDAD9EFDADA
+ EFDADAECD9D7D6C2C1DECAC9E2CECDDAC5C4EAD4D1EDD6D5ECD6D5EDD6D6F3DB
+ D9F9E2E1F5DEDBF3DBDAF5DCDAEFD7D5E3CAC9EBD1D0EBD1D0E9D0CEEAD0CFEC
+ D5D1EFD6D5EDD5D4ECD2D1E6CFCEEDD5D5EAD2D1F2D8D8F0D9D8E9D1D0EDD5D5
+ EDD5D4EAD1D1E7D0CFDFC6C5E2CAC9E6CDCDE0C6C6E3CBCAE9CFCFEAD0CFDCC2
+ C1DBC1BFE4CACAE6CCCBE7CCCBE7CCCCE6CBCAE7CBC9E2C5C4ECCFCDF4D6D4EE
+ D1CFE4C9C7DEC2C2E5CAC9E9CDCCE7CCCBE2C7C6E0C5C4E5CAC9E9CECDEACFCE
+ E7CCCBEBCFCEEBCFCEE9CCCCE1C4C3E1C3C2DBBEBBD9BDBBDEC1BFE9CAC7DEC0
+ BFDABBB9E6C6C4E7C7C5EACAC7E5C5C2E7C5C4EBC9C6ECCAC6E7C4C2E1BEBDE1
+ BFBDEAC7C6EDCBC9EAC7C5EECECBEFCCCAEAC5C2ECC5C3ECC4C2E0B8B5EFC6C4
+ F0CAC7F3CBC9EFC7C5EAC2C0E6BFBBE7BEBBEBC0BEEBBFBDE7BBB9EBBEBBEEC1
+ C0EDC2BFDFB5B3EEC3C2ECC1BFE0B3B1EDC1BFF0C2BFEBBDBAEDBFBDEFC1BEEB
+ BDBAEABFBBECC0BEEFC3C1E6B9B6E9BAB8F3C2BFF4C3C0F4C5C2F0C1BEECBDBA
+ F2C0BDF0BFBBEDBBB8EEBBB8EFBAB6EDB5B2ECB7B4EFC0BBF0BBB8EEB6B2F3B9
+ B7EEB5B3EAB0ACF2B9B6F4BFBAE4B1ADDEAAA6E3A8A5F4BAB6EFB9B6EAB5B2EE
+ B7B4EFB8B5EAB6B2E3B7B4E2B2AEE5B1ADECBAB7ECB9B6E7B0ACEAB6B3EBBDB9
+ EAB7B5E9B5B2E9B6B3E4B2AEE6B3AEEEBAB7EDBEB9EBB7B4ECB5B2EBB6B3ECBB
+ B9EBBBB8EAB9B6EDBDBAEBBAB7E9B8B5EBBAB6EAB9B6EABAB8E7BAB8ECC2C0EC
+ C3C1EFC5C2EFC3C1EDC0BEF0C3C0EBBEBADBAEACE3B8B6F5CAC6ECC2C0ECC3C1
+ EEC4C2EFC4C2EFC3C1EABFBDECC2C0EDC3C2F0C9C6EDC6C5EDC9C7EFCBC9EFCC
+ CAEFCBC9ECC7C6EAC5C3F0CBCAEEC9C6EFC7C5EEC6C5F2CCCAF2CDCCEFCDCBEE
+ CDCCE9C7C6DCBDBAEACAC9ECCDCCE0C2C1EBCDCCE9CBCAE7CAC9EED0CFE4C6C5
+ DCC1C0E7CBCBECCFCFE9CCCCE2C6C5DBC0C0DCC0BFDCC0BFDEC1C0DFC2C1DEC2
+ C1E1C3C3DEC0BFE3C6C5DFC2C1DCC0BFE6C9C7E4C7C6E5C7C7EFD1CFE7CAC9DE
+ C0BFE5C7C6E7CBC9E9CCCBD9BDBDDEC3C2EACFCEEACFCDE7CDCCE3CAC9D8C0BF
+ D6BFBEE9D2D0EAD4D2EDD5D5EED8D7EED7D5EFD8D7F0D9D8EFD7D7F3DAD8E9D1
+ CFE1CAC9EDD5D4EDD6D5EAD2D1EAD2D1E9D4D1E6D0CFE5CFCEE7D1D0E6D0CFE4
+ CFCEDFCAC7E3CECCE4CECDE4CFCEE5CFCFE1CCCADBC9C7E9D5D4E7D4D4E3CFCE
+ E5D0CFE7D4D2EDD9D8EAD5D4F3DCDCECD8D7E9D5D4F2DEDCF3DFDEF2DCDCECD8
+ D8E9D5D4F2DEDCEFDCDBEFDCDBF0DCDBE6D2D2EBD9D9E5D4D4DECDCDE5D4D5EA
+ D9D8EBD9D9E5D5D5DFCECEDACACAECDCDCEFDFDEE1D0D1DACACAD4C4C4D2C3C3
+ DBCBCAEFDEDEEDDBDB0000000000000000D9C4C3E2CDCCE1CCCBDBC7C6EBD6D5
+ E7D4D2E1CCCBE6D1D0EAD6D5F0DBDAEEDAD9ECDAD9EEDBDAE6D2D2ECD8D8EDDA
+ D9DCCAC9E5D1D1ECD9D8E9D6D6EFDBDBEBD7D7E7D4D4E7D4D2EAD7D6F2DEDCF2
+ DEDEDBC7C6E3CFCEEBD7D6EBD5D4F3DBDAF3DAD8F3DBDAE7D0CFEED6D5FBE2E1
+ F9E1DFF3DCD9ECD4D1E4CBCAECD2D0F0D9D6E9D0CEEED5D5EFD6D5EDD5D2E5CE
+ CBE9CFCEEAD0CFE3CBC9EDD5D5EDD4D2F0D8D7EFD8D7EAD2D1EDD5D4EDD5D5E7
+ D0CFE7CECEDCC4C3E0C6C5E9D0CFE7CECDE2CAC9E9CFCEEAD1CFDFC5C4DCC1C1
+ E3C9C9E7CECDEACFCEEACFCEE6CBCAE2C5C4E0C4C2E9CCCBF2D5D4F0D5D2E9CD
+ CCE3C9C7E7CCCBEBD0CFE9CECDE7CDCCEAD0CFE6CBCAE7CDCCE6CCCBDFC3C2E9
+ CDCCEACDCCE6C9C7E5C9C7E9CBCAE4C7C6E6C9C7EACDCCEBCCCBDCBEBDD8B8B7
+ D9BAB8E1C0BEDFBEBBD9B8B6E0BFBDECCAC7EECACAEDC9C7EDCBC9E9C7C4ECCB
+ C9EAC9C7EAC7C5EFCCCBEFCBCAE9C2C0ECC5C3ECC5C2E7C0BEF4CCCAEFC9C6EF
+ C7C5EFC9C6EDC5C2EAC1BFEABFBDE7BDBAE4B9B7E3B8B6E7BDB9EDC2C0EBC1BF
+ E1B8B6ECC2C0EDC1BFE1B4B2EBBEBBEEC0BFE7B9B6EABBB9EBBEBAEBC0BDEDC2
+ BFE9BFBBEEC2C0E6B9B7E2B4B1E5B6B3EFC0BEF2C3C1EDBFBDE9B9B6EDBDB9EF
+ BEBAECB9B6F0BDB9EEB9B5EEB7B5EAB8B5EDBDB9F0BAB8EFB7B4F0BAB7ECB5B1
+ E9B1ACEDB7B4F2BEB9F4C1BEF2BFBAF3B9B6F4BBB8F2BDB9EDB8B5EFBAB7EFB8
+ B6EFBBB8ECC0BBE3B4B1E9B5B2EDBDB9EDBBB9EBB5B2EBB6B3EDBDBAEBBAB7E6
+ B3AEEDBBB7ECBBB7EAB8B4EDBAB7ECBAB7E6B6B2ECB6B3EBB6B4EBB9B7EABAB8
+ E9B8B5EDBDBAECBBB8EAB9B7EDBDB9E9B8B5E4B5B2E7BAB7EBC0BDEAC1BFECC4
+ C1ECC3C0E7BDB9EFC2C0EBBEBAE7BAB8F5C9C5F5CBC7F2C7C4F4CAC7F3CBC7F2
+ C7C5F2C7C5EDC2C0F0C4C3F0C6C4F0C7C5F0C9C6EFCAC7EFCAC9EBC9C6EECAC9
+ EFCBC9EBC6C4F0CCCBF3CDCAF2CBC9EEC6C5EEC9C6EFCAC7EFCCCAEFCDCCEECD
+ CCDFBFBEEACAC9E9CACAE3C5C3ECCECEEACCCBE9CBCAEDCFCEE6C9C9DCBFBFE0
+ C3C2EBCFCDECCFCEEACECDE6CAC9E9CDCCE9CCCBE2C5C4E7CBCAEACDCDEBCECE
+ E7CAC9EACDCCEDD0CFE5C6C5E3C5C3E2C5C3E6CAC7F2D5D2EED0CFECCFCDEBCD
+ CCE7CCCAEDCFCEE6CACAE4C9C6EACFCDEACFCEEAD0CEECD1D0EAD1D0E3CBCAEC
+ D4D2E9D0CFEDD6D5EFD9D8E7D1D0E9D1D0ECD4D4E1CAC9EED7D6EBD4D2E3CCCB
+ EDD5D4EDD6D4ECD4D5EAD4D2EAD2D1E7D1D0E2CBCBE6D0CFE3CDCDE1CACADBC5
+ C5DBC4C4DEC7C7E6D1D0E9D4D2E4CECEDBC9C6E6D2D2E9D5D5E6D1D1E3D0CFEA
+ D5D5EDDAD9E4D0CFF3DEDEF3DCDBEBD7D6F2DEDCF3DFDFF2DEDCF2DEDCECD9D9
+ EFDBDAF3DFDFF3E0DFF0DEDCEDDBDAF0DFDEEBD9D9E1D0D0DECDCDE4D2D2EDDC
+ DBEDDCDBE7D7D8E0D0CFE6D7D6EEDFDEEBDADAECDCDCE4D4D4DAC9C9E1D0CFE9
+ D8D7E4D1D10000000000000000E5D1D0E5D1D0E6D4D2DECAC9E3CECDE1CDCCD7
+ C2C0DCC9C7E9D5D4EEDBD9E3D0CFDFCCCCEDDBDAE6D4D2E9D7D6ECD8D8DECBCA
+ E2CFCEEBD8D7ECD9D8EFDBDBEDDAD9E7D4D2E9D5D5E5D1D1EFDBDAF0DBDBE0CB
+ CBEDD9D8EFDBDAF2DEDCF2DAD8F0D9D7F8E0DEF0D8D7E9D0CEF3D9D8EAD0CFE0
+ C7C5DEC6C3D6BEBDE4CBCAEED6D6E7D0CEE2CBC9E9D2D0E4CDCBD8C1C0D8C1C0
+ DFC7C6DCC4C3EAD1D0EBD2D1EAD1D0E5CDCCDCC5C4E0C9C9E6CECDEAD1D1E7CF
+ CFE3CCCBE9D1D0EDD4D2ECD1D2E6CDCCECD1D1EDD2D1EAD0CFE9CECDEACFCFE6
+ CCCBE6CCCBEDD1D0EDD2D1ECD0CFE7CBCAE4C7C5F0D4D2F0D5D4E9CECEE4CAC9
+ DCC2C1E6CBCAE7CECDE6CCCBE6CCCBDFC4C4E3C9C7E4CAC9DBC0BFE7CBCAEBCE
+ CDE9CCCBE4C7C6E9CCCBEACDCBE7CBCAEBCECDEDCFCEE4C6C4E1C1BFE2C2C0E6
+ C5C4EBCAC7E3C1BFE3C2C0E9C7C5E1BFBDDFBDBAE9C7C5EDCCCAEBCAC9E5C3C1
+ E4C1BFEFCBC9F0CAC7E6C0BFEEC6C4EBC3C2E2BBB9ECC4C2EEC6C5EFC9C6EEC5
+ C4E7C0BDE3B9B7E6BBB9E6BBB9E9BDBBE2B8B5E1B6B4EAC0BEEBC2C0E3BAB7EB
+ C1BFEBBFBDE9BDB9E2B6B3E3B6B4E0B3B1E4B8B6E7BBB9EABFBBECC3C0ECC1BE
+ ECBFBDECBFBBEDBEBAE3B5B3EABDB9EDBFBDE9BAB8E9B9B6EDBEBBEDBDB9E5B4
+ B1EAB6B4EBB6B4ECB7B4E3B3B0E6B6B3EAB4B1ECB6B2EEB8B4EBB5B2EEB7B4EE
+ B8B5EEBAB7F2C1BEEFBBB8F0B7B5F2B9B6ECB7B5E3B0ACEBB6B2ECB6B3ECB8B5
+ EABEBAE2B4B1E5B3B0EBBAB6E4B5B3E4B0ACE7B4B1EABAB7EABAB7ECB9B7EEBD
+ B8ECBDB8EBB9B6EDBAB7EBBAB7E4B5B2E6B3B0E6B1ADE3B2B0E1B4B2E1B4B0EA
+ BAB7EBBBB8E9B9B7EEBFBDE9B9B6E1B2B0E3B6B3ECC1BEE9BEBBE7C2BFE7C1BE
+ E5BDB9E7BDBAE1B4B2DEB1ADEEC2C0F2C7C5EFC6C3F3CBC7EFC7C4ECC4C1F2C7
+ C6F0C5C3EFC4C2EDC2C1ECC2C0EFC6C3ECC5C3EDC6C5E3BFBDE4C2C1E6C3C1EB
+ C6C5EFCCCAF4CECDF2CCCBEFCAC7E2BAB9E1BBB9E3BFBBE7C3C2EECCCBE3C3C2
+ ECCCCBECCDCCEBCCCBECCECDEDCFCEEDCFCEEBCFCDE6C9C7E5C9C6ECCFCEEFD2
+ D1EED2D1ECCFCEE9CCCBEBCFCEE4C9C7E0C4C4E3C9C7EDD0CFF2D5D4EFD4D1EE
+ D1D0EED1D0F2D4D1F3D5D4EBCECCEBCECDEFD1D0EFD0CFEBCDCBE6CAC7E6CBC9
+ EED2D0EACFCDE5CAC9ECCFCEE9CDCCEDD2D0EED4D2EED5D2E9D0CEE9D0CFDCC4
+ C3EDD5D4F0D9D8E3CDCBE1CAC9E7D1CFDBC4C3EBD4D2E9D2D1E0C9C9DFC7C7D8
+ C3C1DFC9C9E6D0D0E7D1D0E5CFCEE6CFCEE9D1D1E3CDCCE7D0D0E3CDCCE0CBCA
+ DEC9C7E7D1D1E6D0CFDECAC9DAC7C6E5D1D0E6D4D2E5D1D0E2CECEE3CFCFE6D2
+ D1DCC9C9EAD6D6EAD7D6ECD8D7EFDBDBF2DEDCECD8D7EAD6D4EDDAD9EBD7D7F3
+ DFDFF3E0DFF0DEDCE9D7D8EBD9D8E5D4D4DBCBCADECCCCE2D1D0EDDBDBEDDCDC
+ E9D8D8E4D4D2E5D5D4EDDCDCEBDADAEFDFDEEFE0E0E9D9D9EBD9D9EEDCDCEFDC
+ DC0000000000000000E5D2D1EDD8D7EEDAD9F2DFDCF2DFDCF0DCDBEBD6D5EBD6
+ D5E5D0D0E4D0CFCFBBBAD0BFBEE6D4D4EBD8D7F0DEDCF0DFDEE6D2D1EDD9D9F0
+ DEDEF0DEDBECD9D8EFDCDBF0DCDBEDDAD9ECD7D8EED9D9EDD9D8E2CECDE5D0D0
+ E4CFCEE1CBC9DFC6C5E7CFCEF8DFDEEDD5D4E0C7C6DEC5C3C9B0ADCBB3B2CEB6
+ B4CBB4B3D1BAB8EAD2D1E6CFCFDBC3C3E0CAC7EBD4D2E9D1D0E9D1D0EAD2D1E0
+ C7C6DEC5C4E4CBCAEAD1D0EDD6D4DCC4C4D1B9B9D5BEBDECD2D4E7CFCFE7CECD
+ EBD2D1EDD4D2ECD1D1E9D0CFECD1D1EAD1CFECD0D1E9CFCEE6CCCBD1B8B7D2B8
+ B8EAD1CFEFD5D4F0D6D4F0D4D2E5CAC7F3D6D5F2D7D5EBD0CFE6CDCCE4CBCAE3
+ CAC9E6CDCBE6CCCCEACFCEE4CAC9E6CAC9E6CBCADEC1C0E9CCCBEBCECEE5C9C7
+ D8BBBADABFBEEACECCE5C9C7EDCFCEEED0CFEDCFCDEECECDEDCCCCEECCCBEFCE
+ CDECCBC9E9C6C4E9C6C5D5B4B2D6B5B3E0C1BFE4C4C2EBCAC9E0BDBBD9B6B5EC
+ C6C5EFCAC7E2BBB9E4BFBDE7C2C0DEB6B4E4BEBBEEC6C4EFCAC7EEC6C4ECC3C2
+ EBC2C0EAC0BFEBC1C0ECC2C0EAC0BEE4BBB9E7BEBBE3BAB8E5BDBAECC2BFEBC1
+ BEE4B9B6DAAEACDAAEACE1B4B2EABFBDEBC1BFEDC3C1EDC4C1EDC3C0EDC2C1EE
+ C1BEEFBFBEE7BBB8ECC1BEEEC1BFEABBB9EABBB8ECBDB9EDBDB9EBB9B7EDBAB8
+ EDB9B6EBB9B6ECBFBBEDBDB9EEB8B6EEB8B6EEB9B6EDB7B4ECB6B3EAB6B3EEBD
+ B8F0C0BEEDB9B7ECB5B1EEB8B4E3B2AEE2AEACE9B5B2EAB4B2E6B3B1EABEB9E3
+ B7B4EAB8B5ECBBB7EABBB8E9B6B3ECB7B4ECBBB8EBBDB9ECBAB7EEBBB8EEBFBB
+ EDBEBAEEBEB9EEBEBAEBBDB9EAB9B6E9B5B2EAB8B5E7B9B7E3B6B4ECBDBAEBBB
+ B9ECBEBAF0C0BEE9B8B6DCAEABDCAEACEDC1BFEDC3C0EDC5C2ECC6C4ECC4C2EC
+ C2C0EABFBDEBBFBDEFC3C1EFC4C2ECC3C1EFC7C5DBB4B1D8B1AEEAC1BFEFC4C3
+ F2C7C6EEC3C2E9BFBDEBC2C0EDC5C3EFCAC7E4BFBEE6C2C0EBC7C6EAC5C3EECA
+ C9EFCAC7E4C0BDDAB6B4D4B0ADD6B0ADD5B1AED6B3B1E7C4C2E9C7C5EBCCCAEA
+ CBCBE9CBC9EECFCEEED0CFEDCECDD8BABAD7B9B8DEC1C0EED1D0F0D4D1EFD4D1
+ EFD4D1EFD4D2F0D4D2E9CECDE5CAC9E7CCCBE7CCCBF0D4D2EFD2D1EFD2D1EACD
+ CBE7CBCAECCFCDE3C5C4E6CBC9E4C6C5ECCECCECCFCEDABDBDDABFBEE4C9C7D9
+ BEBDD8BDBAD6BAB9D4B9B7DBC0BFEED4D1EED4D2EDD2D1EAD0CFD9C1C0EED6D4
+ F3DAD9EFD8D7F0DAD8F3DBDBE9D2D1EFD9D7EDD8D7E5CFCED5BFBED2BDBBDAC3
+ C3E6D0CFEAD4D1E5CDCDEAD4D2ECD5D5EBD4D2ECD5D4E7D1D0DCC7C6DCC7C7E4
+ CECDD4BEBED2BFBFD2C0BFD6C2C2E5D1D1E6D4D2E7D5D4E6D5D4EAD6D7EAD6D7
+ EDDBDAEBD9D8ECD8D8EDDADAF0DEDCEBD7D6F2DEDEEFDCDBEDDAD9F3E0DFF2DE
+ DCEEDBDBEFDEDCF0DFDFEDDCDCEBD9D9ECDADAE2D1D0E2D0D0ECDCDCE6D7D6E6
+ D6D5E7D7D7F0DFDFEFDEDEF0E0E0F0E1E1EEDEDEEFDFDFEEDEDCF2E1E0000000
+ 0000000000E9D5D4E9D6D4ECD8D6EFDAD9F2DEDCECD8D6DCC9C7E6D2D1DCC7C6
+ DCCAC9CFBDBAD1C0BFE3D1D0ECD9D8EEDADAEDD9D9D8C6C5D6C4C3E6D4D2ECD9
+ D8E9D6D5ECD9D8EDDAD9EBD7D7EDD9D9EEDBDAEEDAD9E6D1D1F2DCDBF6E0DFF9
+ E3E2F0D8D7EDD5D4F7DFDCEBD2D0D8C0BFE2CAC7DCC4C3EDD6D4EDD6D5CFB7B6
+ CDB7B5ECD5D5F2DAD9EED7D7E1CAC9EAD2D1EED6D5EDD5D5EDD6D5EDD6D5EDD4
+ D2EDD4D2EED7D5EDD6D4E5CDCCD1BAB8D4BDBBECD2D4E7CFCFE4CCCBECD2D2ED
+ D5D4ECD2D1EBD1D1ECD2D1EAD1CFE9CFCEE2C9C9E1C7C6D1B8B7D1B8B7E7CDCD
+ E6CCCCECD1D0EED2D1E4C7C6F0D5D4F0D6D5E9D0CFE7CFCEE9CFCEE2C9C7E6CD
+ CBEACFCEECD1D0E7CCCBE9CDCDE7CCCBE1C5C3E7CCCBEACECDE6CBCAD8BDBBD9
+ BDBDE9CBCAE9CBC9E9CBCAEACCCBE3C4C3EBCCCAECCCCCEACAC9EDCCCBE6C5C4
+ E7C6C5E2C2C0D5B5B3D5B6B4DEBEBDE9C9C6ECCAC7E4C1BFD9B6B4EBC6C4EECA
+ C7ECC6C4EDC6C5F3CDCBF0CAC6E6BFBEE7C1C0ECC5C3EEC5C4ECC3C0EAC1BFE0
+ B7B5EBC2C0EBC2C0EAC2C0E6BFBEE7C0BEE5BDBAE7BFBDE9BFBDEBC1BFE4B9B6
+ DAAEACDAB0ADE2B7B5EAC0BEECC4C1EDC3C1EBC2C0EBC0BEEBC0BEE9BAB8EABD
+ BAE3B8B6EBBFBDECC1BEE6B8B6E5B6B4ECBEBAEEBEBAEAB8B6EDBBB8EEBAB7ED
+ BDBAE9BEB9EBB9B7EDB9B6EBB7B4ECB8B4E9B4B1EBB6B3E5B3AEEDBBB9F0C0BD
+ EDBAB7EFB7B5F0BAB7ECBAB7E9B6B3EDBAB7EDB8B6EDBAB7ECC0BDE5B9B6EBB9
+ B7ECBDB9EABBB8E6B4B1EBB6B4EBBAB7EBBDBAE9B9B6EDBDBAEEBFBBEDBFBBED
+ BEBAEEBDBAEDBFBBEDBFBBECBAB7ECB9B6EABBB8E5B9B6ECBEBBECBEBBEDBFBB
+ F0C2BFEABBB9DCAEABDCAEACEDC1BFECC1BEEAC1BFEBC5C2ECC5C3ECC4C2EAC0
+ BEE9BEBBE9BEBBE9BEBBE4BAB8E3BAB8D9B2B0D8B2AEDEB6B4EFC6C4F3C9C6EF
+ C5C3EFC4C3ECC3C1F2CAC7F4CCCBEBC4C2E7C2C0F2CCCBEECBC9F4CFCCF2CCCA
+ E2BEBBE6C2C1DFBBB9EBC6C4E1BBB9D5B1B0D8B5B3DCBAB9E3C2C1E9CAC9E7C9
+ C9EECFCEEED0CFECCECDD8BAB8D7B9B8D7BBBAEACCCCEED1D0EFD4D1EED4D2EE
+ D2D1F0D4D2EDD2D0EDD1D0EBCFCEECD0CEF0D4D2EED2D1F2D4D4ECCECEE2C5C4
+ E6CAC9E7CBCAE6CBCAEACCCBEACCCBEDCFCFDCC1BFE0C3C3E6CBCAD8BEBBD6B9
+ B9D5BAB8D4B9B7D6BAB9ECD0D0EBD0CFEED4D2EAD0CED5BBB9E0C6C5EED5D5E5
+ CDCCEDD6D4EED7D5E4CDCCEAD4D2E6D1D1E9D2D1D1BDBAD0BAB9D8C2C1EAD4D2
+ E6D0CFE4CECDEAD4D2EAD4D2ECD5D4ECD5D5EAD4D2E3CCCCE5CFCFE5CFCFD9C4
+ C4D7C3C3D4C0C0D2C0BFD5C2C2E1CECEECD9D9ECD9D9ECD9D9F2DEDEF0DEDBEA
+ D7D7ECD9D9EEDBDBEFDCDCE9D6D6F2DEDEF2DFDFF2DFDFF4E1E1F2DFDFECDAD9
+ EEDCDCF0DFDEEBD9D9E5D4D2E7D7D6DACACADECDCCE6D6D6E5D4D4E4D2D2ECDB
+ DBEFDEDEEDDEDCF0E0E0F0E0E0EEDEDEE9D9D8E9D9D8EEDCDB00000000000000
+ 00E5D1CFD7C2C1D1BEBBD9C4C3E3CFCED5C2C1D2C0BFE2CCCCEED8D9F0DCDBD0
+ BFBED0BFBEEFDEDEF0DFDEEEDBDAE1CFCDDECBCBD6C4C3DBC9C7EDDAD9EBD7D7
+ EBD7D7E1CECEDAC7C6E1CDCDE2CFCEEAD6D5E6D1D1F3DFDCF8E2E1E5CECCDCC4
+ C3DCC4C3EAD1CFF9E1DFF3DAD9F3DAD9EED7D6ECD6D4E1CACACEB7B6CDB7B5E3
+ CBCAF4DBDAF2DAD9EAD2D1DCC5C4EED6D6E3CBC9DCC5C3E5CDCDE3CACAD7BFBE
+ DBC3C2E7CFCEE1CAC7D1BAB8D1B9B8E3CBCAE3CBCADAC2C1DEC5C4DFC5C5E1C9
+ C6E1C7C6DEC4C4D6BEBEDBC1C0E2CAC9E2C9C6D1B8B7D1B8B6EDD4D2E9CFCDEB
+ D0CFDBC0BFD5BAB9DCC2C0F0D6D4E4CBCAE7CECDE6CDCCE3CAC9EACFCEECD0D0
+ EACECDE0C4C3E6CBCAE6CCCBDEC2C1E1C5C4EBCFCEE9CDCCD8BDBBD7BAB9E2C5
+ C3E9CAC9E9CBCAE4C6C5D9BABAE1C2C1E4C5C3DFC0BFDEBEBBE0C0BFEECECCEB
+ CBC9D5B5B4D5B6B4E3C2C1EDCBCAEECCCAE2BFBDD8B5B3E2BFBDEECBC9EDC9C6
+ EEC9C7F4CECCEFCAC7E3BDBADAB3B1DFB7B5EBC3C1ECC3C2E7BFBEDAB2B0E2B9
+ B8E9C1BFE4BDBAE3BBB9E2BAB8DFB6B4E1B9B6EAC0BEECC1C0E9BEBBDBB0AED9
+ B1AEE3BAB7E5BDBAEAC1BFE6BEBBE0B6B4E4B9B6E7BEBAE3B8B5E2B6B4E0B6B4
+ EABFBBEEC1BFE5B8B5E1B3B0ECBDBAEABAB8E0B0ACE1AEABE2B0ADE1B2B0DEB1
+ ADE2B1ADE9B5B3E9B5B2E1AEABE0ABA8DFACA8DEACAAE2B3B0EDBFBDEEBBB8EE
+ B8B4E4B1ADE2B1AEE4B3B0EBB8B5EDBAB6ECBBB7EBBFBBE2B6B3E4B5B2E9B9B7
+ E6B9B7E7B6B4EAB6B3EAB9B6E1B6B3E1B3B0E6B6B3E7B8B5E3B5B2E9B9B6E7B8
+ B6EABBB8EBBFBBE1B0ADE2B0ADE9B9B6E3B8B5EBBEBAEBBDBAEABBB9EDC0BDE7
+ BAB7DCB0ACDCAEACE4B7B5E4B8B6E1B8B5E3BBB9E0BBB9E2BBB9E2BAB8DFB5B3
+ DEB4B1DEB3B1E2B8B6E1B8B6D9B3B1D7B1AEDFB7B5EEC7C5F4CCCAEFC5C3F2C6
+ C5ECC3C0EFC5C4EEC5C3DBB4B1D9B3B2F2CBC9F5CFCDE6C2C0EAC5C3E7C4C2F3
+ CECDF0CDCCF2CECDE1BEBBD6B3B2D6B4B3DBB8B7E5C4C3E3C3C2E1C1C0EBCCCB
+ EECFCEEFD1D0DCBFBED7B9B8DBBFBEE9CDCCEACDCDDBBFBEDABEBDDABEBDDEC4
+ C3E0C4C4E9CECDE2C7C7E0C4C3DABFBFDABFBEF2D5D4F4D8D7F5D8D7F5D8D7EC
+ CFCEDBBFBEE0C2C2EFD2D0EFD2D0D9BDBBD7BAB9DFC3C2E5CBCAD9BEBED7BBBA
+ D4B9B7DCC2C0EED5D2EBD0CFE9CFCDDCC3C2D5BAB9D7BEBDE7CDCCE4CCCBDEC5
+ C4D9C0BFD5BDBBDBC4C2E0CAC7DAC4C3D1BDBBD0BAB9D7C1C0E4CDCCE0CAC9E2
+ CCCBE3CDCCDEC9C7D9C3C2D8C2C1D5C0BFD5BFBFDFCAC9E1CCCCE4D0D0E5D1D1
+ E0CDCDD2C0C0D2BFBEE5D2D1F0DCDCF0DEDCECD9D9F2DEDEF2DFDEE1CFCEDECB
+ CBE0CDCDD8C5C5DFCCCBEFDEDCEDDCDBD9C7C6E5D2D1E5D2D1D9C7C7E7D6D6EF
+ DEDEE3D1D1E6D4D4DECDCCDBCBCAE6D4D4E4D2D2D6C5C5D6C5C5EAD9D9ECDBDB
+ DECDCDD9C7C7DFCFCEEDDEDCE7D8D8DECDCDDECDCC0000000000000000ECD8D6
+ D2C0BECAB7B5D2BFBEDBC6C5CCB8B7CBB7B6CEB9B8EEDAD9EDD8D7D0BEBDD0BF
+ BEE7D6D5E9D7D6D6C3C3D2C0BFDECBCAD4C1C0D1BFBEE1CECDE6D2D1DBC9C6D1
+ BFBED2BFBED5C1C0D1BFBED2BEBDD5C0BFDFCAC9DAC4C4C7B2B1CCB5B3D4BBB9
+ CAB3B2D9C2C0F6DFDEF2DAD9D5BFBED1BABACEB7B6CDB6B5CEB7B6E9D1CFEBD2
+ D1F0D9D7EAD1D0DCC6C5DEC5C4CEB6B5CFB8B7E0C9C7D4BDBACFB6B5CFB6B5E6
+ CECDDFC7C7D1BAB8D1B9B8D8C0BFDEC5C5D2BAB9D1B8B8D1B8B8D7C0BED8BFBE
+ D2B9B8D1B8B8D6BDBDE6CDCBE2C9C7D1B9B7D1B8B7EFD6D5EFD7D5EED5D2D2B7
+ B6CFB5B3CFB5B4F0D7D6E7CECCEAD0D0EAD0CEE3CAC9E3CAC9DEC3C2D6BABAD6
+ BBBADAC0BFD8BEBED8BDBBD8BDBBE4CBCAE6CAC9D7BBBAD7BBBADCC0BFE4C6C5
+ DFC0BFD7B9B8D7B9B8E1C2C1E1C2C1D8B9B7D8B9B8DBBDBAEFD1CFF2D2D0D5B5
+ B4D6B6B4E2C1C0E7C6C4EAC6C4D8B4B3D6B4B2D7B4B3E5C2C1E6C3C1E7C3C1F2
+ CDCBEEC7C6DFB8B6D6B0ADD7B0ACE7C0BEEFC6C4E7C0BED8B1B0DAB3B2E2BBB9
+ DAB4B2DCB5B4E0BAB7DEB6B3DFB5B3E9C0BEEBC1BFE7BEBBDBB2B0DBB3B1E5BD
+ BAE4BDB9E0B8B6DCB5B3DCB4B1DFB5B3DCB2B0DEB3B0DCB3B0DBB1AEE0B5B3EF
+ C1BFEABDBAE4B6B3EBBDBAECBEBADCADAADCAAA7E0B1ADE2B6B4DCAEACE4B3AE
+ EFBDB8EDBAB7DCAAA7DEABA8E0ADABDCACA9DCACAAECBFBBECBAB7E1AAA8DBA9
+ A6DFAEABE6B6B3EAB8B5EDBAB7EDBBB8E9BDB9DFB5B2E1B2B0E9B9B7E5B9B6E6
+ B7B4E9B7B4E3B3B0DEB2B0E1B3B1E2B4B1DEB0ACDEB1ADE2B3B1E9B9B7EBBBB9
+ E4B8B5DEB0ACDEADAAE7B7B5E7BAB7EABEBBEBBFBBEBBEBAEDC2BFEABEBBDBB1
+ ADDBAEACDEB2AEE1B5B3E0B5B3DBB4B1DBB5B3DEB9B7E6C0BEDBB3B1D9B1ADDA
+ B1AEEEC3C1EEC4C2DCB5B2D6B0ADE7C1BEF3CCCAF3CDCAEFC9C6F2CAC7EEC5C2
+ ECC3C1D9B2B0D5ACAAD6B0ADF4CECBF5D0CED1ADABD9B6B4E7C5C2EFCDCADEBB
+ B9D8B6B5D6B4B3D6B4B3DCBAB9E7C4C3EBCAC7E6C4C3E2C2C1E9CAC9EACBCAEB
+ CCCCD8BBBAD7B9B8DABDBDEACDCDE4C7C6D6BAB9D7BDBBDBC1C0DCC1C1DCC1C0
+ E7CECEE2C6C5D9BFBED6BBBAD6BBBAE7CDCCF0D5D4F3D7D6F2D6D5D5B9B9D2B7
+ B5D4B7B6F0D5D2F0D5D4D7BBBAD1B5B5D2B6B5EDD1D0E0C5C4DAC0BFD2B8B7E4
+ CBCAEED4D2E6CCCBD6BBBAD5BABAD5BBBAD2B8B6DBC1C0EED4D2E9CFCED2B9B7
+ D0B7B6D2BBB9E9D1D0EDD5D5D6C0BFD0BAB9E6D1D0EDD6D6E2CCCBE6D1D0E0CA
+ CAD7C1C1D0BBBAD2BDBDD4BFBDD5BFBFDFCAC9E2CDCDE4D0D0DBC9C7D5C2C3D2
+ C0C0D7C4C4E6D5D5EFDCDBEFDCDBE2CFCFEAD6D7D8C5C5D0BFBED5C2C2D7C4C4
+ D0BFBED1C0BFE4D2D2DECCCBD0BFBFD4C1C0DCCBCAD2C1C0D4C2C1E9D8D8EBD9
+ D9D9C7C6D1C0C0DAC9C7DACACACFBFBFCFBFBFD2C2C2EEDEDCF0DFDFD2C2C2CF
+ C0C0DACACAECDBDBDACBCBD0C0C0D0BFBE0000000000000000E5D0CFCDB9B7CA
+ B7B5EED9D8F2DEDBD1BEBDCAB7B5D4C0BFEFDAD9DAC6C4CEBDBBCEBBBBE5D2D1
+ E4D2D1D0BEBDD7C4C3E9D6D6DECCCBD1BFBFD5C2C1E2CFCED5C1C0D2C0BEDCC9
+ C7E4D0D0D5C0BFCDB7B6D9C4C3F2DBDAD0BBBAC9B3B2EAD2D1F9E2E1DCC6C5CD
+ B7B6E4CECED9C4C3CDB7B6CEB7B6D4BEBDD5BFBEDCC6C5EFD9D8EDD7D5F3DBDA
+ EBD2D1DCC6C5CEB7B5CEB5B4ECD2D1F3DAD8E4CBCACFB6B5D1B9B8EED6D5E7D0
+ CFD1BAB8D2BBBAE6CFCFEBD2D4DEC5C4D2B9B9D1B9B8E7D0D0ECD1D2D5BDBBD1
+ B9B8E2C9C9DCC4C3E0C6C5D0B8B7D1B9B8ECD1D2EDD4D4EAD0CFD0B6B4CFB5B3
+ D0B6B4E3C9C6E5CCCBE7CECCE5CBCADAC0BFDEC2C2D6BBBAD6BBB9DBC1C0DCC1
+ C1DAC0BED7BDBBD8BEBDE9CECDE7CDCBD7BAB9D8BBBAE9CCCAE6C7C6E6C9C7D8
+ BAB9D7B9B8EBCCCBECCDCCDBBEBDD8BAB9DFC2C1EDCECEEDCECED6B7B5D6B6B4
+ E7C4C3E4C1C0E9C6C3D7B5B3D7B5B3D8B5B4E9C5C4EDC9C6E9C5C3F0CCCAF2CC
+ CAEDC5C4DAB4B2D8B1AEE5BDBBEEC5C4E3BBB9D8B2B0DFB8B6E2BDBBD9B4B2E0
+ BAB8E6BFBEE1B9B7E0B7B5EAC0BEEBC3C0E1B9B7DBB3B1DBB3B1E2BAB8E9C1BF
+ E0B9B7DBB3B1E0B6B4E1B6B3DAB0ACE1B6B4E6BBB9DBB1ADDCB1ADEEC2BFECBF
+ BDE7B9B6ECBFBBE9BAB7DBACA9DCACA9ECBFBBEBC0BDDCAEACDCAAA8EBB8B6E2
+ B1AEDBAAA7EAB7B4EEBDB9E2B3B0DAACA9E3B6B4EAB7B5DEAAA7DAA9A5EAB9B6
+ E9B8B5E5B5B2E3B1AEE7B7B4E0B4B2DEB5B1E1B3B0E7B9B6E9BDB9E2B6B3E5B3
+ B1DEADAAE1B5B1EBBEBBE6B9B6DFB1AEDEB2AEE6B8B6E6B7B5E9BBB8E0B4B1DE
+ B2AEDEADABE2B1ADE4B7B4E6BBB8EBC1BEEABEBAEABEBBEBBFBBDBB0ACDBB0AC
+ E2B6B4EABEBBEBC0BEDEB5B3DAB4B1E5C1BEEBC5C3DBB5B3D8B1ADDEB6B3EBC1
+ BFEBC2BFDAB3B0D6AEACE2BBB8ECC5C3EFC7C6ECC6C4ECC5C3EBC4C2E4BDBAD5
+ ACABD4ADABDAB4B1F0CAC7EFCAC9D5B1AEE4C1C0E6C5C4D8B7B6D6B6B4D7B6B5
+ DBBAB9E3C3C1ECCAC9EBCAC9EBC9C7EAC7C6E7C5C4EBCBCAEACBCAE5C9C6D7B9
+ B8D7B9B8D9BEBDF0D4D2EED4D1D6BABADCC0C0E6CBCAECD1D0E7CDCCECD1D0E7
+ CDCBD7BEBED6BBBAD6BABADBC2C1E5CACAE6CCCAE4CAC9D4B9B9D5B9B9D4B9B7
+ EFD4D2F0D5D2E3C7C5D1B5B5D6BAB9EFD5D2E0C4C3D7BBB9D1B8B6E4CAC9EFD5
+ D4DEC4C2D0B6B6E6CCCBEED5D2D7BDBBD0B6B5E6CCCCEDD2D2E1C7C6D0B6B6D8
+ C0BFEDD6D5EDD7D5D5BEBDD0BAB8E7D1CFF0DBD9EED9D8EED9D8ECD6D7DFCAC9
+ D0BDBAD6C2C0DCC7C5E5D0CFE4CFCFD8C4C4D2C0C0D4C2C2D5C3C3D8C5C5E2D0
+ D0E2D0D0EDDBDAE7D5D6D9C6C6D9C7C6D0BFBED1C0BFEDDADAF0DEDED5C2C2D0
+ BFBFE5D4D4DCCBCBCFBFBFE4D2D2EFDEDEDECDCDD0BFBFDFCECEDBCBCAD0BFBF
+ D7C5C5DCCBCBE4D2D1D2C1C1CFC0BFD5C4C5ECDBDAF0E0E0CFBFBFD0C0C0EFDF
+ DFEDDCDCD1C2C1CFBEBEE2D0CF0000000000000000F2DEDBD0BBBBCAB7B5F9E5
+ E3F9E5E4ECD8D6CAB7B5DAC6C5F9E3E2F4E0DFD1BFBECEBBBAEFDCDBE4D1D0CF
+ BEBDE6D2D2ECD9D9EBD7D8D4C1C0D4C1C0E4D1D1D4C0BFD4C0BFEFDBD9EBD7D6
+ DFC9C7CDB7B6D8C3C2EBD6D5CFB8B9CDB7B6E9D2D2F0DAD9E5CFCECCB6B5D4BE
+ BDCFB8B7CFB8B7E9D1D1F2DAD9DBC5C4E7D0D0EBD5D2F0D9D8EDD6D5DBC3C3D5
+ BEBDCDB6B5CEB5B4DFC6C5DBC3C2DFC7C6CEB6B5D1B9B8EDD5D4E7D0CFD0BAB9
+ D4BBBBE9D1D0E7D0CFE0C9C7D4BBBBD2BAB9EDD5D2EDD5D4DFC6C5D1B9B8ECD2
+ D2E7D0CFEED5D4D1B9B8D2BABAF0D8D7EDD5D4E3CBCAD0B6B4D5BBB9D2B8B6DE
+ C4C3EDD2D1EDD4D2ECD2D1E7CECDE9CECED5BBB9D6BBB9ECD0D0EAD0CEE6CCCB
+ D7BBBADAC0BEE9CDCCE5CAC9D7BAB9D9BBBAE7CBCAE4C7C6E6C7C6DBBDBBD7B9
+ B8EACCCBEDCFCDE0C2C1D9BDBBE9CCCBECCFCEEDCFCDD7B7B6D7B6B4EECCCBEA
+ C7C6E7C5C3D8B5B4D8B6B4D8B6B4DFBBB9EECBC9E9C5C3EAC5C4EBC6C4E9C2C0
+ DEB7B5D8B2B1DFB7B5EBC4C3DCB7B5DAB5B4E7C3C0E6C2C0DCB7B5DFB8B6E2BB
+ B9E4BDBBE7C0BEE6BEBDE5BEBBDCB4B3DEB6B5DFB7B5DEB8B5E7C1BFDFB7B4DA
+ B1B0E9BFBDEBBFBDDAB1ADEABFBDECC3C0DBB1AEDAB1ADEBBFBBEABDBAE4B7B4
+ EBBEBBE5B7B4DBACA9DEAEABEBBEBAE3B8B5DCAEABDBABA8E6B5B2DEADAADCAB
+ A8E9B7B5E7B7B4E4B4B2DAADAAE0B3B0ECBAB8DEABA8DAA9A6E5B6B3E5B5B3E2
+ B1AEE0AEABE3B3B0E0B4B2DCB4B1DEB1AEE4B6B3E4B8B5E1B4B1E3B3B1DCADAA
+ E4B8B5EBBFBDE7BAB7E3B6B3DEB2AEECC0BEEBBDB9EABBB9DEB2AEDCB3B0E0B2
+ B0DFADABE4B6B3E7BDB9EEC3C1EDC2C0EFC3C1EFC2C0DAB0ACDAB0ACE9BEBAE5
+ B9B7EBC0BEE0B6B4D9B2B0ECC6C4EDC9C6E7C2C0D6B0ADE4BBBAE5BDB9EBC1BF
+ D9B0ADD5ACAADFB7B6EEC7C5EBC5C2ECC6C4EEC9C7E3BEBBDEB6B5D6AEADD7B1
+ ADDEB7B6E5C1BFEAC5C4D7B4B2E4C1C1E4C2C2D7B7B6DEBEBDEDCDCCEBCBCBEA
+ CBCAE5C5C4DFBEBEDFBFBEDBBAB9DCBBBAE5C5C4E1C0BFD7B8B7D8BABAD9BEBD
+ D7BAB9E3C6C5EACECDDEC2C1D8BEBDDCC1C0EBD0CFEDD1D0EACFCFDFC4C3D7BD
+ BDDAC0BFD7BFBEDABFBFF0D5D4F0D7D5E5CCCBD5BBBADAC1BFD4B9B8DBC0C0E4
+ C9C9E1C6C4D2B6B5DEC2C0ECD0CFDABEBED4B8B8D0B6B5DFC3C2F3D8D6D2B8B7
+ D1B7B6EDD1D1EACFCEEAD0CED1B7B6D8BEBDEFD6D5F2D8D7D0B6B5DEC4C3E9D1
+ CFEDD7D5D5BDBBD0B9B8E2CBCAEED9D8ECD6D6EFDAD9EEDAD8EAD5D4D5C0BFD8
+ C3C2E2CDCCE6D2D2E9D5D5D5C3C3D4C2C3D7C4C5D9C6C5E5D2D2E2D0D0D9C7C7
+ E7D5D6E5D4D2D8C5C5D9C7C7D1BFBFD5C3C3ECD9D9F0DEDEE0CDCDCFBFBFE9D7
+ D8DACACAD0BFBFEBD9D9ECDBDBE2D1D1D1C0C0D9C7C7D5C4C5CFBFBFE0CFCEE3
+ D2D2E9D8D9D8C7C7CFC0BFD9C7C7E6D6D5EFDEDED0C0C0D2C2C2EFE0E0EEDEDE
+ D0C1C0D0BFBFF0E0DF0000000000000000F3E0DFCDB9B8CAB7B5F0DCDBF9E3E2
+ E4CFCECAB7B5DECAC7F8E3E2F4E0DFD2C0BFCEBBBAF4E0DFE9D5D4CDB9B8E3CF
+ CFEFDBDAEBD7D6D1BEBDD2BFBFEBD7D5D1BDBBD1BEBDF2DCDCEDD8D8D9C5C4CD
+ B8B8DCCAC7E6D1D1CFBABACDB7B6D4BFBEE0CAC9E2CBCACDB7B6D1BDBBD0B9B9
+ D1BBBAEDD8D7EFD9D8EAD4D1DAC4C2D4BDBBEAD4D1F3DBDAF0D9D8DCC6C4CDB6
+ B4CDB6B4DFC7C6E0C9C6E4CDCCCEB7B7D0B8B8DBC4C2DAC3C2D1BBBBD4BBBBE2
+ CBCBDEC6C6DBC4C3D4BDBBD2BBBAE7D0CFEAD2D2D6BFBED2BBBAE5CDCDEBD2D2
+ ECD2D2D1B9B8D2BBBAF0D9D8F0D8D7D7BEBDD1B7B7E7CCCCE0C5C4D2B7B6E6CB
+ CBEFD6D4EDD4D2E6CDCCE7CECDD6BBBAD5BDBAEBD0CFEDD2D1E7CDCBD5B9B9DA
+ BFBEEACECDE5C9C7D7BAB9D8BBBAE0C3C2DFC2C1DFC1C0DABEBDD9BBBBE0C3C2
+ EACECDDBBFBED8BDBBE1C3C2EBCCCBEECECDD8B7B6D7B6B5EECCCAEBCAC7D9B7
+ B5D8B7B5DEBBB9DBB9B8D8B7B5EBC9C6EBC7C5ECC6C5E6C2C0E4BEBDE7C2C0DB
+ B5B3DBB5B3E4BEBDD9B5B3DFBAB7E9C4C3E9C3C1DAB6B4DFB8B7E2BBBAE2BAB8
+ E7C0BEE0B8B6DCB6B5DAB4B2EAC3C2EAC3C1DAB4B2E4BEBBE3BAB9DBB2B0EBC1
+ BFEDC2C0ECC3C0ECC2C0EBC1BFDAB1ADDBB1ADE6BBB9EABDBAE9BDB9EDC0BEEA
+ BBB9DAACA9DCB0ACEDC2BFEBC0BEE2B3B0DCADAAE7B8B6E1B1ADDBACA9EBB9B7
+ EBBAB8E3B4B2D9ADAADFB3B0ECBAB7DBA9A6D9AAA7E4B6B3EDBEBBECBBB8ECBB
+ B9ECBDB9E6BBB8DEB5B3E0B4B1EABBB9E9BBB9E1B5B3E2B3B0DCACA9E3B6B4EB
+ C1BEE3B7B5E0B3B1DCB1ADEFC3C1EDC2BFE3B6B3DCB0ACE1B6B4EABEBADBADAA
+ DFB1ADECC0BDEFC6C3EFC5C2F2C6C4EFC4C2DAB1ADD9B0ACEBC0BDEDC2BFF0C5
+ C3E5BBB9D9B2AEECC5C2EFC9C7E4C0BED6B1AEE4BDBAEDC5C3EAC2BFDAB2B0D6
+ ADABE5BFBDECC6C3EAC4C2EBC6C5EFCCC9EBC6C4E6C2C0D7B1AED8B3B0E3BDBA
+ DFB9B8DEB8B7D8B5B4DCBAB9DFBEBBD8B7B5E4C5C3E9CBC9E7C9C7E5C6C5E0C1
+ C0E0C1C0E4C4C4E6C6C5EBCCCBE9C7C6DCBDBBD5B6B5E7C9C7EBCDCDD6B8B7D6
+ BAB9E9CCCBE0C4C3DABFBEDEC3C2EACFCFEED5D4EED5D4D9C0BFD7BDBBECD1D0
+ E6CECCD8BEBEEBD1D0F2D8D7D9C0BFD7BEBFECD2D1D9BFBEDBC1C0ECD0D1E4CB
+ CAD2B8B7D9BFBEF4D8D7F2D7D5DAC0BED0B5B5E9CDCCF5D9D8D0B6B5D5BAB8F5
+ DAD8EBD0CFEFD6D5D4BAB9D2B9B8EFD6D5F0D7D6D0B6B6DFC5C4EDD2D1EFD7D6
+ D7BFBED0B9B7D9C2C1EED8D7E3CCCBE9D2D1EDD7D6ECD8D7D4C0BED6C2C1E2CE
+ CDE6D2D1E6D5D5D6C5C4D5C4C4E3D1D1DECBCBECDADAE9D6D7E4D2D2EAD7D7E7
+ D5D6DAC9C7D7C5C5D1C0C1D4C1C2E0CDCDE7D6D5DACAC9CFBFBFE2D1D0D8C6C6
+ CFBFBFE6D5D4ECDBDBDFD0D0D1C1C1D8C7C6D6C6C6CFBFBFDECCCCE1D0CFE3D2
+ D2D2C2C2CFC0BFD5C4C5DACACADCCCCCD0C0C0D1C1C1EEDEDEEFE0DFD1C1C1CF
+ BEBEE2D0CF0000000000000000DAC7C6CAB7B5CAB7B5D9C4C3F4E0DFCDB8B8CA
+ B7B5CEB9B9F3DFDEE2CECDCEBABACEBBBAEEDADADBC7C6CBB7B6CFBAB9E7D4D4
+ DAC6C5CCB9B8D0BDBBE7D6D5D7C4C3CFBBBBE6D1D0EBD7D8D4C1C0D0BEBDE9D6
+ D5EAD7D5CDB7B6CDB7B6E6D0D0F3DEDCE4CECDCDB7B6E2CBCAEBD5D4D9C2C2EF
+ D9D8EDD7D6D6C0BFCDB6B5CDB6B5EAD4D1F4DCDBF3DBDAE9D0D0D5BEBDCDB6B4
+ DBC3C2EFD9D7DEC6C5CFB9B8D4BDBDE6CFCFE4CDCDD1BDBBD4BEBDEAD2D4E9D4
+ D2DFC7C7D2BDBBD2BDBBE6CFCFE7D1D0D2BDBDD4BDBBDBC4C3E7D1D0DBC5C5D2
+ BBBBD5BDBDEED7D6DCC3C2D0B6B5D2B9B7DCC1C0DBC0BECFB4B2D5BAB9E4CAC9
+ EAD0CEE7CECDE5CCCBDAC1C0D5BBBAE1C5C4ECD1D0E2C6C6D5B9B8DABFBEEED2
+ D1DFC3C2D8BBBAD8BEBDE3C6C5E3C5C4DEC1BFD9BDBBD9BEBDE3C6C5EACECDD8
+ BEBBD7BBB9DCC0BEEACCCAE7C7C6D8B7B5D9B8B6EECCCBDFBEBBD6B5B3D9B7B6
+ ECCAC7E0BEBDD8B6B4E4C2C0E7C3C2ECC7C5E5C0BEE2BDBBE3BFBBDCB7B6D9B4
+ B3DBB7B5DAB5B4E2BEBBE9C3C1E0BAB9DAB4B2E0B9B8E0B9B7DAB4B2E2BAB8E1
+ BAB8D9B2B0D9B3B1EDC5C4EAC4C1D9B3B1DAB3B0E3BAB8DBB2B0DEB4B2EBC1BE
+ EBC2BFE4BBB9E0B7B4DAB1ADDBB1AEE6BAB8ECC0BDEABFBBEBBFBBEABDBADBAC
+ AADCB0ADEAC1BEEBBFBDDEB0AEDCAEACEABAB8E6B8B5DCADAAE1B2AEE9BAB8DE
+ B2AEDBB0ACE1B4B1E6B6B3D9A8A5D9AAA7E3B6B3EEC0BDECBDBAEABAB7EBBBB8
+ DFB4B2DCB5B2E0B4B2E4B7B4DEB3B0DEB3B0DFB2AEDCACAADEB0ACE5BBB9E0B4
+ B2DCB0ACDCB0ACEDC2BFE4B9B6DCB0ACDBB0ADE3B8B6E7BDBADAADAADAACA9E4
+ B7B5E9C0BEECC3C0EFC4C2E0B5B3D9B0ADD9B0ACE0B5B3E6BBB9EABFBDDAB1AE
+ D9B1AEE1BAB7E5BFBDD8B4B2D6B1B0D7B2B0E1B9B7DEB5B4D8B2AED7B1AEE6C0
+ BEEBC5C4E7C2C1E6C4C1EECAC9EECBC9E2BEBBD6B2B0D7B1AEE3BEBBE6C2C1DB
+ B8B7D8B5B3DBB9B8DFBDBBD8B8B7DBBBBAE7C7C6E3C4C3D9BABAD8B9B8DABDBA
+ E2C2C1E7C9C7EACAC9DCBDBDD7B7B6D6B6B5E3C4C3EED0CED6B8B7D4B7B6D7BA
+ B9D6BAB9D9BDBDDCC1C0D7BDBDDEC3C2E0C5C4D6BBBAD6BBBAECD2D1EBD0D0D2
+ B9B8DAC1C0E4CAC9D5BBBAD7BEBDF2D7D6DFC4C3D2B9B8DEC5C4D8BFBED2B9B8
+ D2BAB8E9CDCDDEC3C1D2B8B6D0B5B5EFD4D2F5DAD9D0B6B5D0B6B5E7CDCCDEC4
+ C2DCC3C1D0B6B5D0B7B5EFD6D5E0C6C4D0B6B6D2BAB8ECD4D1DFC6C5D1BAB9D0
+ B8B7DEC5C4F0D9D8E6CFCFE3CDCCE5CFCEE1CCCBD0BBBBD5C0C0DECACAD8C6C5
+ DECCCCD9C7C6D7C5C5E7D7D7E5D5D2ECDBDBEAD8D9EDDCDCEFDEDCEEDCDBE7D7
+ D6D8C5C5D2C1C1D5C3C3E1CFCFECD9D8D4C1C1CFBFBFE2D1D0D8C6C6D0C0C0DB
+ CBCAE6D6D6D7C7C7D2C2C2E2D1D1E5D4D4D1C0C0D5C4C3DCCCCCE6D6D5D0C0C0
+ CFC0BFE1D0D0E9D8D9E0CFCFCFC0C0D0C1C1EBDADAEEDEDED8C6C6CFBEBED2C1
+ C10000000000000000E6D2D2CDB8B7CAB7B5DBC7C6EBD7D5D0BBBACAB7B5CDB9
+ B7D9C5C3D1BFBDCEBBBAD1BFBEE7D6D5EBD8D8D4C1C1CFBEBDD2C0BFCFBDBDCE
+ BBBBCFBDBBD9C5C5DECBCAD6C2C2D1BFBFD0BEBED0BEBDDAC7C6E9D6D5D9C5C4
+ CDB7B6CFBAB9DFC9C7ECD6D6CFB8B8CDB7B6E7D1D0F3DCDBE6D0CFD4BEBDCFB8
+ B8CDB6B5CFB7B8D4BEBDECD5D4F3DAD9ECD5D4EAD2D1E9D1D1D2BDBAD0BAB9D9
+ C2C2D5BEBECFB9B8DBC4C4ECD4D4D7C0C0D1BBBBD6C0BFEAD4D4EAD4D4D8C2C2
+ D2BDBDD2BDBDE1CACAE4CECDD5BFBED2BEBDDBC6C5D9C3C2D5BFBDD2BDBDD9C2
+ C1E7D0CFD2BBBAD0B6B5DFC4C3EACECCDEC2C1D0B5B3D6BBBAE2C9C7EBD2D1EB
+ D2D2E7CFCEE4CBCAD7BEBDD6BAB9D9BEBED8BDBBD6B9B8DEC1C0EBCFCEDABFBE
+ D8BBBADABEBEE7CBCAE9CDCCDBC0BED9BEBDD9BEBDE4C9C7E7CCCBD9BDBDD7BA
+ B8DCBFBEDEBEBDD9B9B8D8B8B7E2C1C0EECDCBD8B6B5D6B5B3DCBBBAEAC7C5DF
+ BDBAD8B6B4E3C0BEEAC6C4EDC7C6E9C5C2E7C3C1E9C4C3E2BEBBDAB6B5D9B5B3
+ DCB9B8EBC6C4EECAC6EBC5C3D9B3B1DAB4B2DAB4B2DAB3B0E0B9B7DAB5B3D8B3
+ B0DAB4B2E6C1BFE4BFBBDAB4B2DAB3B1E1B9B7E1B9B6DAB1ADE0B7B5EBC3C1E0
+ B7B5DAB2B0DCB3B1E5BAB8E7BDBAEBBFBDE4B9B7E4B8B5E7BAB8E1B4B2DCB2B0
+ DEB6B4DFB4B2DCAEACDCAEACE2B5B3EBBDBAE0B1ADDCADABDCB1ADDCB1ADDEB3
+ B1ECC1BFEDBEBADBAAA7D9ABA8E5B8B5EDBFBDEBBDBAEBBDBAEDBEBBE3B8B6DC
+ B6B3DCB3B1DCB1AEDCB1AEE0B6B3E5B7B5E0B1ADDCB0ACDEB5B2DFB4B2DCB1AD
+ DCB0ACE6BBB9E1B6B4DBB0ADDCB1AEEABFBDE6BDBADAAEABDAACAAE0B3B1E4B9
+ B7E4BBB8E5BBB9DAB1ADD9B0ADD9B0ADDBB2B0E5BBB9E0B5B3D9B1ADD8B0ADE5
+ BDBBE6C0BEDAB6B3D6B3B1D7B3B1DBB7B4D8B3B1D8B2B1DAB4B2EBC4C2ECC6C4
+ EAC5C2E6C2C0EAC6C3DFBBB9D7B5B3D6B3B1D6B3B1D9B5B4DFBABADCB9B7D8B5
+ B3E2BFBEECCAC9E7C5C4DEBDBBDABDBBD9BBBAD8BAB9DBBEBDE9CBCAE4C6C5EB
+ CCCCE9CAC9DABBBAD7B8B7D7B7B6DEBFBDE9C9C7DFC1C0D5B7B6D9BEBDD9BEBD
+ D7BDBDD7BDBBD7BBBADBC2C1D7BEBED6BBBAD6BEBEE2C9C9E7CECCD4B9B8D8BE
+ BED7BEBDD5BBBAD7BEBDE5CACAD6BDBBD2B9B8DFC5C5DCC3C2D2B9B8D5BBBAE2
+ C7C7D6BDBBD0B6B6D2B8B7EDD2D1F4D9D8D0B6B5D1B7B6E5CCCAE2C7C6DCC3C2
+ D0B7B5D0B7B7EDD5D4DEC4C3D0B6B6D5BBBAD9C1C0D0B9B8D0B7B7D4BBB9E9D0
+ CFF0D8D7ECD5D5E5CFCEE0CAC9E2CDCCD4BEBED4BFBED5C2C1D4C3C4E5D4D5E6
+ D5D6DACACADACBCBD7C6C7D5C4C5D8C6C6EBD9DAEEDEDEEDDBDBDBCBCBD2C1C1
+ D2C1C1DACACAE7D6D6E2CFCFCFBFBFCFBFBFF2DFDFF0DEDCD7C5C5D9C7C7DACA
+ CBD8C7C7DACACAE6D7D7DCCCCBD7C6C6D1C1C1D2C2C1D8C7C7D1C1C0D0C0C0E7
+ D7D8E7D7D7D2C3C2CFC0C0CFC0C0D4C4C4E3D2D2E1D0D0D1C1C1CEBDBB000000
+ 0000000000F8E3E2E7D4D2DECAC9F0DCDBF6E1E0F4E1E0E9D6D5DECCCBEEDCDC
+ EDDBDAE4D1D1E6D6D5EDDBDAEFDCDCE9D7D7E5D2D1DECCCCD5C2C2D2C0C0D7C4
+ C4E2CFCEE2CFCEE7D5D5DCCAC9D7C4C4E0CBCBE3D0CFE9D5D5EBD7D6E3CDCCE6
+ D0D0E6D1D0EDD8D7E6D1D0DAC4C4EDD8D6F3DEDCF2DAD9EAD4D2E2CBCAECD5D4
+ EDD6D6E7D0CFEFD9D7F0DAD8ECD4D2DCC5C4EBD5D4DFC9C7DCC6C5EBD4D4EAD4
+ D2E6CFCFECD6D6ECD7D6E6CFCFD9C2C2E5CFCEDCC7C6E6D0D0DFC9C7D8C3C3D8
+ C2C1E2CDCCE0CAC9DBC5C5DBC6C5E9D2D2EAD4D4E3CDCCDBC5C4EDD6D5EED7D6
+ E6CECCEDD4D2F0D7D6EFD7D5F2D8D7EAD0D0ECD1D1E9CFCEF0D8D6EFD6D6EFD7
+ D6EBD2D1E4CBCAE4CAC9E1C6C6E6CBCAE4C9C7EDD1D0EDD0CFE7CBCBE9CDCBE5
+ C9C7E4CAC7E9CBCAE0C4C3E4CAC9E2C7C6DEC3C1E9CECCE5C9C7E5C7C5E1C1C0
+ E5C6C5E0C0C0E1C2C0EACAC7EDCCCAE2C1BFDBBAB8DEBBBAE4C3C2E5C4C2E9C5
+ C3ECC9C6ECC7C5ECC7C5E7C2C1E5C1C0E9C5C4EBC7C6DCB9B7D9B6B4DFBBB8E7
+ C4C2E9C4C1EBC5C3E5BFBDE6C0BDE4BDBBE3BBBAE7C1BFE5BFBBE1BAB9E6C2BF
+ ECC7C4EDC6C4EAC3C0E6C0BEEBC3C1EAC1C0E3BAB8EBC3C1EDC5C3E4BDBAE5BD
+ BBEBC2C0EBC1BEE5BBB8E9BEBBEABFBBE4B8B6E9BDBAEBC0BEE5BBBAE3BBB8E5
+ B9B7E6B9B6E9BAB8ECBFBDEEC0BEEBBDBAEBBEBBEDC0BEECC1BFE3BAB7EDC1BF
+ EFC0BEE7B7B5E7BAB8E7BBB8EBBEBBEBBDB9EABBB9ECBFBBEBC1BFE5C0BDE6BD
+ BAEABEBAEABEBBEAC1BEEBBFBDEABBB9EABDBAE9BEBDE6BDB9EABEBBEDC2C0ED
+ C3C0ECC2BFE3B9B6EDC2BFEFC5C2EFC6C3EDC3C1E9BDBAECBFBBECC1BFEFC6C4
+ F4CBC9EEC4C2E5BBB9EAC1BFEAC0BEEBC1BFEBC2BFE9BFBDEAC2BFF2CAC7EFC7
+ C6EEC9C5EBC6C5EAC6C5ECCAC6E1BBB9E1BDBBE5C0BEEBC5C3ECC6C4E6C2C1DF
+ BBB9ECC9C6EBC9C6E5C4C1E5C4C3E3C0BFDAB8B7E0BDBAE4C1C0E5C3C2EBC9C7
+ ECCAC9ECCBCAEBCAC9EBCCCBE6C9C7DFC2C1EDCFCEEED0CFEBCDCCEED0CFEED0
+ CFE5C7C6EACBCAEACCCBE9CACAEACBCAEDCECDEACCCCEDD1D0EDD0CFE7CDCCE9
+ CECEEED4D2EFD6D4E6CDCCE1C7C6EBD1D0EDD4D2F0D6D5E9CFCDEED5D2EDD4D2
+ E7CFCEECD1D0F2D7D6ECD1D1E9CFCEF0D6D5F0D7D7EED5D4F0D7D6F3D9D7EBD1
+ D1E9D0CEF0D6D5F4D9D9F5DAD9D0B6B5D5B9B9F3D9D7F5DAD9F4DAD8D1B8B6D1
+ B9B7F4DADAF4DAD9E1C9C6ECD2D0EFD7D6D7BEBDE9D0CFE5CECDECD4D2EDD7D6
+ EBD4D2ECD6D5ECD6D5ECD7D6E7D2D2E3CDCDDBC7C7E3D0CFECDAD9EBDADAE0D0
+ CFD7C7C7D5C5C5D6C5C6D9CACAE6D6D6EAD9D8EAD8D8D9C9C9D9C9C9E4D2D2E9
+ D7D7E7D6D6E9D8D8E0CDCDE4D2D1F2E0E0F0DEDEDFCCCBEAD9D9EEDFDEECDBDB
+ E7D8D8EBDADBE9D8D8ECDBDBEEDEDEE5D5D5ECDBDBECDBDBE6D5D5F0DFDFEFDF
+ DEE7D8D8DBCCCCDBCCCCE4D4D4EBD9D9E5D5D5E5D4D2DBCBCA00000000000000
+ 00F7E4E3EBD8D7E9D7D6F2E0DFF2E0DFF2E0DFF2E0DFECD9D9F0E0E0F2E1E0F2
+ E0DFEEDCDBE7D7D6E5D2D1E3D1D1EBD8D9E7D6D5E0CECCE6D4D4F0DEDCECD9D9
+ ECD9D9F0DFDEEEDBDAE6D2D2ECDAD9E4D1D0E9D5D4F0DBDAF0DAD9E5CFCEE9D2
+ D1ECD6D5EBD5D4E0CBCADFC7C6E6D0CEE3CCCCD8C1C0DEC6C5ECD6D5EED7D6E0
+ CAC7EAD1D0ECD5D5E7D1D0E4CDCDE9D2D1E5CECEE6CFCFECD6D5E9D2D0DFC9C9
+ E4CECDEBD5D2DFC6C5D7C1C0E5CECED7C2C2E5CFD0E9D4D4EBD5D5E9D4D2EDD7
+ D7ECD6D6E7D1D0E2CDCCEAD4D4EDD6D6E6CFCFDEC6C6E9D1D0E2CBCAE1C7C7EC
+ D2D1EAD0D0EFD7D5F4DADAF5DBDBF0D7D5EDD4D2EFD7D5EDD5D4F0D7D6EFD7D6
+ EDD4D2ECD2D1E7CDCCE7CDCCE9CDCDECCFCFE7CBCAEACECDEDD1D0ECCFCFE7CD
+ CCE4C9C7E7CCCBEDD2D1EDD1CFE7CBCAE9CCCBEBCECCEACCCAE2C3C1ECCDCCEA
+ CBC9E5C6C5EBCAC9EDCCCBE9C7C5E7C7C5E2C2C0E0BFBDE7C5C4EECBC9EDCAC7
+ E9C4C2ECC7C6E5C2C0E7C4C2E9C6C4E9C6C4DBB9B7DAB7B6E5C3C1E5C2C0E6C3
+ C0E4BFBDE3BDBBEAC3C1EAC3C1E6C0BFE5BFBDE5C0BFE5C2BFE9C4C2E9C4C2E9
+ C3C1ECC6C4EDC5C2EDC4C2EAC1BFE6BFBEEDC6C4EDC5C2EAC1BFEAC0BFECC3C0
+ EAC0BEE7BEBBEBC0BEEABFBDE6BBB8EABEBBE9BEBBE5BDBAE9C0BEE9BEBAECBF
+ BDECBFBDEBBEBBEABBB9E3B6B3E9BBB9ECC0BEEBC0BEDEB5B3ECC1BFEFC0BEEA
+ BBB9EDC0BEE6BBB9E9BBB9E5B8B5E4B7B5EBBEBBEBC1BFEAC4C1EAC2BFECC0BE
+ ECC1BFEBC2BFEDC2BFEBBEBAE9BBB9EAC0BDE7BFBDEDC2BFEFC4C1EEC4C2EBC1
+ BFE9BEBBEEC3C2EFC5C3EFC6C3F0C7C4EFC4C1EFC2BFEEC2C1EFC5C3F4CCC9F3
+ CAC7EFC5C3ECC3C1EBC2C0E6BDBBEBC1C0F0C6C4EFC6C5F0C9C6EEC6C5EFC9C6
+ EECAC7ECCBC9ECCAC6E3BFBEE6C2C0E9C4C2EAC4C2EAC4C4E7C2C1DFBBB9EECB
+ C9EECCCBE9C6C5EDCBCAF0CFCEEFCDCCEECCCBEDCBC9EDCAC9ECCAC9ECC9C9EE
+ CCCBEECCCBEECECDEBCCCBE1C3C1EBCECDEED0CFE9CBCBEDD0CFEBCFCDDEC0C0
+ E9CBCAE9CCCCE5C6C6EECECDEFD1D0EDCFCEEDCFCEE7CCCBE7CCCBEDD2D1EFD5
+ D4EED5D4ECD1D1EBD1D0EDD4D2EACFCFF0D6D5F3D7D7F0D7D6F0D7D6F0D6D6F0
+ D7D6F3D9D8ECD4D1ECD2D1EDD4D2EED5D4EFD6D6EFD6D5EED5D4EAD1D1EBD1D1
+ E6CDCBEDD4D2F4D9D9D5BBB9D0B7B6EAD0CFF6DBDAEFD5D5D0B6B6DAC2C0F6DC
+ DAF6DCDAF3DAD8F0D8D8F2D9D8DFC7C6F2DAD8ECD6D5ECD4D4E7D1D1E4CECCEC
+ D6D6EFD9D8EFD9D9F0DAD9EED9D8E6D4D2E4D1D1EEDBDBECDADAD6C4C5DCCCCD
+ E7D7D8E4D6D5E1D1D1E9D8D9ECDCDBEDDEDEE1D1D1E6D5D5ECDCDBEDDBDBE4D2
+ D4E4D4D4E9D7D8E7D6D5F2DFDFE4D2D1D5C2C2ECDBDBEEDFDEEEDFDEE6D7D7EC
+ DCDBE9D8D8E9D8D8EEDFDEE6D7D6F0DFDFEEDEDEDFCECEECDBDBEFE0DFF0E1E1
+ F0E1E0E9D9D9EEDFDEEFE0E0EFDFDEEFDEDCEFDFDF0000000000000000EFDFDE
+ DCCBCAD1C0BFDECCCBDAC7C6D9C6C6D8C5C5D5C3C3E3D2D1EAD8D8EDDCDBF0DE
+ DEEDDCDBECDADAEFDCDBF0DEDEF0DEDCE0CECCDFCDCCEFDCDCEDDAD9EEDBDAF0
+ DFDEF0DFDEEEDBDAF0DCDBE9D7D6EAD6D6F3DEDCF0DBDAE5CFCEE1CBCAEDD8D7
+ EED8D7D4BFBED8C2C0DAC5C4E9D1D1E9D1D0EBD5D4EED7D7F2D9D8E3CBCAECD5
+ D4EDD8D6EBD5D6E9D2D2E5CFCEE4CFCDDCC6C5E4CFCEE4CECDE1CBCAE2CCCBE7
+ D1D1E2CBCBE3CCCBEED8D7E2CDCBE9D5D4EED9D8EBD5D5E6D1D0EDD8D7EDD7D7
+ EAD4D5E3CECDE9D2D2ECD5D5E6CFCEE9D1D1EDD6D5EDD5D4E0C7C5E9D0CFE7CF
+ CEEAD1CFEED5D5EFD7D7E6CDCDEAD0CFECD2D1E6CDCCEED6D5EED5D4E9CFCEEC
+ D1D0E9CECEE7CDCDECD1CFECD0CFE5CAC9E1C4C3E9CDCCEBCFCEE2C6C5DABFBE
+ DBC2C0EDD1CFE9CECCE4C7C6E3C5C4EACCCBE7C9C6E0C2C1ECCDCCE6C7C5E3C4
+ C3EECECCEECDCDEFCECDEFCFCEEBC9C7E4C2C1E7C5C3EFCCCAF0CCCBEFCCCAED
+ CBC9E9C6C4E3C0BFDFBBB9DBB9B8D9B8B6DCBAB8E7C5C2E9C4C2EAC5C4E7C2C0
+ E3BEBBEBC5C3EDC7C4EEC7C6E7C2C0E4BFBEE7C3C1ECC7C4EBC6C4EBC5C3ECC5
+ C4E9C2C0ECC4C1E9C1BFEAC4C1EBC5C3EDC5C3ECC5C2ECC4C1ECC4C1EAC0BEEA
+ BFBDECC2C0ECC2C0EABEBBE5B9B8E7BFBDEAC3C0EBC1BFEABEBBE9BDB9EABEBA
+ E9BDBAE4B7B5E3B6B4E3B7B4E4B9B7E6BBB9DCB5B2E9BEBAECBEBBE6B8B6EBBF
+ BDE6BBB9E9BDBAECBFBDEABDBAE6BAB7E3BAB7E2BEBBE1B8B6EABEBBE6BDB9E9
+ BFBDEAC0BEE7BAB8E9BBB9E9BFBDE3BAB8EBC1BEEEC3C2ECC2BFE9C0BEE3B9B6
+ EBC0BEE9BFBDE3BAB8E9C1BFE4BAB8E3B7B4E0B4B2E1B7B5E4BDBAEAC1BFE3BA
+ B8E0B7B5E6BEBAE3BAB8E0B7B5E3BBB8E6BFBDECC4C2E7C1BEECC6C5ECC7C5E7
+ C5C4EAC9C6E0BFBDE1BFBEE3C0BEE6C3C2E9C4C3E6C2C1DCB9B7E9C6C6ECCACA
+ E3C2C0DEBDBBEDCDCAEFCFCDEBCAC9EBC9C9EBC9C6EBC7C6E7C5C3E9C7C5E6C5
+ C4EACAC9EBCBCBE4C6C5ECCECEEDD0CFEACECDEED1CFEED0D0E9CBCBEED0CFEE
+ D0CFECCECDEFD1D1EFD1D0EDCFCEEFD2D1E9CDCDEBCFCEEACECEE9CFCEE9CFCF
+ E6CDCCE6CDCCEACFCFDCC2C1E1C7C6F0D7D5EED6D5EED6D4E5CBCBE6CDCCE9CF
+ CEE2C7C7E6CCCCDEC3C3DFC6C5E6CECDEBD2D2EAD2D2E5CECDE3CCCBE6CECDE4
+ CDCCEFD8D6DCC5C3D1BAB8D4BBBBE3CBCAD4BBBAD1B9B8E4CBCBF3DAD9F3DADA
+ F0D9D8EFD8D8EDD7D7E7D1D0ECD7D6E7D1D0F0D9D8EDD7D6DFC9C6EBD5D4E9D2
+ D0E9D2D0EDD7D6ECD6D5E3CFCFE0CDCDEBD8D9DECBCCD4C2C3D4C4C4E4D4D4E2
+ D1D0D9CAC9E5D6D5ECDCDCEDDEDEE5D6D5EBDADBEEDEDCEDDCDCEAD9D9EBDADA
+ E9D7D7E9D7D8F0DFDEDAC9C9D7C5C5E7D8D8E7D8D8D2C2C2D2C2C2DCCCCCE3D1
+ D1D8C7C7DECDCCDFCECEEDDEDEEDDEDCE6D7D6ECDBDBEEDEDEF2E1E1F2E2E2F2
+ E1E1F0E0E0F2E1E1F2E2E1F4E3E2F4E2E20000000000000000F3E1E0E5D4D2D9
+ C7C7EEDBDAF2E0DFF0DFDEEBD9D9E5D4D4E7D8D7ECDAD9ECDADAEFDCDCEFDEDC
+ ECDBDAEBD9D9EDDBDBECDADAD7C4C4D4C1C0DECBCAD9C6C6DBC9C7E9D7D6EBD8
+ D8E9D5D4E9D6D5E5D1D0E1CDCDEFDAD8F0DAD9E4CECDD6C1C0E9D2D1EAD4D2DE
+ C7C6E7D1D0E9D2D1EBD5D4ECD6D4EAD4D2ECD6D4EDD6D6DBC4C3E2CACAE6D1CF
+ E2CCCCE3CECDE6CFCFE4CFCEE2CBCBE4CECDEAD4D2ECD6D6ECD6D6EFD9D8EFD9
+ D8F0DAD8EFD9D8E6D0D0EAD5D5EFDADAECD7D7E2CECDE6D1D1EDD7D7E7D2D2E1
+ CCCCE3CDCDE7D2D1E3CDCCE4CDCCEED7D7F0D8D8EAD2D0EFD8D7EFD8D7EFD7D6
+ EFD7D6EFD7D6E7CFCFEAD0D0E5CCCBDBC2C0EDD4D2EDD4D4EBD0D0EED4D4EBD0
+ D0E7CECDEFD5D4EED2D1EDD1D0EBCFCEEDD1D0EFD4D4EDD4D2E9CECDE7CCCBEE
+ D2D2EED1D0EBCECDEBCDCDEBCDCCE0C2C1DCBFBEE3C5C4DFC0BFE0C1C0EECFCD
+ F0D1CFEECDCCF0D0CEEFCDCCEECCCAEDCAC9EFCCCBEECCCAEFCDCAECCAC7ECCA
+ C7E9C6C4DFBDBADAB9B6D9B8B6E2C0BFEBC7C5E9C5C3ECC7C5EDC7C5E9C2C0EA
+ C5C3EFCBC7F0CBC9EECAC9EAC4C3E7C4C2EDC9C6ECC7C5E9C3C2E7C1BFE0B9B7
+ E6C1BEE5BFBDE9C3C0EAC3C1E7C1BEE6BFBDE9C0BFEAC2C0E6BFBBEEC4C2EEC4
+ C3EEC3C2EDC1C0ECC2C0EDC5C3EEC6C5EDC4C2EDC1BFEBC0BEEEC3C0EFC3C1EE
+ C1C0ECBFBDEDC2C0EDC3C2ECC3C1DEB6B3E4B9B7EABDB9E6B9B7E9BEBAE0B5B3
+ E6BAB8EDC2BFECBFBDE9BDBAEAC1BEEAC4C2E9C1BFEDC2C0ECC2BFECC4C1EDC4
+ C2E9BEBBEABEBBE7BEBBE2BBB8E7BFBDECC3C0E7BEBBE6BEBBE5BBB9EDC3C1ED
+ C3C0EEC4C2EDC5C2E9BFBDEEC3C1EDC1C0E4BAB8E1BAB7E6C0BEECC5C2E3BAB9
+ E4BDBAE2B9B7E3BBB8EEC5C3ECC4C2ECC5C3EBC5C3EDC7C6EBC9C6EECBCAECCB
+ CBE9C7C6EAC9C7EAC7C6EAC6C6EAC6C4E5C2C1DCB9B7E5C3C1E5C4C3DCBBBADA
+ B9B9DFBEBDE4C2C2DFC0BEE5C5C4E7C6C5EAC7C6E9C6C5E9C7C6E6C5C4E7C6C5
+ E6C7C6E0C1C0E5C9C7E9CDCBE7CBCAEED1D0EBCECEE5CAC7EED1D0EED0D0E9CD
+ CDEED1D1F0D2D1EACCCBEFD2D1EBCECEEDD1D0ECD1D1E7CECEEACFCFEBD0CFEE
+ D5D4EED5D4D9C0BFDEC4C3EBD2D1EED6D5ECD2D1E7CFCDEAD1D0EAD0D0E4CCCB
+ E5CDCCE3CACAEAD1D1EAD2D1ECD5D5EED7D7EDD7D6EBD5D4E9D1D0EDD5D5F0D9
+ D7EED7D6D9C2C1D4BDBBD4BDBDD4BEBBD4BEBDE3CCCCE9D2D2E9D2D1EAD4D4EB
+ D5D4E5CFCEE4CDCDE5D0CFECD7D5F3DBDBF3DCDBEDD7D7F4DCDBF0DAD9F0DAD9
+ F4DCDBF0DBDAE9D5D5DBC9C7ECDAD8E9D5D6D4C2C2D4C3C4D5C4C4D4C4C4D9C7
+ C7E2D1D0EADADBEBDCDCE1D1D1DBCBCBE4D4D4E6D7D7DFCECEE6D6D6DFCDCDDC
+ CBCBEBD8D8D7C5C5D7C7C6D6C6C5D4C3C3D2C2C2D4C3C3E5D6D6E5D5D5DCCBCB
+ E2D1D1D9C9C9EEDEDEECDBDBEAD8D9EBD9D9E4D4D4EBDAD9EFE0DFEEDEDEEFDF
+ DFEFE0E0F2E1E1EFDFDFEFDEDE0000000000000000F4E2E1F2E0DFE5D4D2F3E1
+ E0F2E0DFEEDBDBEDDCDCEAD8D8EDDCDCE7D8D7E0CECEEAD8D8ECDADAE6D6D5EB
+ D8D9EBD8D9ECDAD9DECCCCD5C2C1D6C4C3E3D0CFDAC9C7DECCCBDFCDCBE4D0CF
+ E5D1D0E2CFCEE2CDCCE6D1D0F0DBDAEED9D7DFCAC9F3DCDBF0DBDAEDD8D7EED8
+ D7E6CFCED7C0BFE4CECDE2CBCAE9D1D0F2DAD9EBD5D4EED9D7EFDAD9EBD5D6E3
+ CECDE6D0D0E9D2D1E3CDCCECD6D6E9D4D2ECD6D5EFD9D9EED8D7EAD4D2F2DBDA
+ EFD9D8E5CFCEE5D0CFE6D4D1E5CFCFDCC7C7E7D4D1EEDAD8EAD5D4DBC6C5E5CE
+ CEE5CECEE2CBCADFC7C6EBD2D2E7D1CFDCC5C4E9D1D0E9D1D0E6CFCEE7CFCFEC
+ D4D2E6CDCDEED6D5E4CCCADCC3C2EDD2D2F0D6D5EDD4D2EFD5D4E5CBCAE3C9C7
+ EBD0D0E5CBC9E5CAC9E6CBCAEDD4D1EACFCEEACFCEE6CBCAE5CAC7EED1D0EFD1
+ D0EDCFCEEDCFCEEDCFCDE9CAC9E9CBCAEBCDCCEACBCAE4C6C5EDCCCAEACBC9E6
+ C6C4EECDCBEAC9C6EBC7C5E9C7C5E7C5C4E6C4C2E7C4C3EFCDCBEFCDCBE6C5C3
+ EAC7C6E9C6C4E4C3C1ECCAC7EAC7C6E9C5C4ECC9C6EDC7C6EAC5C3ECC7C5EECB
+ C9EECAC7EBC6C4DFBAB8E0BDBAEAC5C3E2BEBBE5C0BFE6C0BEE6C0BEE5BFBEE9
+ C3C0E9C3C1ECC5C3EAC3C1EAC3C0E9C1BEE7C0BDE1B8B6ECC2C0EFC5C3EEC3C2
+ ECC2C0E9BFBEECC5C3EBC3C1EBC1BFEBBFBDE4B8B6EDC2C0EEC2C0EBBEBDEBBF
+ BDEAC0BDEEC5C3EEC5C3E5BEBBEDC3C1EEC0BFEDC0BEEEC3C1E5BDBAE5BBB9ED
+ C2C0EBC1BEE9BDBAEBC3C0EAC5C2E4BEBAECC3C0EBC2BFEBC3C1EDC4C2E9BEBB
+ EABEBAEBC0BEE4BDBAEAC1C0EBC3C0E7C0BDEBC2BFE4BBB8EEC5C3EAC0BEEEC4
+ C3EDC5C3ECC4C2F2C9C6F0C5C3EFC4C2E6BFBDE1BAB9E7C2BFE9C1C0EAC3C1E6
+ C1BEE5BEBDECC5C4EAC3C1ECC4C2E9C3C2EAC4C4E6C3C2EBC9C6EBCAC7EACAC9
+ EAC9C6EAC7C7E6C4C3EAC6C4E9C6C4E2BFBEE9C6C5E7C4C3E1BFBEDCBDBAE1C1
+ BFE4C5C4E0C1BFE1C1C0E1C1BFE9C7C6E9C7C6EBCACAEFCDCDEFCFCEE6C6C4DE
+ BFBEE2C3C3DFC1C0E1C4C4ECD0D0E4C9C7DCC0C0E9CDCDEBCFCEE6CBC9EDD0CF
+ E7CACAE3C6C4E7CBCAE2C7C6EACECEEBCFCEEACFCFE7CDCCE7CDCDEDD5D4EDD4
+ D2DCC4C3E2CAC9ECD2D1EFD6D5EED5D5EED6D5F0D8D6EFD7D6EED6D6EDD6D5E7
+ D0CFE4CDCCE1CBCAE5CECEE9D4D2E4CDCDDFC9C9DBC5C4E5CFCEEDD7D6EDD8D6
+ E3CDCDDBC6C4E3CDCCE2CCCCE2CCCCE6D0CFEDD8D7ECD6D5EED9D8E7D2D1E5CF
+ CFE9D2D2E6D0D0EAD4D5F0DADAEED9D8E6D0D0F0DBD9EDD7D7EDD7D7F0DBD9EF
+ DADAECD8D7DFCBCBEBD7D6ECD9D8ECDADAE4D1D2DFCECEE3D2D2E4D4D2E2D0D0
+ EBDCDBEBDCDBE4D4D5E5D6D6EBDADBE9DADAE1D2D1ECDCDBEDDCDCF0DFDFF2E0
+ E0E9D8D8E6D7D7EADADAE7D8D8E5D6D5E7D8D7EFDFDFEEDEDEE5D4D2EFDFDEE6
+ D6D6E3D2D2D8C6C6D8C6C6D7C6C5D4C4C4D4C3C3DBCBCBEBD9D9E5D5D4ECDAD9
+ EFDEDCF2E0E0F4E1E00000000000000000E7D6D5E2CFCFD4C2C1E0CDCDE7D6D5
+ E3D2D1E3D2D1E1D0CFE5D6D6EBD9D9E4D2D2EEDCDBF0DFDEF0DFDFF0DFDEEDDB
+ DBECDAD9EBD8D9DECBCADFCDCBECD9D9EFDCDCECD9D9EBD7D8EAD7D7E7D5D4EE
+ D9D9F2DBDAEDD9D7F2DCDBF2DCDBECD6D5F5DFDEECD6D6F0DBD9F2DBDAEBD5D4
+ EBD5D4EDD7D6E7D0CFDFC7C7EAD4D2E3CCCCECD7D6F2DBDAEFDBD9EBD5D5ECD7
+ D7EAD5D4DBC6C5E4CFCFE3CDCDE4CECDECD7D6D8C3C2E4CFCFEEDAD9ECD6D6DF
+ CBC9E6D2D1EDD8D6EED9D8EAD5D4EAD4D5F2DADAF2DADAECD4D4EFD9D7F0D9D8
+ EBD4D4EAD2D2EED7D6ECD5D4E2CACAE6CECDEDD5D4EED6D5EBD2D2EAD0D0E3CA
+ CAEAD1D1EAD1CFE0C5C5EAD0CFEDD2D2ECD1D0F0D6D5EBD0D0EAD0CFEBD1D0E5
+ CBCBDCC1C0DCC2C1E7CFCDE1C6C5DCC3C1DCC2C0D7BDBAE2C5C4E9CCCAE6C9C7
+ E9CBC9EBCECDECCDCDE9CCCBEDCFCDEED0CFEACAC9EECECDE4C4C2E1C1BFE5C5
+ C3E6C4C4EAC9C6EECCCAEECDCBEFCECCE4C3C1EDCBCAEECDCBEBCAC7EECDCBEF
+ CECBECCAC9ECCAC9EBC9C6E9C5C4E7C3C1E9C4C2E5C2C0EAC5C3ECC7C6EAC5C3
+ EAC7C5DFBDBAE3C0BEEEC9C7EECAC7EBC6C4E9C3C1E4BEBBE9C3C1E5C0BEEBC5
+ C3EEC7C5EEC7C4EEC6C3EDC5C2EEC6C3DCB4B2E0B7B5EAC1BFEBC2C0E9BFBDE3
+ BDB9EAC4C1E2BAB9E3B9B7E1B6B4DEB4B2E9BEBBEEC2C1EABEBBEABEBDE9C0BD
+ EDC4C3EEC5C4EBC2C1EEC3C2EEC2C0EEC3C0EEC4C2E9C0BDEBC0BEECC2C0E7BD
+ BAE5B9B7EBC2BFE6C1BFE2BBB9EAC0BEE7BFBDEAC1BFECC4C1EAC0BDEABEBBEE
+ C3C1EEC6C4EFC7C5EEC6C4EDC3C2EFC6C4E7BEBBEEC5C3F0C7C4F2C7C6EEC5C4
+ EDC6C4F4CBC9F0C6C4EFC6C4EDC5C3E7C1C0EBC6C4EBC4C2EFC7C6EAC5C3E2BD
+ BBEAC3C1E3BEBBE6C1BEE7C3C1EAC5C3E6C2C1EAC6C5E6C5C3E9C9C7E7C9C6EA
+ C9C7E9C7C7EDCAC9EBCAC7E5C3C2EDCBC9EDCCCAEBCAC9E6C5C4E7C7C5E6C6C5
+ E1C2C0E2C2C1DFBEBEDFC0BFE5C4C4E6C5C4EECDCCEECECDEBCBCBE5C6C5EACC
+ CBE4C6C5E5C7C7EED1D0ECD0CFE4C9C7EDD1D0EDD1D0E7CCCBEED4D2E9CDCCE6
+ CAC9ECD0D0EBCECEEBCFCEEDD2D1E7CDCDE1C6C5E4CAC9E7CECDE3CBCADEC4C3
+ E9CFCFEBD1D0EFD6D5EED6D5EDD5D4EFD7D6F0D8D6EFD8D7ECD5D4E4CDCCE7D0
+ CFE6D0CFE2CCCBE5CECEE4CFCEE5CECFE2CCCBE2CCCBEED8D7EFD9D8EDD7D6E7
+ D0D0E7D2D1E6D1D0E4CECDE6CFCEEAD5D4E9D2D2EDD8D7E9D2D2E5CECDDBC5C4
+ D6C0BFD6C0BFDEC7C6DBC6C5DCC7C6E4CFCFE6D2D1EAD4D4EFDADAF0DBDBF2DC
+ DCEBD7D6E5D1D1E5D2D1ECDADAE5D4D4E2CFD0E9D7D7E7D6D7E4D4D4E9D8D8EA
+ DADAE4D5D5EAD9DAEDDEDCE9D9D9E2D2D4E6D7D7E5D4D4EFDFDEEFDFDEE7D8D8
+ E7D8D8EEDCDEEEDEDEE6D6D6E6D5D5F2E1E1F0DEDCEDDBDBEFDCDBF2DFDEF2DF
+ DFEBD8D9E2D0CFE2D0CFEAD8D8EEDCDBE7D7D7ECDAD9DBCBCAE9D8D7F6E3E2F6
+ E3E2F7E3E20000000000000000F2E0DFD2C1C1CEBBBDD9C7C6E0CDCDDACAC9E5
+ D4D2EAD8D9EDDCDCEDDBDBE5D5D5E9D8D8E3D2D1ECDBDAE9D8D7DAC7C6D0BFBE
+ DCCACAD8C6C6E1CDCDE9D7D6ECDAD9EDDAD9E1CECED5C2C1D2BFBEE6D1D1EDD8
+ D7ECD7D6F2DCDBF2DCDBF0DAD9F8E2E1F4DEDCF2DCDBF3DCDBF2DBDBF3DCDBF3
+ DCDBE2CCCBCFB8B8D4BEBDD1BBBAD4BFBFEFDAD9EBD5D6ECD7D7F0DBDBEED9D8
+ E2CCCBEBD5D5EDD8D7F4DEDCF4DFDFE5D0D0EDD9D8F2DCDBF0DBDBE7D2D1EDD8
+ D7F2DBDBF3DCDAECD5D5E6D0CFF3DBDBF3DBDAE7D1D1EDD6D5EDD5D5E9D2D1EC
+ D5D4EED6D6EBD4D4E2CCCBE7CFCFECD4D2E7CFCEE6CECDE9CFCFEAD0CFEAD0CF
+ ECD2D1E5CBCBEFD6D4EED5D4EAD0CEF0D6D5F0D6D5EFD6D5F0D7D6F0D7D6EDD5
+ D2F2D8D6F4D9D8EED4D2ECCFCEEDD0D0DCC0BEECCFCEF0D2D1EBCDCBE2C4C3EA
+ CCCBE2C5C4DEC0BEE1C2C2E9CCCAEBCCCAF3D2D0F0D0CEEBCAC9EDCCCBEBCBC9
+ E7C5C4EFCECCF0CFCDEFCFCDDEBDBAE9C9C5E6C6C4E3C3C1E7C6C4EAC9C6ECCA
+ C9ECC9C7ECCAC7EBC7C5E9C5C3DAB8B5DEBAB8EECCCAEECBCAEFCCCBEDCBC9E2
+ BEBDE6C3C1EFCCCAF0CCC9F0CBC9EBC4C3E4BEBBE2BDBAE1BDBAE5C1BEE7C3C0
+ EAC3C1EAC3C0ECC4C2EFC5C4E0B7B5E5BEBAE5BEBBE9BFBDE5BDBBEAC3C0EDC9
+ C7E3BBB9E5BBB9E6BEBAE0B6B4EAC1BFEDC2C1ECC1C0EBC1C0EAC1BEEDC5C4ED
+ C5C3E7C0BFEEC3C2EEC1C0EEC2C1ECC3C0E4BBB9E7BFBDECC2C1E4BAB8E0B6B3
+ EAC1BFE9C4C2E0B9B7EBC1BFECC3C1E9C0BEEEC6C4EDC4C2EEC3C1ECC2C0EFC6
+ C4F2CCC9F0C9C6ECC3C1EBC3C0DFB7B4E4BDBAEFC7C5F0C9C6EAC3C1F2CCCAF4
+ CDCBF3CAC7F4CAC7F3CBC9EDC6C5EDC7C5E3BEBBE9C3C2EBC6C4EAC4C3E7C2C0
+ E2BDBBE4C0BEE6C2C0ECC7C6EAC5C4EAC6C4E6C5C3EACAC7EACBC9EBCCCBE9CA
+ C7EDCBCAEDCACAE6C4C3ECCAC9ECCAC9ECCACAEBCAC9ECCBCBEBCCCCEDCECCEE
+ CFCDE7C9C6E4C5C3E5C5C4E3C3C2EAC9C7EECDCDE6C6C4E2C2C2E4C5C4D8BABA
+ DBBDBDEDD0CFECD0CFE4CAC9EDD1D0EDD2D2EFD5D4EED5D4E7CBC9E6CACAEBCE
+ CEEBCFCEEACECEEED2D1E7CCCBE6CACAE7CECDEDD4D2EACFCFDAC1C0E5CBCAE9
+ CFCEECD2D2EAD1D0E0C6C6EAD2D1EFD8D7EED6D6DFC7C5DCC5C4EAD4D5EDD7D5
+ EDD7D6EDD7D7ECD7D6EDD7D7E7D1D1E0C9C9EED9D7EFDAD8EED8D6EAD5D4EDD7
+ D7EDD6D6DFC9C9D5BFBFD8C2C2E9D2D2EDD8D8EBD5D4E3CDCDE4CECEE0CBCAE7
+ D1D1ECD8D7EDD8D8E9D4D2E6D1D1ECD6D6EDD8D8ECD9D8EFDBDAF2DCDCF0DBDB
+ ECD8D7EAD6D6ECDADAECD9D9E2D0D0E5D4D4E0CECEE0CECEE7D6D7E6D6D6DAC9
+ CAE3D1D0ECDADAE1CFCFD9C9C7D6C5C5D2C1C1DBCBCAE3D2D1DACACAE4D4D4E9
+ D8D9E7D7D6D7C6C6D9C7C7EBD9D9E5D2D2D7C4C4DCCBCAF0DEDCF3E0E0F2DFDE
+ E7D7D6E4D2D2ECDADAE6D6D5EFDEDCEDDBDBD9C7C6E3D1D0F7E4E3F6E2E1DFCC
+ CB0000000000000000F6E3E3D2C1C1CEBBBBE4D2D1F2E0DFE3D2D2EDDCDCEEDE
+ DCEAD8D9EBD9D9EEDEDCEFE0DFEDDADAF2E0DFF0DEDED7C4C4CEBDBBD8C6C6E4
+ D1D0E6D4D4EFDCDCF0DEDCF0DEDCE4D1D1CFBDBDCEBBBAE0CBCAE9D2D1EBD6D5
+ F2DCDBF2DCDBEDD8D7F9E3E1F7E0DFF3DEDCF0DBD9E7D1D0EFD9D8EED7D6D4BF
+ BDCFB9B8E6D0CED1BDBDD0BBBADFCAC9EBD5D4EBD6D6EFDAD9EFDADAE6D1D1ED
+ D8D8ECD7D7F3DEDCF4E0DEEAD5D2ECD7D6F0DBDAEDD9D9E6D1D0EFD9D9EAD5D2
+ ECD6D5ECD5D5E6D0CFF3DBDAF3DBDBE6CFCEEDD5D5EED6D6ECD6D4EDD6D4EFD9
+ D7EFD9D7EAD4D2EAD2D2ECD4D2ECD2D2ECD2D2EDD4D4EDD4D2E9CFCEE6CDCCDC
+ C2C2ECD1D1F0D7D6E7CDCCEED4D2EDD4D1F0D7D5F0D8D6EED6D5ECD4D2F3D8D7
+ F3D8D7EDD1D0F3D7D5F3D6D5F0D2D2F3D6D5F4D6D5F3D6D5F3D6D4F3D5D4ECCE
+ CDE4C7C5EFD1D0ECCDCBEECECEF2D1CFF0D0CEEECDCBF0CFCDEECDCCE9C9C6ED
+ CCCBEFCECCF2D0CFEFCECCEFCECDEECECCEFCFCDEFCFCDEFCDCCF0CECCEDCCCA
+ EECBC9ECCAC7E7C4C3D7B5B2D9B7B4F2CFCCF0CDCBF2D0CDEFCDCBDFBDBBE1BE
+ BBE9C4C2EFCBC9F2CCCAF2CCCAEBC5C2E9C4C2E9C4C2ECC7C5EEC7C5EFC9C6EE
+ C6C4F3CBC9F0C9C6E7C0BEECC4C2ECC4C1EDC4C3EAC2C0E9C3C1EFCAC7EDC5C4
+ EBC1BFEAC1BFE3BAB8EAC0BEEBC1C0EAC0BDE7BEBBE4BBB9EDC5C4ECC5C3E1BA
+ B8EAC0BFE9BEBAEDC3C0EDC3C1E4BBB9EDC3C1EFC6C4EDC2C1E7BEBBEDC5C4E9
+ C3C1E1BBB9EDC4C2E9C0BDEAC2C0EFC9C6F0C7C5F0C5C4E6BDBBE6BFBDEBC5C3
+ F0CAC7EEC6C4F4CCCAECC4C2F0C9C6F4CDCBF4CCCAF0CAC7F3CDCAF4CFCCF3CA
+ C7F4CBC9F4CCC9F3CCCAF3CECCE5C1C0EECAC7F0CCCAEECBC9EECAC9E3C0BFE3
+ BFBEE7C2C1E9C4C2E9C5C3EAC7C5EAC6C5EBCAC9EBCBCAEBCDCBE4C5C4E6C6C4
+ EACAC7DFBFBDE6C4C3EAC9C7EBCAC9E9C7C6EBCBCBEDCECBEECECCEDCECDE7C7
+ C6E6C9C7E7C9C7E1C2C0E2C3C1ECCBCBEAC9C7E4C4C3DCBEBDD6B7B6D6B9B8E9
+ CCCAECCFCEE7CCCBEDD2D2EFD5D4EFD6D4F0D6D5EDD1D1DBC0BFE9CDCCE9CDCC
+ E6CACAEDD2D1EBCECEECD0CFF0D5D5F3D6D6EFD5D4DFC5C4E4CBC9EED5D4EDD4
+ D4EDD4D4E0C7C7DFC6C5E7CFCFE7CFCFD6BEBED6C0C0E2CDCCECD6D5ECD5D5E7
+ D1D2E7D2D2EED8D8EDD7D6E3CDCDEDD7D6EFDAD8EED8D7EBD5D5EDD8D8EED9D8
+ E4CECED4BEBED2BDBDEFD9D9F3DCDBF2DADAEFDAD9F0DAD9EDD8D7F3DCDBF2DB
+ DBEFD9D9E9D2D2ECD5D5E9D2D2F0DAD9EDD8D7ECD7D6F2DBDAF3DCDBEAD5D4F2
+ DCDBF3DEDCF0DCDAEBD7D7ECD9D9EAD9D8EBD9D9EEDCDBECDBDBE2D1D1ECDADA
+ F2DFDFF2DFDFF2E0DFF0DFDEF2DFDFF2E1E0F0E1E1ECDBDBEEDEDEF0E1E0F0E0
+ E0E7D7D7E9D8D8EDDBDBF0DFDEDECDCCE7D6D5EAD8D7F0DEDEF0DEDCE9D8D7EC
+ D9D9E7D7D7E3D0D0F4E3E2F4E3E2DCCCCBE5D5D4F7E4E3F6E2E1DECBCA000000
+ 0000000000F6E3E2D4C2C1CEBBBBE1CECEF2E0DFE5D4D2ECDBDAE5D5D5DACAC9
+ DCCDCCE2D0D0E5D5D5E9D8D7EFDEDCF0DEDEDBC9C9CEBBBAD2C1C0D6C4C4E2D0
+ CFE9D7D6EBD8D8EEDBDBE5D2D1D1BFBFCEBABAE2CDCCE0CBCAD8C3C2D8C2C1DB
+ C5C4E5D0CFF3DEDCE7D1D0E2CBCAE0CAC9DBC6C5ECD6D6F0DAD9EDD8D6EDD7D7
+ F3DCDBE4CFCECFBABACFBABAE4D0CFEBD6D5ECD8D7EFDAD9E6D1D0EAD5D5E1CB
+ CBDCC9C7E6D1D0D9C4C4DBC6C5E3CECDDBC6C5D7C2C2E0CAC9D9C3C3DAC4C3DA
+ C4C3D7C0C0EED8D7F0DAD9E4CDCDE6D1D0DCC6C5E0C9C7E7D1D0F0D9D9F0D9D8
+ E2CBCAE7D0CFE7CFCEEED6D5F0D7D7EFD7D5E9D1CFE6CDCCE0C6C5D7BEBDDEC4
+ C3EAD1D0E6CCCCEBD1D0EBD1D0EBD1D0E3CBC9DFC5C4D8BFBEE5CBCAE9CECDE7
+ CCCBEFD4D1EBCECCE2C4C3E9CCCBF2D5D2F3D5D4F3D7D5F3D6D5E9CBCAE4C6C4
+ EBCDCBE7C7C6F0D0CFF0D0CEEECCCBE3C1C0E9C7C6DFBFBDE2C1C0E9C9C6E6C5
+ C4EBCBCAEBCBC9E7C7C6DFBFBEE7C7C5EFCDCCEECDCBE7C6C4E7C5C4EAC7C5ED
+ CAC7EECBC9D6B4B2DAB7B5F3CFCEF0CECCF2D0CEF4D0CEEECBCAEECBC9EECBC9
+ EFCCC9EDC6C4EEC9C6ECC9C5EDC9C6EECAC9EECAC7ECC6C4E0BAB7E1BAB8F3CB
+ C9F3CBC9E9C2C0EFC7C4EDC5C3EEC5C3ECC4C3E7C3C1EAC5C3E9C1BFE6BEBDE5
+ BBBAE3BAB8EAC1C0E6BDBBE5BBBAE9C0BEE3BBB8EAC2C1E0B9B7DFB8B6EAC0BD
+ EDC1BFF0C5C4EFC6C4E3BBB8EAC1BEEFC6C4EDC4C2EDC3C2EFC6C4EAC6C3EAC5
+ C3F0C7C5E3BBB8DCB5B3E6C1BEF2CBC9F4CAC7F0C7C5E1BAB7E0BBB9EDC5C4EF
+ C7C5F3CCCAEDC6C4E9C2C0ECC5C3EFC7C6EBC4C2F3CCCAF4CECCECC5C4ECC4C1
+ EAC2BFF3CCCAF3CECDEBC7C6E6C3C2EAC5C3F2CDCBF2CDCCEAC6C4EAC6C6EAC5
+ C4E5C2C0E0BDBBDEBAB9DEBBBAE1C0BFE9C9C7EDCECDDFC1BFE1C2C0E9C9C9E4
+ C4C3DCBBBAE3C3C2E9C7C7E3C3C2E3C2C2E4C5C4EDCECDEBCCCCDEC0BFE1C3C1
+ EECFCEE9CAC9EACAC9EFD0CFEECECEE4C5C4E5C6C5D5B7B6D5B7B6EBCDCDE7CA
+ C9E2C5C5E9CDCCE4CAC9E5CAC9EDD2D1F3D7D5E7CDCCF2D5D4EBCFCEE5CAC9E9
+ CECCDFC3C2E4C9C7EDD1D0F2D7D5EBCFCFDFC4C3E4CBC9EFD6D5ECD2D2EAD0D0
+ DEC5C4E4CDCBE9D0D0DFC7C6D6C0C0D6C0C0E2CCCCEAD4D5EAD5D4E1CBCCDBC5
+ C5E5CFCEE6D0D0DBC5C5E5CFCFE9D2D1DCC7C5DBC5C5E5CFCDEDD6D6E5CFCFD1
+ BBBAD0BBB9F0D9D8F4DEDCF4DEDEECD5D5E5CFCEE2CBCAECD5D5F0DAD9F0DAD9
+ E9D2D1DCC6C5DFC9C7E6D0CFDFCAC9DFCBCAE5D0CFE9D2D2E9D4D4DBC6C5E4CF
+ CFF2DCDBEED9D9ECD8D8EBD8D8EBD8D8EAD8D8EAD8D8E5D2D2EBD9D9F0DEDEED
+ DBDAE7D6D5E6D5D4F0DEDEEDDBDBE7D7D6E0CECFE1D0D0E5D5D4E5D5D5E0CECF
+ E4D2D2F2E1E0EDDBDBDCCCCBF0E0DFECD9D9EBD8D9EDDBDAE9D8D7F2E1E0ECD9
+ D9DAC7C7ECD9D9F0E0DFE5D5D4EFDFDEF8E6E5F9E6E5E3D0CF00000000000000
+ 00EFDEDED4C2C1CEBBBBCEBDBBD8C6C6D5C4C3D9C7C7D0BFBFD0C0C0D4C3C3D1
+ C1C1D0BFBFD0BFBFD8C6C6E6D6D5D2C0BFCDBBBAD5C3C2DCCBCBD4C2C1D4C1C0
+ CFBDBBDAC6C6E3D0CFD4C0C0CEBAB9D4BFBED0BDBACDB6B6CDB7B6D4BEBDD9C4
+ C3D7C1C0CDB7B6CFB8B7CFB8B7CFB9B8E3CDCCF0DBDAEDD7D7E6D0CFE9D2D0D1
+ BBBACFBAB9CFBBBAE5D0CFE9D4D2EEDAD9F3DEDEEDD9D8E5D0CFD2BDBDD1BDBB
+ DBC6C6D5C0BFD1BDBBD4BEBED9C4C3DBC5C4D9C3C3D4BEBDD5BFBDD4BEBDD2BE
+ BBE9D2D1F3DBDAEDD7D6E0CAC9D1BDBDD5BEBEE2CACBE9D2D1DBC4C3D5BDBBD5
+ BBBBD4BBBBD5BDBDE7CECDECD2D2E5CCCCD8C0C0D4BBB9D4BAB9D4BAB9D5BBBA
+ DCC4C2E9D0CEEED6D5EDD4D4ECD4D2EBD1D1E9CECCF0D6D4F0D4D1E9CDCCE4C7
+ C5D6BAB8D6B9B8D7B9B8D6B9B8DCC1BFF2D5D2EBCCCCD2B6B4D4B6B4D6B7B5D8
+ B9B7EECECDF3D2D0E6C6C4D8B7B6D8B8B6D8B8B6D8B8B7E2C2C0EACBC9EACAC7
+ EBCBC9D8B9B7D8B7B6DBBAB9E3C2C0DBBAB8D9B7B6D9B8B6DCBAB8ECC9C6EECB
+ CAD6B4B2D8B5B4E0BFBDD9B8B6D8B7B5EBC9C6E9C6C4E3C0BEDAB6B5D7B3B1D7
+ B3B1D7B3B0D8B5B3E3C0BEEBC6C4EFCAC7E3BEBBD5B0ADD6B0ACEEC7C4F4CDCB
+ EEC7C4EEC5C3EFC6C4EFC9C6E7C2C1DAB6B4DAB5B3DCB6B4DCB4B3E4BBB9E4BD
+ B9E0B6B4D8B0ACDBB4B1EEC5C4DEB6B5D9B3B1D9B4B2D9B3B1DEB4B3EFC4C2F0
+ C7C5E0B8B6D8B1AED9B2B0DCB4B2DBB3B0E0B7B4D7B0AED8B4B2EDC9C6F4CDCA
+ DCB4B1D6B0ACDBB5B3F4CDCBF2C9C7DFB6B4DAB3B2DAB5B3DBB7B4E5BEBDEEC6
+ C5DEB8B5D8B3B1D8B3B1DAB5B2DAB4B2EEC9C6F5CFCDE3BEBBD8B1B0D9B2B0F0
+ CAC9F3CECDE0BDBBD7B4B2D7B4B3EBC7C5F0CCCBECC9C7ECC9C7E9C4C3E1BEBD
+ D9B6B4D8B4B3D8B5B4D9B8B6E0BFBEE0C1C0D8BAB8DBBEBBECCDCCDFC0BFD8B8
+ B6DABAB9DFBEBDD8B7B5D7B7B6DABAB9EECECCE2C3C2D6B8B6D7B8B7EECFCEEF
+ D1D0EBCDCBEFD1CFEFD0CFEDCCCBE9C9C7D6B7B6D6B7B7EED0CFE3C4C4D9BBBA
+ D5B9B8D6BAB9D7BAB9D8BEBBECCFCEE7CCCBF2D6D4D6B9B9D1B5B4DCC1BFE5CA
+ C9E5CAC9F0D5D4EDD1D0D4B9B8D2B8B8DBC1C1ECD2D1E1C7C6D2B9B9D2BBBAD7
+ BEBEEDD5D5ECD5D4D6C0C0D6C0C0E4CECDE9D4D2E6D0D0D7C2C2D5C0C0D5C0BF
+ D8C2C2DCC6C6ECD5D6DFC9C6D1BBBAD1BBBAD5BEBEE1CACADCC6C6D1BBBAD1BD
+ BAEAD2D1ECD5D5ECD6D5D4BEBBCEB8B7D5BEBDF3DBDBF3DBDBE0C9C9D1BBBACF
+ B9B8D2BDBDD2BDBBCFBAB8D0BBBBD5C1C0DFCACAD1BEBBCFB9B8D5C0BFEDD8D8
+ EDD9D8EFDBDAEEDAD9EAD6D7EFDCDBEEDADAE9D6D7EDDBDBE1CECED2C0C0D2BF
+ BFD4C0C0D1C0BFCFBFBED1C0C0D5C3C3D1C1C1CFBFBFCFBFBED8C7C6E6D5D5E7
+ D7D6CDBDBBD2C1C0E5D4D2D5C4C3D0BFBED1C0BFD1C0C0E4D2D1DAC9C7CEBBBB
+ CDBBBAD9C7C6E3D0D0D7C4C4CEBBBBE5D4D2DFCCCB0000000000000000F2E0DF
+ D4C2C1CEBBBBD4C2C1F3E1E1E7D7D6D4C3C2D0BFBFD2C2C2F0E0E0E1CECFD0BF
+ BFD0C0C0EBD8D9F0DEDEDECCCBCDBBBAD9C6C5ECDAD9DCCBCACEBDBACEBABAEA
+ D7D7EDDAD9D1BFBFCCB8B7E6D1D0F2DEDCDBC5C4CBB5B4DEC7C6EFD9D8CFBAB9
+ CDB7B6E6D0D0D6C0BFCCB6B5CEB8B7E7D1D0D0BDBACDB7B6CDB7B6CFBAB9D2BF
+ BEE2CDCCE3CECDDCC9C9DAC5C4E7D4D2DFCBCACFBAB9CFBAB9E0CBCAF4DFDED4
+ BFBED1BDBDE2CDCCEDD9D8E6D0D0D1BDBDD4BEBDEAD4D2DFC9C7D1BDBDD5BFBE
+ F3DBDBEED9D7D6C1BFD1BBBBDBC5C4E1C9C7E2CCCAD2BBBAD6BEBEECD4D2DBC2
+ C1D2BAB9DBC4C3F0D8D7E2C9C6D2B9B9D9C0BFE7CFCEDEC4C3D2B9B9D8C0BEEE
+ D6D5F3DAD8F2D9D7F3D9D7F0D7D6EDD4D1F3D6D5F3D6D4E6CAC9D4B7B5D2B6B4
+ E7CBC9EED2D0D6B9B7D5B8B6EACCCBDEBFBDD2B3B2E2C3C2EDCDCCE3C2C1E9C7
+ C6EECFCDD9B9B7D5B5B3E3C3C1DFC0BEDBBBBAD7B8B6E9C9C7F0D1D0E9CAC7D8
+ B8B6D8B8B7E6C6C5E2C0BFD8B7B5DAB8B7E9C6C5EDCBC9ECCAC7E1BFBED6B4B2
+ D7B5B3E3C1C0DAB9B7D7B6B3D8B6B4E6C4C2D9B6B4D6B3B1DAB6B4EEC9C7DAB6
+ B4D5B1B0D8B5B2EFCBC9F6CFCEDCB7B5D5AEADD5AEADE6C1BFF4CDCBEEC6C4EF
+ C7C5EBC4C1E7C1BFDAB6B4D8B4B3DBB6B4E6BFBDE0B7B5E2BAB8DEB6B4D8B0AD
+ D7AEACE0B6B5E5BEBBD8B1AEDAB4B2E3BEBDDEB7B5D8B0ACDFB5B3EEC4C3D8B2
+ AED8B1AEE3BBBAE9C0BFDAB2B0DBB4B1D8B2B0D6B2B1EBC7C5F3CDCBE0B8B6D8
+ B2AEE4BFBBECC6C4E1B8B7D8B1AEE3BDB9E7C2C1D8B4B2E0B9B7F3CCCAE3BDBB
+ D8B3B1DEB8B7EAC3C1E0B9B7E9C3C1F0CCCAD9B5B3D8B2B1E0B9B7F2CCC9F4CE
+ CDDAB7B6D7B4B3D7B4B2EDCBC7F3CECDE9C4C3EAC7C6EDCBC9EDCBC9E1BEBBD7
+ B4B3DCBAB8ECCAC9E4C2C2DABABADEBFBEE5C7C6E9CBC9D8B9B7DABABAEACAC9
+ E3C3C2D7B7B6D7B6B5EBCBCAEECECDD8BAB8D6B7B6E1C3C2F2D2D1E7CAC9EACC
+ CBEECFCEEFD1D0EFD0CFDCBEBDD5B7B6D5B7B6EFD0CFEDD0CFD8BAB9D4B8B7E7
+ CAC9EDD2D1E2C6C5E1C5C3E4C9C7E4C9C6D0B5B4D0B6B4D5BAB9E0C4C3DCC1C0
+ EACECEE5CAC9D2B8B7D2B8B8DAC0C0ECD2D0F0D7D6D6BDBBD1BAB9DCC4C3EFD7
+ D6EDD6D5D6C0C1D6C0C1E2CDCCE9D4D4DBC6C6D5C0C0D9C3C2E0C9C7D4BFBED9
+ C3C2EED9D8F0DADAD1BBBBD1BBBADFC7C6EFD9D8E7D2D0D1BBBAD4BEBDF2DAD9
+ E9D2D1E4CECECEB8B7CEB8B7D0BAB9F3DBDAE9D2D1D4BEBDCFB8B8DBC5C4E9D4
+ D2D2BDBDCFB9B8D5C0C0EBD5D6E6D1D1CEB9B8D0BBBAE3CECDEBD5D5E9D4D2EC
+ D8D8F0DBDAEFDAD9F2DBDBF2DCDBE6D2D1E9D5D4CEBBBACFBDBDEBD7D7F2DEDC
+ D4C0C0CFBFBFE2D0D0F0DEDEDFCDCDCEBDBDDECBCAECDBDAE7D7D6D4C2C2CDBD
+ BBDCCACAE1CFCECDBDBBD4C3C2ECDBDADECDCCE5D4D4E3D1D0CFBEBDCEBBBBF2
+ E0E0EAD8D7CEBBBBCEBAB9EFDCDBEFDEDE0000000000000000E5D2D2D2C1C0CE
+ BBBBE2CFCFF5E3E2E7D6D5D8C6C6D0BFBFD5C4C3EEDEDCECDADAD0BFBFD4C2C2
+ EFE0DFF2E0E0E1CECDCDBBBAD6C3C3F0DFDEEBD8D8CEBDBACDBAB9F3E0E0EDDA
+ DAD2BFBFCCB7B6F2DCDBF2DCDBF2DCDBCBB5B4D7C1C0E4CFCECBB6B4D5C0BFF9
+ E3E2F4DFDECFB8B7CBB5B4E2CDCCCDB7B6CCB6B5D9C2C1EBD6D4EFDAD9F3E0DE
+ F3E0DFEBD6D7E2CDCBE5D1D0D5C1C0CEBAB9CFBABADFCAC9EDD8D8D5C0C0D1BD
+ BBE7D2D2E5CFCFDAC4C4D1BBBBD6C0C0E4CECDDCC7C6D2BDBDD1BBBBEED9D8E6
+ D1D0D4BEBDD1BBBAE7D2D1EAD4D2DEC6C5D2BAB9E7D1CFF2D9D8F0D9D7D2BAB9
+ D5BEBDF0D8D7DCC4C3D2B9B9EAD2D1EDD4D4EED5D5D2BBBAD2BABAEBD2D2F0D8
+ D6F0D8D6F2D8D7EED5D4E5CAC7EBCECCE7CBC9E0C3C2D1B4B4D2B6B4EDD0CFF3
+ D6D4DFC2C0D1B4B3DBBDBADEC0BFD2B5B3DEBFBEE3C3C2E7C9C6F3D2D0EDCCCB
+ D5B6B4D5B5B4EFCFCEE6C7C5E4C5C3D7B8B6DBBDBBF0D1D0EBCCCBD7B8B6D9BA
+ B8E5C5C3E7C6C5D8B7B5D9B8B6E6C5C3E9C6C4EECCCAE7C6C4D6B5B3D9B8B6EF
+ CFCDDFBDBAD8B7B5D6B5B3DEBBB9D8B6B4D6B3B1EAC5C3F3CFCCE7C4C3D5B1B0
+ D6B2B0E9C4C3F3CECCD8B3B1D6B1AED5AEADDFB9B6F7CFCDEFC9C6EEC5C3E0B9
+ B6EBC3C2E4BFBDD7B4B2E9C2C0EBC3C1E7C0BDECC4C2EAC2C0D8B1ADD8B1ADF0
+ C6C5EDC5C4D7B1AEE0BAB8EAC5C2ECC5C2D9B1B0DAB1AEF2C9C6DEB6B5DAB4B1
+ EFC7C5F3CBC7EBC3C1F0C7C5EBC3C2D6B2B0EFCCCAEBC5C4DAB3B2DAB4B2EFCA
+ C7E9C3C1D9B2B1E0B7B5F2CBC9F5CFCDDFBAB9DAB5B3F4CDCCF2CBCAD9B5B3E0
+ BBB9EAC3C2E2BDBAF3CDCBF3CECCD9B6B3D8B4B1E9C2C0EEC9C6F0CBCAD8B4B3
+ D8B6B4D8B5B4DFBDBAF2CFCDE9C6C5EBC9C7E9C6C4ECC9C9E9C6C5D8B5B4DFBD
+ BBECCAC9DEBDBBE3C3C1EECFCEEBCDCCDFC2C1D7B9B7E3C3C2E7C9C7E3C3C2D8
+ B8B6D9B9B9EDCDCCEECECDD6B7B6D6B7B6EED0CFF3D4D2EED0CFEDCFCDE5C9C7
+ E5C7C6E9CAC9D7B8B7D5B7B6D5B7B6DEC1C0E9CCCBDBBFBED8BAB9EBCFCFF2D6
+ D4F0D4D2ECD0D0E2C6C5E7CCCBD0B6B4D5B8B8D4B8B7E5C9C7E3C9C7E0C5C4D6
+ BDBBD2B9B8D5BAB8D5BAB9DCC2C0E4CBCBDCC3C2D1BAB9E3CAC9ECD4D4E7D1D0
+ D6C0C0D7C1C1E6D0D0EDD7D7D6C1C0D6C1C1DCC6C6EAD4D4D9C2C1D4BFBEE9D4
+ D2ECD6D4D6C0BFD1BBBBE6D1D0F0DBD9EAD4D4D1BBBAD7C0C0F5DFDEEFD8D8E9
+ D2D1CEB8B7D4BEBBD1BBBAEFD9D8F3DCDBCFB9B8D0BAB9F3DCDBEBD5D4D7C2C1
+ CEB9B8E0CBCAEAD6D6DFCBCACEB9B8D2BFBDE1CBCAE7D1D1DBC7C6E3CECEE9D4
+ D2E6D2D0E9D4D2E9D4D2E6D1D1D4BEBDCBB5B4CEB8B9F2DAD9F2DEDCE0CBCBCE
+ BBBBE7D6D4F0DFDEE7D5D5CDBBBAECDAD9ECDADAECDADAD1BFBFCDBDBBECDADA
+ EDDCDBCFBFBEDCCCCCEFDEDEEBD9D9F4E3E2F3E2E2D1C1C1CEBDBDE7D7D7D4C2
+ C1CFBDBBE9D6D5F4E1E0F3E0DF0000000000000000F2E0E0D9C7C6CEBBBBEBD8
+ D7F5E3E2EFDEDCEBD8D8D0BFBFD6C4C4ECDBDAE9D8D7D0BFBFD4C2C2E9D7D7F3
+ E0E0E4D0D0CDBBBADAC7C6EFDCDBEDDADACFBDBBCDBAB9F3E0E0EAD7D6D0BDBB
+ CBB6B5E7D2D1D9C4C3DBC6C4CCB6B5D1BDBBD8C3C2CBB6B4D7C1C0F4DFDEF0DA
+ D9CFB8B8CBB5B4D5BFBECFB8B8EAD5D4F6DFDEF7E1E0F6E0DFF3DFDFF3DFDFF5
+ E0E0F3DEDEF4E0DFE5D1D0CEBAB9D2BFBEECD7D6EFDADAD7C2C2D1BDBBEAD5D4
+ EED9D8E4CECDD1BBBBDAC4C4ECD8D7DBC6C5D2BEBDD1BBBBF3DCDBEDD7D6D6C0
+ BFD1BBBAEBD4D4E9D2D1DAC3C1D2BAB9ECD4D4EED7D6EDD5D5D2BABAD5BBBBEC
+ D2D2D9C1C0D2BAB9DCC5C4DEC6C6E3CACAD2BBBBD2BBBAE3CBCBE4CBCBE7CECD
+ EFD6D4EDD4D2EBCFCDECCFCDF3D7D5EACCCBD1B4B4D2B7B5E5C9C6EED1CFE6C9
+ C7D1B4B3EACCCAF3D5D4DABBBADEBDBBE5C5C4EBCCCAF5D5D4F3D2D0D5B6B4D6
+ B6B5F3D2D1E9CAC7E2C3C1D7B8B6E0C2C1F0D2D0EDCDCCD7B8B6DBBDBAEDCCCB
+ EFCFCDDCBDBAD7B6B4DAB8B7EBCAC9F4D1CFEFCDCCD6B5B3DFBFBDF4D2D0F0CF
+ CDDCBBB9D6B5B2E2C0BEDBB8B6D6B3B1F3D0CDF5D2CFF5D1CFD5B0B0D8B4B2F2
+ CCCADFBAB8D5AEADDAB4B2D5AEACD5AEABE7C1BFECC4C2EEC6C4E2BAB8EAC4C1
+ EECCC9DAB6B4DCB6B4E4BBB9EEC7C5F3CBC9F0C9C7D9B3B1DAB2AEF3CBC9E7C0
+ BFD6B1AEEFCAC7F0CCCBF0CBC9DBB4B2DBB2B1F3CBC9EBC4C2DAB5B2E2BBB9EC
+ C5C2ECC4C3F0C7C6EFC9C6D7B3B2E4C1BFEDC7C6DAB4B1E9C3C1F4CFCCE0BBB8
+ D8B2B0EFC7C5EAC2C0F0CCCAEFCCCAD8B4B2EFCBC7F4CECCE0BBB9DEB9B8E7C3
+ C1EBC5C3F4CFCCF4CFCEDBB7B6D8B4B3EEC7C5E5C1BFE1BDBAD7B4B3DAB9B7DB
+ B9B8D9B7B6EECBCAF2CECDEECDCBE5C3C3EECCCAEAC7C6D8B5B3D8B6B3D9B8B7
+ DAB9B8E9C9C7E6C7C6E7CAC9DABDBBD7B8B7EBCCCBEECECEEBCCCCD8B8B7D9B9
+ B9F0D0CFF3D2D1D7B7B6D6B7B6EED0CFF0D2D1EED1D0ECCECEEED1D0EFD2D1DE
+ C1C0D6B7B6DABBBADBBDBBD7B9B8E2C3C2ECCDCDDBBEBDDBBEBDE4C7C5F3D7D5
+ F3D6D5E6CBC9D7BDBBD4B9B7E0C4C4D6BBB9E4CAC7F3D7D6E7CDCBD2B8B7D7BB
+ BADCC2C0D4B9B8D6BBBAE7CDCCDEC4C4D1B9B9E3CBCAE6CECDE2CBCAD6C0C1D8
+ C2C2E3CDCDE4CECDD5BFBEDCC6C6DAC4C3EAD2D4E2CCCCD4BEBEE2CCCCEFD8D8
+ DCC6C5D2BDBDE6D1D0F2DBD9E6D1D0D1BBBAD5BFBEF3DCDAECD5D5DBC5C4D5BE
+ BDECD6D6D6C1BFEED8D7F4DFDECFB9B8D0BBBAF3DEDEF3DBDBDFCAC9CEB9B8E0
+ CBCAECD8D7DAC6C5CEB9B8D4BFBFECD7D6F2DCDCF0DBDAEFDAD9E7D2D2E6D1D0
+ E7D2D1EAD6D6F4DFDED8C3C2CBB5B4CEB8B7E2CBCAD4BBB9CFB8B7CBB6B5E6D1
+ D1E7D5D4D8C5C4CDBBB9E7D5D5EEDCDBE7D6D5D2C2C1CEBDBBF0DFDFF2E0DFD4
+ C3C3D2C2C2D6C5C4E9D8D7F4E2E2EFDFDED1C1C0CDBDBBD1BFBFCEBBBBD8C5C4
+ F6E3E2F8E4E3F2DFDF0000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000}
+ end
+end
diff --git a/apps/windoze/CBuilder5/BibleCS/SplashPage.h b/apps/windoze/CBuilder5/BibleCS/SplashPage.h
new file mode 100644
index 0000000..47bb0a9
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/SplashPage.h
@@ -0,0 +1,25 @@
+//---------------------------------------------------------------------------
+
+#ifndef SplashPageH
+#define SplashPageH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ComCtrls.hpp>
+#include <ExtCtrls.hpp>
+#include <Graphics.hpp>
+//---------------------------------------------------------------------------
+class TSplashPg : public TForm
+{
+__published: // IDE-managed Components
+ TImage *Image1;
+private: // User declarations
+public: // User declarations
+ __fastcall TSplashPg(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TSplashPg *SplashPg;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/BibleCS/StudyProfessor.cpp b/apps/windoze/CBuilder5/BibleCS/StudyProfessor.cpp
new file mode 100644
index 0000000..0456bc8
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/StudyProfessor.cpp
@@ -0,0 +1,16 @@
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+
+#include "StudyProfessor.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TForm3 *Form3;
+//---------------------------------------------------------------------------
+__fastcall TForm3::TForm3(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder5/BibleCS/StudyProfessor.dfm b/apps/windoze/CBuilder5/BibleCS/StudyProfessor.dfm
new file mode 100644
index 0000000..70d85f5
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/StudyProfessor.dfm
@@ -0,0 +1,44 @@
+object Form3: TForm3
+ Left = 363
+ Top = 103
+ Width = 616
+ Height = 685
+ Caption = 'Form3'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Panel1: TPanel
+ Left = 0
+ Top = 0
+ Width = 608
+ Height = 73
+ Align = alTop
+ Caption = 'Panel1'
+ TabOrder = 0
+ object Edit1: TEdit
+ Left = 4
+ Top = 4
+ Width = 265
+ Height = 21
+ TabOrder = 0
+ Text = 'Edit1'
+ end
+ object RadioGroup1: TRadioGroup
+ Left = 280
+ Top = 4
+ Width = 185
+ Height = 57
+ Caption = 'Research Type'
+ Items.Strings = (
+ 'Simple Study'
+ 'Indepth Research')
+ TabOrder = 1
+ end
+ end
+end
diff --git a/apps/windoze/CBuilder5/BibleCS/StudyProfessor.h b/apps/windoze/CBuilder5/BibleCS/StudyProfessor.h
new file mode 100644
index 0000000..aa808b0
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/StudyProfessor.h
@@ -0,0 +1,25 @@
+//---------------------------------------------------------------------------
+
+#ifndef StudyProfessorH
+#define StudyProfessorH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+//---------------------------------------------------------------------------
+class TForm3 : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TEdit *Edit1;
+ TRadioGroup *RadioGroup1;
+private: // User declarations
+public: // User declarations
+ __fastcall TForm3(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TForm3 *Form3;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/BibleCS/Sword.BMP b/apps/windoze/CBuilder5/BibleCS/Sword.BMP
new file mode 100644
index 0000000..16501a4
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/Sword.BMP
Binary files differ
diff --git a/apps/windoze/CBuilder5/BibleCS/back.bmp b/apps/windoze/CBuilder5/BibleCS/back.bmp
new file mode 100644
index 0000000..e1f0f93
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/back.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/BibleCS/biblecsmgr.cpp b/apps/windoze/CBuilder5/BibleCS/biblecsmgr.cpp
new file mode 100644
index 0000000..04822fc
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/biblecsmgr.cpp
@@ -0,0 +1,112 @@
+//---------------------------------------------------------------------------
+#include "BibleCSMGR.h"
+#include <swconfig.h>
+#include <markupfiltmgr.h>
+#ifdef _ICU_
+//#include <utf8arshaping.h>
+#include <utf8bidireorder.h>
+#include <utf8transliterator.h>
+#endif
+//---------------------------------------------------------------------------
+BibleCSMGR::BibleCSMGR(TModInstFrm *iModInstFrm) : SWMgr(0, 0, false, new MarkupFilterMgr(FMT_RTF, ENC_RTF))
+{
+#ifdef _ICU_
+// arshaping = new UTF8arShaping();
+ bidireorder = new UTF8BiDiReorder();
+ transliterator = new UTF8Transliterator();
+#endif
+ ModInstFrm = iModInstFrm;
+ Load();
+
+ OSVERSIONINFO osvi;
+ memset(&osvi, 0, sizeof(OSVERSIONINFO));
+ osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+ GetVersionEx(&osvi);
+ platformID = osvi.dwPlatformId;
+}
+
+
+BibleCSMGR::~BibleCSMGR()
+{
+#ifdef _ICU_
+// if (arshaping)
+// delete arshaping;
+ if (bidireorder)
+ delete bidireorder;
+ if (transliterator)
+ delete transliterator;
+#endif
+}
+
+
+void BibleCSMGR::AddRenderFilters(SWModule *module, ConfigEntMap &section)
+{
+ string lang;
+ ConfigEntMap::iterator entry;
+
+ lang = ((entry = section.find("Lang")) != section.end()) ? (*entry).second : (string)"en";
+
+ if (module->Direction() == DIRECTION_RTL) {
+#ifdef _ICU_
+// if (!strnicmp(lang.c_str(), "ar", 2)) {
+// module->AddRenderFilter(arshaping);
+// }
+ if (platformID == WIN9X || (strnicmp(lang.c_str(), "he", 2) && strnicmp(lang.c_str(), "ar", 2))) {
+ module->AddRenderFilter(bidireorder);
+#endif
+ }
+ }
+ SWMgr::AddRenderFilters(module, section);
+}
+
+
+char BibleCSMGR::AddModToConfig(int conffd, const char *fname)
+{
+ SWConfig modconf(fname);
+ SectionMap::iterator section;
+ AnsiString abouttext = "";
+ bool logflag;
+ TMemoryStream *RTFStream = new TMemoryStream();
+ char retval;
+
+ section = modconf.Sections.begin();
+
+ ModInstFrm->ModText->Caption = "";
+ ModInstFrm->ModText->Caption = ModInstFrm->ModText->Caption + "Found new module [ " + (*(*section).second.find("Description")).second.c_str() + " ]. Installing...";
+
+ abouttext = abouttext + "{\\fs20\\cf0 " + (*(*section).second.find("About")).second.c_str() + " }";
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(abouttext.c_str(), abouttext.Length());
+ RTFStream->Position = 0;
+ ModInstFrm->AboutText->Lines->LoadFromStream(RTFStream);
+ delete RTFStream;
+
+ ModInstFrm->ShowModal();
+
+ logflag = SWLog::systemlog->log;
+ SWLog::systemlog->log = false;
+ retval = SWMgr::AddModToConfig(conffd, fname);
+ SWLog::systemlog->log = logflag;
+
+ return retval;
+}
+
+signed char BibleCSMGR::Load () {
+ signed char retval = SWMgr::Load();
+#ifdef _ICU_
+ optionFilters.insert(FilterMap::value_type("UTF8Transliterator", transliterator));
+ options.push_back(transliterator->getOptionName());
+#endif
+ return retval;
+};
+
+void BibleCSMGR::AddGlobalOptions (SWModule * module, ConfigEntMap & section,
+ ConfigEntMap::iterator start,
+ ConfigEntMap::iterator end) {
+
+ SWMgr::AddGlobalOptions(module, section, start, end);
+#ifdef _ICU_
+ module->AddOptionFilter(transliterator);
+#endif
+};
+
diff --git a/apps/windoze/CBuilder5/BibleCS/biblecsmgr.h b/apps/windoze/CBuilder5/BibleCS/biblecsmgr.h
new file mode 100644
index 0000000..56dc746
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/biblecsmgr.h
@@ -0,0 +1,31 @@
+//---------------------------------------------------------------------------
+#ifndef biblecsmgrH
+#define biblecsmgrH
+#include <swmgr.h>
+#include "ModInstForm.h"
+//---------------------------------------------------------------------------
+
+enum PlatformIDs { WIN32S = 0, WIN9X, WINNT, WINCE };
+
+class BibleCSMGR : public SWMgr {
+ TModInstFrm *ModInstFrm;
+// SWFilter *arshaping;
+ SWFilter *bidireorder;
+ SWFilter *transliterator;
+ char platformID;
+
+protected:
+ virtual char AddModToConfig(int conffd, const char *fname);
+ virtual void AddRenderFilters(SWModule *module, ConfigEntMap &section);
+ virtual signed char Load ();
+ virtual void AddGlobalOptions (SWModule * module, ConfigEntMap & section,
+ ConfigEntMap::iterator start,
+ ConfigEntMap::iterator end);
+
+public:
+ BibleCSMGR(TModInstFrm *iModInstFrm);
+ virtual ~BibleCSMGR();
+};
+
+#endif
+
diff --git a/apps/windoze/CBuilder5/BibleCS/bookmark.bmp b/apps/windoze/CBuilder5/BibleCS/bookmark.bmp
new file mode 100644
index 0000000..4b6df0c
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/bookmark.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/BibleCS/bookmarkfrm.cpp b/apps/windoze/CBuilder5/BibleCS/bookmarkfrm.cpp
new file mode 100644
index 0000000..4e4fe1d
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/bookmarkfrm.cpp
@@ -0,0 +1,221 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "bookmarkfrm.h"
+#include <swconfig.h>
+#include <dirent.h>
+#include "mainfrm.h"
+#include "newbmfilefrm.h"
+#include <io.h>
+#include <dir.h>
+
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TBookmarksfrm *Bookmarksfrm;
+//---------------------------------------------------------------------------
+__fastcall TBookmarksfrm::TBookmarksfrm(TComponent* Owner)
+ : TForm(Owner)
+{
+ SWConfig *bookmarks;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ TTreeNode *node;
+
+ DIR *dir;
+ struct dirent *ent;
+ string conffile;
+ bmdir = "";
+
+ bmtree->Items->Clear();
+
+ if ((sit = Form1->optionsconf->Sections.find("Bookmarks")) != Form1->optionsconf->Sections.end())
+ bmdir = ((eit = (*sit).second.find("Directory")) != (*sit).second.end()) ? (*eit).second : (string)"";
+
+// Add Personal Bookmarks first, or if they don't exist, ADD A BLANK BRANCH first in the tree
+// --------------------------------------------------------------------------
+
+ if (bmdir == "")
+ bmdir = "./bookmarks/";
+
+ if (access(bmdir.c_str(), 0)) { // directory does not exist
+ _mkdir(bmdir.c_str());
+ }
+
+ conffile = bmdir + "personal.conf";
+ bookmarks = new SWConfig(conffile.c_str());
+ if ((sit = bookmarks->Sections.find("ROOT")) != bookmarks->Sections.end()) {
+ if ((eit = (*sit).second.begin()) != (*sit).second.end()) {
+ node = bmtree->Items->AddObject(bmtree->Selected, (*eit).second.c_str(), *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ AddSection(bookmarks, bmtree, node, (*eit).first.c_str());
+ }
+ }
+ else bmtree->Items->AddObject(bmtree->Selected, "Personal Bookmarks", *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ delete bookmarks;
+// --------------------------------------------------------------------------
+
+// Add all other bookmark files ---------------------------------------------
+ if (dir = opendir(bmdir.c_str())) {
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, "personal.conf")) && (strcmp(ent->d_name, "."))&& (strcmp(ent->d_name, ".."))) {
+ conffile = bmdir;
+ conffile += ent->d_name;
+ bookmarks = new SWConfig(conffile.c_str());
+ if ((sit = bookmarks->Sections.find("ROOT")) != bookmarks->Sections.end()) {
+ if ((eit = (*sit).second.begin()) != (*sit).second.end()) { // Currently supports only ONE topsection per file because on save, each topsection designates which file to rewrite
+ node = bmtree->Items->AddObject(bmtree->Selected, (*eit).second.c_str(), *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ AddSection(bookmarks, bmtree, node, (*eit).first.c_str());
+ }
+ }
+ delete bookmarks;
+ }
+ }
+ closedir(dir);
+ }
+}
+
+
+__fastcall TBookmarksfrm::~TBookmarksfrm() {
+ list <String *>::iterator it;
+
+ SaveBookmarks();
+
+ for (it = bmfiles.begin(); it != bmfiles.end(); it++)
+ delete *it;
+}
+
+
+//---------------------------------------------------------------------------
+
+void TBookmarksfrm::AddSection(SWConfig *config, TTreeView *tree, TTreeNode *parent, String section)
+{
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ TTreeNode *node;
+
+ if ((sit = config->Sections.find(section.c_str())) != config->Sections.end()) {
+ for (eit = (*sit).second.begin(); eit != (*sit).second.end(); eit++) {
+ node = tree->Items->AddChild(parent, (*eit).second.c_str());
+ AddSection(config, tree, node, (*eit).first.c_str());
+ }
+ }
+}
+
+
+void __fastcall TBookmarksfrm::bmtreeDragDrop(TObject *Sender, TObject *Source,
+ int X, int Y)
+{
+ bmtree->Selected->MoveTo(bmtree->DropTarget, naAddChildFirst);
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::bmtreeDragOver(TObject *Sender, TObject *Source,
+ int X, int Y, TDragState State, bool &Accept)
+{
+ Accept = false;
+
+ if (String(Source->ClassName()) == "TTreeView") {
+ if (Source == bmtree) {
+ if (bmtree->Selected->Data) {
+ if (strcmp((*(String*)(bmtree->Selected->Data)).c_str(),(bmdir + "personal.conf").c_str())) {
+ Accept = true;
+ }
+ }
+ else Accept = true;
+ }
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::bmtreeDblClick(TObject *Sender)
+{
+ if (!bmtree->Selected->getFirstChild()) {
+ *(Form1->DefaultVSKey) = bmtree->Selected->Text.c_str();
+ Form1->TextKeyChanged();
+ }
+
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::AddChild1Click(TObject *Sender)
+{
+ bmtree->Selected->Expand(false);
+ bmtree->Items->AddChildFirst(bmtree->Selected, "New Topic")->EditText();
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::Delete1Click(TObject *Sender)
+{
+ if (bmtree->Selected->Data) {
+ if (strcmp((*(String*)(bmtree->Selected->Data)).c_str(),(bmdir + "personal.conf").c_str())) {
+ bmtree->Selected->Delete();
+ }
+ }
+ else bmtree->Selected->Delete();
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::Rename1Click(TObject *Sender)
+{
+ bmtree->Selected->EditText();
+}
+//---------------------------------------------------------------------------
+
+void TBookmarksfrm::SaveBookmarks()
+{
+ TTreeNode *tree = 0;
+ SWConfig *bmconf;
+ ConfigEntMap emap;
+ SectionMap::iterator sit;
+ char buf[15];
+ bool personal, other;
+ list <String *>::iterator it;
+ string persfile;
+
+ if (bmtree->Items->Count)
+ tree = bmtree->Items->Item[0];
+
+ if ((sit = Form1->optionsconf->Sections.find("Bookmarks")) != Form1->optionsconf->Sections.end()) {
+ personal = (atoi((*(*sit).second.find("AutoSavePersonal")).second.c_str())) ? true:false;
+ other = (atoi((*(*sit).second.find("AutoSaveOther")).second.c_str())) ? true:false;
+ }
+
+ persfile = bmdir + "personal.conf";
+ for (it = bmfiles.begin(); it != bmfiles.end(); it++) { // delete all bookmark files before saving in case a top level was deleted
+ if (((!strcmp((*it)->c_str(), persfile.c_str())) && personal) || ((strcmp((*it)->c_str(), persfile.c_str())) && other))
+ unlink((*it)->c_str());
+ }
+
+ for (;tree;tree = tree->getNextSibling()) {
+ if (((*((String *)tree->Data) == persfile.c_str()) && personal) || ((*((String *)tree->Data) != persfile.c_str()) && other)) {
+ bmconf = new SWConfig(((String *)tree->Data)->c_str());
+ emap = bmconf->Sections["ROOT"];
+ sprintf(buf, "branch%d", tree->AbsoluteIndex);
+ emap.erase(buf); emap.insert(ConfigEntMap::value_type(buf, tree->Text.c_str()));
+ AddSectionToConf(bmconf, buf, tree);
+ bmconf->Sections["ROOT"] = emap;
+ bmconf->Save();
+ delete bmconf;
+ }
+ }
+}
+
+
+void TBookmarksfrm::AddSectionToConf(SWConfig *config, String section, TTreeNode *tree) {
+ ConfigEntMap sit;
+ char buf[15];
+
+ if (tree = tree->getFirstChild()) {
+ sit = config->Sections[section.c_str()];
+ for (; tree; tree = tree->getNextSibling()) {
+ sprintf(buf, "branch%d", tree->AbsoluteIndex);
+ sit.erase(buf); sit.insert(ConfigEntMap::value_type(buf, tree->Text.c_str()));
+ AddSectionToConf(config, buf, tree);
+ }
+ config->Sections[section.c_str()] = sit;
+ }
+}
+
+void __fastcall TBookmarksfrm::NewBookmarkFile1Click(TObject *Sender)
+{
+ if (NewBMfrm->ShowModal() == mrOk) {
+ bmtree->Items->AddObject(bmtree->Items->Item[0], NewBMfrm->bmtitle->Text, *bmfiles.insert(bmfiles.begin(), new String(String(bmdir.c_str()) + NewBMfrm->bmfile->Text + String(".conf"))));
+ }
+}
+//--------------------------------------------------------------------------- \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/BibleCS/bookmarkfrm.dfm b/apps/windoze/CBuilder5/BibleCS/bookmarkfrm.dfm
new file mode 100644
index 0000000..a335965
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/bookmarkfrm.dfm
@@ -0,0 +1,79 @@
+object Bookmarksfrm: TBookmarksfrm
+ Left = 315
+ Top = 230
+ Width = 294
+ Height = 300
+ Caption = 'Bookmarks'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ Icon.Data = {
+ 0000010001002020100000000000E80200001600000028000000200000004000
+ 0000010004000000000080020000000000000000000000000000000000000000
+ 000000008000008000000080800080000000800080008080000080808000C0C0
+ C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF006666
+ 6666666666666666666666666666688888888888888888088888888888866888
+ 8888888888888880888888888886688888888888888888808888888888866888
+ 8008888088008880800080008800688888088880880808808080808088006888
+ 8808888088080880800880888806688888008880080808880080808088066888
+ 8808080080800800080088008000688888080888888888888888888888066888
+ 8000088888888888888888888806688888888888888888880888888888866008
+ 8808880888877777777878888F86088088088808887888877788888888F60880
+ 800888078788888878878888888F6800808080878788888878878888888F6088
+ 808087878788888877788888888F0888088087887788888878888888888F0808
+ 0888788878788887788888F888F600000087778777877777777888FFFF866888
+ 8880888888888888888888888886688888880888888888888888888888866800
+ 8880808800088888888888888886688088808808080888888888888888866880
+ 8880080800888888888888888886688088800008080888888888888888866880
+ 8880880880088888888888888886088080808888888888888888888888860000
+ 0080888888888888888888888886688888808888888888888888888888866888
+ 8888088888888888888888888886666666660666666666666666666666660000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000}
+ OldCreateOrder = True
+ Position = poScreenCenter
+ PixelsPerInch = 96
+ TextHeight = 13
+ object bmtree: TTreeView
+ Left = 0
+ Top = 0
+ Width = 286
+ Height = 273
+ Align = alClient
+ DragMode = dmAutomatic
+ Indent = 19
+ PopupMenu = BMPopup
+ TabOrder = 0
+ OnDblClick = bmtreeDblClick
+ OnDragDrop = bmtreeDragDrop
+ OnDragOver = bmtreeDragOver
+ end
+ object BMPopup: TPopupMenu
+ Left = 252
+ Top = 244
+ object AddChild1: TMenuItem
+ Caption = '&Add Child'
+ OnClick = AddChild1Click
+ end
+ object Delete1: TMenuItem
+ Caption = '&Delete'
+ OnClick = Delete1Click
+ end
+ object Rename1: TMenuItem
+ Caption = '&Rename'
+ OnClick = Rename1Click
+ end
+ object N1: TMenuItem
+ Caption = '-'
+ end
+ object NewBookmarkFile1: TMenuItem
+ Caption = '&New Bookmark File'
+ OnClick = NewBookmarkFile1Click
+ end
+ end
+end
diff --git a/apps/windoze/CBuilder5/BibleCS/bookmarkfrm.h b/apps/windoze/CBuilder5/BibleCS/bookmarkfrm.h
new file mode 100644
index 0000000..4c37796
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/bookmarkfrm.h
@@ -0,0 +1,48 @@
+//---------------------------------------------------------------------------
+#ifndef bookmarkfrmH
+#define bookmarkfrmH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ComCtrls.hpp>
+#include <swconfig.h>
+#include <vcl\Menus.hpp>
+#include <list>
+//---------------------------------------------------------------------------
+class TBookmarksfrm : public TForm
+{
+__published: // IDE-managed Components
+ TTreeView *bmtree;
+ TPopupMenu *BMPopup;
+ TMenuItem *Delete1;
+ TMenuItem *AddChild1;
+ TMenuItem *Rename1;
+ TMenuItem *N1;
+ TMenuItem *NewBookmarkFile1;
+ void __fastcall bmtreeDragDrop(TObject *Sender, TObject *Source, int X, int Y);
+ void __fastcall bmtreeDragOver(TObject *Sender, TObject *Source, int X, int Y,
+ TDragState State, bool &Accept);
+ void __fastcall bmtreeDblClick(TObject *Sender);
+ void __fastcall AddChild1Click(TObject *Sender);
+ void __fastcall Delete1Click(TObject *Sender);
+ void __fastcall Rename1Click(TObject *Sender);
+ void __fastcall NewBookmarkFile1Click(TObject *Sender);
+private: // User declarations
+ void AddSection(SWConfig *config, TTreeView *tree, TTreeNode *parent, String section);
+ list <String *> bmfiles; // so we can delete each display we create
+
+
+public: // User declarations
+ string bmdir;
+ __fastcall TBookmarksfrm(TComponent* Owner);
+ __fastcall ~TBookmarksfrm();
+ void SaveBookmarks();
+ void AddSectionToConf(SWConfig *config, String section, TTreeNode *tree);
+};
+//---------------------------------------------------------------------------
+extern TBookmarksfrm *Bookmarksfrm;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/BibleCS/cdstartup/InstallBtn.BMP b/apps/windoze/CBuilder5/BibleCS/cdstartup/InstallBtn.BMP
new file mode 100644
index 0000000..1a4cc45
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/cdstartup/InstallBtn.BMP
Binary files differ
diff --git a/apps/windoze/CBuilder5/BibleCS/cdstartup/RunBtn.BMP b/apps/windoze/CBuilder5/BibleCS/cdstartup/RunBtn.BMP
new file mode 100644
index 0000000..dc698d5
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/cdstartup/RunBtn.BMP
Binary files differ
diff --git a/apps/windoze/CBuilder5/BibleCS/cdstartup/cdstartup.bpr b/apps/windoze/CBuilder5/BibleCS/cdstartup/cdstartup.bpr
new file mode 100644
index 0000000..0626391
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/cdstartup/cdstartup.bpr
@@ -0,0 +1,104 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="cdstartup.exe"/>
+ <OBJFILES value="cdstartup.obj mainfrm.obj"/>
+ <RESFILES value="cdstartup.res"/>
+ <IDLFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES) mainfrm.dfm"/>
+ <LIBFILES value=""/>
+ <LIBRARIES value="vcl50.lib"/>
+ <SPARELIBS value="vcl50.lib"/>
+ <PACKAGES value="vclx50.bpi vcl50.bpi vcldb50.bpi vclbde50.bpi vcldbx50.bpi ibsmp50.bpi
+ bcbsmp50.bpi dclocx50.bpi qrpt50.bpi teeui50.bpi vclsmp50.bpi teedb50.bpi
+ tee50.bpi dss50.bpi nmfast50.bpi inetdb50.bpi inet50.bpi vclmid50.bpi"/>
+ <PATHCPP value=".;"/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="ilink32"/>
+ <USERDEFINES value=""/>
+ <SYSDEFINES value="NO_STRICT"/>
+ <MAINSOURCE value="cdstartup.cpp"/>
+ <INCLUDEPATH value="$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par -w-8027 -w-8026"/>
+ <WARNOPTSTR value=""/>
+ </MACROS>
+ <OPTIONS>
+ <CFLAG1 value="-O2 -H=c:\PROGRA~1\borland\CBUILD~2\lib\vcl50.csm -Hc -Vx -Ve -X- -a8 -b-
+ -k- -vi -c -tW -tWM"/>
+ <PFLAGS value="-$YD -v -M -JPHNE"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zn"/>
+ <LFLAGS value="-D&quot;&quot; -aa -Tpe -x"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0w32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=1
+AutoIncBuild=0
+MajorVer=1
+MinorVer=5
+Release=2
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=CrossWire Software &amp; Bible Society
+FileDescription=The SWORD Project CD Installer
+FileVersion=1.5.2.0
+InternalName=cdstartup
+LegalCopyright=(c) 2001 CrossWire Software under the GNU General Public License
+LegalTrademarks=
+OriginalFilename=
+ProductName=The SWORD Project
+ProductVersion=1.5.2
+Comments=Seek Him and you will find Him
+
+[Excluded Packages]
+$(BCB)\Bin\dclite50.bpl=Borland Integrated Translation Environment
+
+[HistoryLists\hlIncludePath]
+Count=1
+Item0=$(BCB)\include;$(BCB)\include\vcl
+
+[HistoryLists\hlLibraryPath]
+Count=1
+Item0=$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=0
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/BibleCS/cdstartup/cdstartup.cpp b/apps/windoze/CBuilder5/BibleCS/cdstartup/cdstartup.cpp
new file mode 100644
index 0000000..9f2f8c7
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/cdstartup/cdstartup.cpp
@@ -0,0 +1,21 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+USERES("cdstartup.res");
+USEFORM("mainfrm.cpp", Form1);
+//---------------------------------------------------------------------------
+WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
+{
+ try
+ {
+ Application->Initialize();
+ Application->CreateForm(__classid(TForm1), &Form1);
+ Application->Run();
+ }
+ catch (Exception &exception)
+ {
+ Application->ShowException(&exception);
+ }
+ return 0;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder5/BibleCS/cdstartup/cdstartup.res b/apps/windoze/CBuilder5/BibleCS/cdstartup/cdstartup.res
new file mode 100644
index 0000000..4a1ca76
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/cdstartup/cdstartup.res
Binary files differ
diff --git a/apps/windoze/CBuilder5/BibleCS/cdstartup/mainfrm.cpp b/apps/windoze/CBuilder5/BibleCS/cdstartup/mainfrm.cpp
new file mode 100644
index 0000000..d7a7cc2
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/cdstartup/mainfrm.cpp
@@ -0,0 +1,48 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "mainfrm.h"
+#include <shellapi.h>
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TForm1 *Form1;
+//---------------------------------------------------------------------------
+__fastcall TForm1::TForm1(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::BitBtn1Click(TObject *Sender)
+{
+ WinExec(".\\Disk Images\\disk1\\setup.exe", SW_SHOWNORMAL);
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::BitBtn2Click(TObject *Sender)
+{
+ WinExec(".\\Windows\\sword.exe", SW_SHOWNORMAL);
+// ShellExecute(this->Handle, "open", "sword.exe", NULL, ".\\", SW_SHOWNORMAL);
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::FormShow(TObject *Sender)
+{
+// AddFontResource("\\sword\\modules\\texts\\rawtext\\nu\\greek.ttf");
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::BitBtn3Click(TObject *Sender)
+{
+ ShellExecute(this->Handle, "open", "http://www.crosswire.org", NULL, NULL, SW_SHOWNORMAL);
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::BitBtn4Click(TObject *Sender)
+{
+ ShellExecute(this->Handle, "open", ".\\", NULL, NULL, SW_SHOWNORMAL);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::BitBtn5Click(TObject *Sender)
+{
+ WinExec(".\\fonts\\setup.exe", SW_SHOWNORMAL);
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder5/BibleCS/cdstartup/mainfrm.dfm b/apps/windoze/CBuilder5/BibleCS/cdstartup/mainfrm.dfm
new file mode 100644
index 0000000..bcc1e3f
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/cdstartup/mainfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder5/BibleCS/cdstartup/mainfrm.h b/apps/windoze/CBuilder5/BibleCS/cdstartup/mainfrm.h
new file mode 100644
index 0000000..ba10380
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/cdstartup/mainfrm.h
@@ -0,0 +1,37 @@
+//---------------------------------------------------------------------------
+#ifndef mainfrmH
+#define mainfrmH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ExtCtrls.hpp>
+#include <vcl\Buttons.hpp>
+#include <Graphics.hpp>
+//---------------------------------------------------------------------------
+class TForm1 : public TForm
+{
+__published: // IDE-managed Components
+ TImage *Image1;
+ TBitBtn *BitBtn1;
+ TBitBtn *BitBtn2;
+ TLabel *Label1;
+ TBitBtn *BitBtn3;
+ TBitBtn *BitBtn4;
+ TBitBtn *BitBtn5;
+ void __fastcall BitBtn1Click(TObject *Sender);
+ void __fastcall BitBtn2Click(TObject *Sender);
+ void __fastcall FormShow(TObject *Sender);
+ void __fastcall BitBtn3Click(TObject *Sender);
+ void __fastcall BitBtn4Click(TObject *Sender);
+ void __fastcall BitBtn5Click(TObject *Sender);
+private: // User declarations
+public: // User declarations
+ __fastcall TForm1(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TForm1 *Form1;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/BibleCS/cdstartup/sword.bmp b/apps/windoze/CBuilder5/BibleCS/cdstartup/sword.bmp
new file mode 100644
index 0000000..88b4e72
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/cdstartup/sword.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/BibleCS/editentryfrm.cpp b/apps/windoze/CBuilder5/BibleCS/editentryfrm.cpp
new file mode 100644
index 0000000..d37442e
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/editentryfrm.cpp
@@ -0,0 +1,335 @@
+#include <vcl.h>
+#pragma hdrstop
+#include <windows.hpp>
+#include <stdlib.h>
+#include <stdio.h>
+#include "editentryfrm.h"
+#include <swdisprtf.h>
+
+const float RulerAdj = 4.0/3.0;
+const int GutterWid = 6;
+//----------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TEditEntry *EditEntry;
+//----------------------------------------------------------------------------
+__fastcall TEditEntry::TEditEntry(TComponent *Owner) : TForm(Owner) {
+ ResultBuf = 0;
+}
+
+
+__fastcall TEditEntry::~TEditEntry() {
+ if (ResultBuf)
+ delete [] ResultBuf;
+}
+
+
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::SelectionChange(TObject */*Sender*/) {
+ char sizebuf[6];
+
+ try {
+ FUpdating = True;
+ FirstInd->Left = int(RichEdit1->Paragraph->FirstIndent*RulerAdj)-
+ 4+GutterWid;
+ LeftInd->Left = int((RichEdit1->Paragraph->LeftIndent+
+ RichEdit1->Paragraph->FirstIndent)*RulerAdj)-
+ 4+GutterWid;
+ RightInd->Left = Ruler->ClientWidth-6-int(
+ (RichEdit1->Paragraph->RightIndent+GutterWid)*RulerAdj);
+
+ BoldButton->Down = RichEdit1->SelAttributes->Style.Contains(fsBold);
+ ItalicButton->Down = RichEdit1->SelAttributes->Style.Contains(fsItalic);
+ UnderlineButton->Down = RichEdit1->SelAttributes->Style.Contains(fsUnderline);
+
+ BulletsButton->Down = bool(RichEdit1->Paragraph->Numbering);
+
+ FontSize->Text = itoa(RichEdit1->SelAttributes->Size, sizebuf, 10);
+
+ switch((int)RichEdit1->Paragraph->Alignment)
+ { case 0: LeftAlign->Down = True; break;
+ case 1: RightAlign->Down = True; break;
+ case 2: CenterAlign->Down = True; break;
+ }
+ }
+ catch (...) {
+ FUpdating = False;
+ }
+ FUpdating = False;
+}
+
+
+//----------------------------------------------------------------------------
+TTextAttributes *__fastcall TEditEntry::CurrText(void)
+{
+ return RichEdit1->SelAttributes;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::CheckFileSave(void)
+{
+ if ( RichEdit1->Modified ) {
+ switch(MessageBox(Handle, "Save Changes?","Modify Comment",MB_YESNOCANCEL | MB_ICONQUESTION)) {
+ case ID_YES : ExtractRTF(); break;
+ case ID_CANCEL : Abort(); break;
+ default:
+ if (ResultBuf)
+ delete [] ResultBuf;
+ ResultBuf = 0;
+ break;
+ };
+ }
+}
+
+
+void __fastcall TEditEntry::SetupRuler(void)
+{ int iCtr = 1;
+ char sTmp[201];
+ while (iCtr < 200) {
+ sTmp[iCtr] = 9;
+ iCtr++;
+ sTmp[iCtr] = '|';
+ iCtr++;
+ }
+ Ruler->Caption = (AnsiString)sTmp;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::SetEditRect(void)
+{ TRect Rct = Rect(GutterWid, 0, RichEdit1->ClientWidth-GutterWid,
+ ClientHeight);
+ SendMessage(RichEdit1->Handle, EM_SETRECT, 0, long(&Rct));
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormCreate(TObject* /*Sender*/)
+{ Application->OnHint = &ShowHint;
+ SetupRuler();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::ShowHint(TObject* /*Sender*/)
+{ StatusBar->SimpleText = Application->Hint;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::EditUndoClick(TObject* /*Sender*/)
+{ if ( RichEdit1->HandleAllocated() )
+ SendMessage(RichEdit1->Handle, EM_UNDO, 0, 0);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::EditCutClick(TObject* /*Sender*/)
+{ RichEdit1->CutToClipboard();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::EditCopyClick(TObject* /*Sender*/)
+{ RichEdit1->CopyToClipboard();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::EditPasteClick(TObject* /*Sender*/)
+{ RichEdit1->PasteFromClipboard();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::RulerResize(TObject* /*Sender*/)
+{ RulerLine->Width = (int)Ruler->ClientWidth - (RulerLine->Left*2);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormResize(TObject* Sender)
+{ SetEditRect();
+ SelectionChange(Sender);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormPaint(TObject* /*Sender*/)
+{ SetEditRect();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::BoldButtonClick(TObject* /*Sender*/)
+{ if ( !FUpdating )
+ { if ( BoldButton->Down )
+ CurrText()->Style = CurrText()->Style << fsBold;
+ else
+ CurrText()->Style = CurrText()->Style >> fsBold;
+ }
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::ItalicButtonClick(TObject* /*Sender*/)
+{ if ( !FUpdating )
+ {
+ if ( ItalicButton->Down )
+ CurrText()->Style = CurrText()->Style << fsItalic;
+ else
+ CurrText()->Style = CurrText()->Style >> fsItalic;
+ }
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::UnderlineButtonClick(TObject* /*Sender*/)
+{
+ if ( !FUpdating ) {
+ if ( UnderlineButton->Down )
+ CurrText()->Style = CurrText()->Style << fsUnderline;
+ else CurrText()->Style = CurrText()->Style >> fsUnderline;
+ }
+}
+
+
+void __fastcall TEditEntry::FontSizeChange(TObject* /*Sender*/)
+{
+ int fontsize = atoi(FontSize->Text.c_str());
+
+ if ((!FUpdating) && (fontsize)) {
+ if (fontsize < 1) {
+ ShowMessage("Please Enter a Number betweek 1 and 1638");
+ FontSize->Text = 1;
+ }
+ else if (fontsize > 1638) {
+ ShowMessage("Please Enter a Number betweek 1 and 1638");
+ FontSize->Text = 1638;
+ }
+ CurrText()->Size = atoi(FontSize->Text.c_str());
+ }
+}
+
+
+void __fastcall TEditEntry::AlignClick(TObject* Sender)
+{
+ if ( !FUpdating ) {
+ TControl *oAliBtn = (TControl*)(Sender);
+ RichEdit1->Paragraph->Alignment = (TAlignment)oAliBtn->Tag;
+ }
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::BulletsButtonClick(TObject* /*Sender*/)
+{ if ( !FUpdating )
+ RichEdit1->Paragraph->Numbering = (TNumberingStyle)BulletsButton->Down;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormCloseQuery(TObject* /*Sender*/,
+ bool & CanClose)
+{ try {
+ CheckFileSave();
+ }
+ catch (...) {
+ CanClose = False;
+ }
+}
+//----------------------------------------------------------------------------
+
+//***************************
+//***Ruler Indent Dragging***
+//***************************
+
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::RulerItemMouseDown(TObject * Sender,
+ TMouseButton Button, TShiftState Shift, int X, int Y)
+{ TLabel * oTmpLabel = (TLabel *)Sender;
+ FDragOfs = oTmpLabel->Width / 2;
+ oTmpLabel->Left = oTmpLabel->Left+X-FDragOfs;
+ FDragging = True;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::RulerItemMouseMove(TObject *Sender, TShiftState Shift, int X, int /*Y*/) {
+ if (FDragging) {
+ TLabel *oTmpLabel = (TLabel *)Sender;
+ oTmpLabel->Left = oTmpLabel->Left+X-FDragOfs;
+ oTmpLabel->Left -= oTmpLabel->Left % 10;
+ }
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FirstIndMouseUp(TObject *Sender, TMouseButton
+ Button, TShiftState Shift, int X, int Y)
+{ FDragging = False;
+ RichEdit1->Paragraph->FirstIndent = int((FirstInd->Left+FDragOfs-GutterWid) / RulerAdj);
+ LeftIndMouseUp(Sender, Button, Shift, X, Y);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::LeftIndMouseUp(TObject *Sender, TMouseButton
+ /*Button*/, TShiftState /*Shift*/, int /*X*/, int /*Y*/)
+{ FDragging = False;
+ RichEdit1->Paragraph->LeftIndent = int((LeftInd->Left+FDragOfs-GutterWid)/
+ RulerAdj)-RichEdit1->Paragraph->FirstIndent;
+ SelectionChange(Sender);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::RightIndMouseUp(TObject *Sender, TMouseButton
+ /*Button*/, TShiftState /*Shift*/, int /*X*/, int /*Y*/)
+{ FDragging = False;
+ RichEdit1->Paragraph->RightIndent =
+ int((Ruler->ClientWidth-RightInd->Left+FDragOfs-2) /
+ RulerAdj)-2*GutterWid;
+ SelectionChange(Sender);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormActivate(TObject *Sender)
+{
+ System::AnsiString newtext, tmptext;
+
+ if (Module) {
+ TMemoryStream *RTFStream = new TMemoryStream();
+ newtext = RTFDisplay->RTFHeader;
+ Module->Error(); // clear error;
+ newtext = newtext + "\\pard \\nowidctlpar \\cf0 ";
+ (const char *)*Module; // force key to snap to entry before pulling out the text of the key
+ tmptext = (const char *)*Module;
+
+ newtext = newtext + RTFDisplay->RTFVersePre + " " + tmptext + RTFDisplay->RTFVersePost;
+ newtext = newtext + RTFDisplay->RTFTrailer;
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(newtext.c_str(), newtext.Length());
+ RTFStream->Position = 0;
+ RichEdit1->Lines->LoadFromStream(RTFStream);
+ delete RTFStream;
+ }
+ SelectionChange(this);
+ RichEdit1->SetFocus();
+ if (ResultBuf)
+ delete [] ResultBuf;
+ ResultBuf = 0;
+}
+//---------------------------------------------------------------------
+
+void TEditEntry::ExtractRTF()
+{
+ System::AnsiString newtext, tmptext;
+ TMemoryStream *RTFStream = new TMemoryStream();
+ char *tmpbuf, *datastart;
+
+ RTFStream->Clear();
+ RichEdit1->Lines->SaveToStream(RTFStream);
+ RTFStream->Position = 0;
+ if (ResultBuf)
+ delete [] ResultBuf;
+ tmpbuf = new char [ RTFStream->Size + 1];
+ RTFStream->ReadBuffer(tmpbuf, RTFStream->Size);
+ tmpbuf[RTFStream->Size] = 0;
+ char *tbl = strstr(tmpbuf, "colortbl");
+ if (!tbl)
+ tbl = strstr(tmpbuf, "fonttbl");
+ if (tbl) {
+ strtok(tbl, "}");
+ datastart = strtok(NULL, "");
+ ResultBuf = new char [ strlen(datastart) + 2 ];
+ ResultBuf[0] = '{';
+ strcpy(ResultBuf+1, datastart);
+ delete [] tmpbuf;
+ delete RTFStream;
+ //-------- Change all fonts to \f1
+ for (int i = 0; i < strlen(ResultBuf)-4; i++) {
+ if (ResultBuf[i] == '\\') {
+ if (ResultBuf[i+1] == '\\') { // skip a real '\' character
+ i += 1;
+ continue;
+ }
+ if (ResultBuf[i+1] == 'f') {
+ if (isdigit(ResultBuf[i+2])) {
+ ResultBuf[i+2] = '1';
+ if (isdigit(ResultBuf[i+3])) {
+ memmove(&ResultBuf[i+3], &ResultBuf[i+4], strlen(&ResultBuf[i+3]));
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+
+__fastcall TCharsetObject::TCharsetObject(int FCharset)
+ : TObject()
+{
+ Charset = FCharset;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder5/BibleCS/editentryfrm.dfm b/apps/windoze/CBuilder5/BibleCS/editentryfrm.dfm
new file mode 100644
index 0000000..488d010
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/editentryfrm.dfm
@@ -0,0 +1,897 @@
+object EditEntry: TEditEntry
+ Left = 284
+ Top = 123
+ Width = 541
+ Height = 407
+ ActiveControl = RichEdit1
+ Caption = 'Edit Entry'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clBlack
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ FormStyle = fsMDIForm
+ OldCreateOrder = True
+ Position = poScreenCenter
+ OnActivate = FormActivate
+ OnCloseQuery = FormCloseQuery
+ OnCreate = FormCreate
+ OnPaint = FormPaint
+ OnResize = FormResize
+ PixelsPerInch = 96
+ TextHeight = 13
+ object SpeedBar: TPanel
+ Left = 0
+ Top = 0
+ Width = 533
+ Height = 32
+ Align = alTop
+ BevelOuter = bvNone
+ ParentShowHint = False
+ ShowHint = True
+ TabOrder = 0
+ object UndoButton: TSpeedButton
+ Left = 1
+ Top = 5
+ Width = 25
+ Height = 25
+ Hint = 'Undo|'
+ Glyph.Data = {
+ 96090000424D9609000000000000360000002800000028000000140000000100
+ 1800000000006009000000000000000000000000000000000000007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7FFFFFFF007F7F007F7F007F7FFFFFFF007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7FFFFFFF007F7F
+ 007F7FFFFFFFFFFFFFFFFFFF007F7F007F7FFFFFFF007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7FFFFFFFFFFFFFFFFFFFFFFFFF007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFF7F7F7F00007F00007F00007F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F7F7F
+ 7F7F7F7F7F7F7F7F7F7FFFFFFFFFFFFF007F7F007F7F007F7F007F7F007F7F00
+ 7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F0000FFFF00FF
+ FF00FF7F007F00007F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F7F7F7FFFFFFF007F7F007F7F7F
+ 7F7F7F7F7FFFFFFFFFFFFF007F7F007F7F007F7F007F7F007F7FFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF00FF0000FFFF00FFFF00FF7F00
+ 7F00007F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F7F7F7FFFFFFF007F7F007F7F007F7F7F7F7F7F7F7F
+ FFFFFFFFFFFF007F7F007F7F007F7F007F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFF007F7FFF00FF0000FFFFFFFF0000FFFF00FFFF00FF7F007F00000000
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F7F7F7FFFFFFF007F7F007F7F007F7F007F7F7F7F7F7F7F7FFFFFFFFFFF
+ FF007F7F007F7F007F7FFFFFFFFFFFFF007F7FFFFFFFFFFFFFFFFFFF007F7F00
+ 00FFFF00FFFFFFFFFF00FF0000FFFF00FF0000007F7F00000000007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F7F7F7F007F
+ 7FFFFFFF007F7F007F7F007F7F7F7F7F7F7F7F7F7F7FFFFFFFFFFFFF007F7F00
+ 7F7FFFFFFF007F7F007F7F007F7FFFFFFF007F7F007F7F007F7F0000FFFF00FF
+ FFFFFFFF00FF000000007F007F00007F7F00000000007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F7F7F7F007F7FFFFFFF00
+ 7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7FFFFFFFFFFFFF007F7FFFFFFF007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F0000FFFF00FF00000000FF
+ 00007F00007F007F00007F7F00000000007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F7F7F7F007F7F7F7F7F007F7F7F7F7F
+ 7F7F7F7F7F7F7F7F7F7F7F7FFFFFFFFFFFFF007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F00000000FF0000FFFF00FF00007F0000
+ 7F000000007F7F7F000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F7F7F7F007F7FFFFFFF007F7F7F7F7F7F7F7F7F7F
+ 7F7F7F7F7F7F7FFFFFFF007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F00000000FF0000FFFF00FF000000007F00007F7F7F
+ 7F7F7F000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F7F7F7F007F7FFFFFFF007F7F7F7F7F7F7F7F7F7F7F7F7F7F7F
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F00000000FF00000000BFBFBF00FFFF7F00007F7F7F7F7F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F7F7F7F007F7F7F7F7F007F7F007F7F7F7F7F7F7F7F7F7F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F000000BFBFBFFFFFFF00FFFF00FFFF7F00007F7F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F7F7F7F
+ 007F7FFFFFFF007F7F007F7F7F7F7F7F7F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F000000FF
+ FFFFFFFFFF00FFFF00FFFF7F0000007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F7F7F7F007F7FFFFF
+ FF007F7F007F7F7F7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F000000FFFFFFFFFFFF
+ 00FFFF00FFFF007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F7F7F7F007F7FFFFFFF007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F000000FFFFFFFFFFFF00FFFF007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F7F7F7F007F7F007F7F007F7F}
+ NumGlyphs = 2
+ OnClick = EditUndoClick
+ end
+ object CutButton: TSpeedButton
+ Left = 34
+ Top = 5
+ Width = 25
+ Height = 25
+ Hint = 'Cut|'
+ Glyph.Data = {
+ 96090000424D9609000000000000360000002800000028000000140000000100
+ 1800000000006009000000000000000000000000000000000000007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7FFFFFFFFFFFFF
+ FFFFFFFFFFFF007F7F007F7F007F7F007F7F007F7F007F7FFFFFFFFFFFFFFFFF
+ FFFFFFFF007F7F007F7F007F7F007F7F007F7F7F7F7F7F00007F00007F7F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F7F7F7F7F00007F00007F7F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F7F7F7F7F7F7F7F7F7F7F7F7FFFFFFFFFFF
+ FF007F7F007F7F007F7F007F7F7F7F7F7F7F7F7F7F7F7F7F7FFFFFFFFFFFFF00
+ 7F7F007F7F007F7F7F7F7F7F0000007F7F007F7F7F00007F7F7F007F7F007F7F
+ 007F7F007F7F7F7F7F7F0000007F7F007F7F7F00007F7F7F007F7F007F7F007F
+ 7F007F7F7F7F7F7F7F7FFFFFFF007F7F7F7F7F7F7F7FFFFFFF007F7F007F7F00
+ 7F7F7F7F7F7F7F7F007F7F007F7F7F7F7F7F7F7FFFFFFF007F7F007F7F007F7F
+ 7F7F7F7F0000007F7F007F7F007F7F7F0000007F7F007F7F007F7F007F7F7F00
+ 00007F7F007F7F007F7F7F00007F7F7F007F7F007F7F007F7F007F7F7F7F7F7F
+ 7F7FFFFFFF007F7F007F7F7F7F7FFFFFFF007F7F007F7F007F7F7F7F7FFFFFFF
+ 007F7F007F7F7F7F7F7F7F7FFFFFFF007F7F007F7F007F7F7F7F7F7F0000007F
+ 7F007F7F007F7F7F0000007F7F007F7F007F7F007F7F7F0000007F7F007F7F00
+ 7F7F7F00007F7F7F007F7F007F7F007F7F007F7F7F7F7F7F7F7FFFFFFFFFFFFF
+ 007F7F7F7F7FFFFFFFFFFFFF007F7F007F7F7F7F7FFFFFFF007F7F007F7F7F7F
+ 7F7F7F7F007F7F007F7F007F7F007F7F007F7F7F7F7F7F0000007F7F007F7F7F
+ 00007F7F7F007F7F007F7F7F7F7F7F0000007F7F007F7F7F00007F7F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F7F7F7F7F7F7FFFFFFFFFFFFF7F7F7F7F7F
+ 7FFFFFFFFFFFFF7F7F7F7F7F7FFFFFFFFFFFFF7F7F7F7F7F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F7F7F7F7F00007F00007F00007F00007F7F7F
+ 7F7F7F7F00007F00007F00007F00007F7F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F
+ 7F7F7F7F7F7F7F7F7F7F7F7F7F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F7F00007F00007F00007F00007F00007F00007F00
+ 007F0000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F7F00007F7F00FFFFFFFFFFFF7F7F007F0000007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F7F7F7F7F7F7F007F7FFFFFFF7F7F7F7F7F7FFFFFFF007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 0000FFFFFF000000000000FFFFFF000000007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F7F7F7F007F
+ 7F7F7F7F7F7F7F007F7F7F7F7F007F7FFFFFFF007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F000000FFFFFFFFFFFFFFFFFF
+ FFFFFF000000FFFFFF000000007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F7F7F7F007F7F007F7F007F7FFFFFFF7F
+ 7F7F007F7F7F7F7F007F7FFFFFFF007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F000000FFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFF
+ FFFFFFFF000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F7F7F7F007F7F007F7F007F7F7F7F7F7F7F7F007F7FFFFFFF007F7F
+ 7F7F7F007F7FFFFFFF007F7F007F7F007F7F007F7F007F7F007F7F007F7F0000
+ 00FFFFFFFFFFFFFFFFFF000000007F7F007F7F000000FFFFFFFFFFFFFFFFFF00
+ 0000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F7F7F7F007F7F
+ 007F7F007F7F7F7F7F007F7F007F7F7F7F7F007F7FFFFFFF007F7F7F7F7F007F
+ 7FFFFFFF007F7F007F7F007F7F007F7F007F7F000000FFFFFFFFFFFFFFFFFF00
+ 0000007F7F007F7F007F7F007F7F000000FFFFFFFFFFFFFFFFFF000000007F7F
+ 007F7F007F7F007F7F007F7F007F7F7F7F7F007F7F007F7F007F7F7F7F7F007F
+ 7F007F7F007F7F007F7F7F7F7F007F7FFFFFFF007F7F7F7F7F007F7FFFFFFF00
+ 7F7F007F7F007F7F000000FFFFFFFFFFFFFFFFFF000000007F7F007F7F007F7F
+ 007F7F007F7F007F7F000000FFFFFFFFFFFFFFFFFF000000007F7F007F7F007F
+ 7F007F7F7F7F7FFFFFFF007F7F007F7F7F7F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F7F7F7F007F7FFFFFFF007F7F7F7F7FFFFFFF007F7F007F7F007F7F
+ 000000FFFFFFFFFFFF000000007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F000000FFFFFFFFFFFF000000007F7F007F7F007F7F007F7F7F7F7FFF
+ FFFF007F7F7F7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 7F7F7F007F7FFFFFFF7F7F7FFFFFFF007F7F007F7F007F7F000000FFFFFF0000
+ 00007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 0000FFFFFF000000007F7F007F7F007F7F007F7F7F7F7FFFFFFF7F7F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F7F7F7F007F
+ 7F7F7F7FFFFFFF007F7F007F7F007F7F000000000000007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F000000000000
+ 007F7F007F7F007F7F007F7F7F7F7F7F7F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F7F7F7F7F7F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F}
+ NumGlyphs = 2
+ OnClick = EditCutClick
+ end
+ object CopyButton: TSpeedButton
+ Left = 59
+ Top = 5
+ Width = 25
+ Height = 25
+ Hint = 'Copy|'
+ Glyph.Data = {
+ 96090000424D9609000000000000360000002800000028000000140000000100
+ 1800000000006009000000000000000000000000000000000000007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFF007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F00000000000000000000000000000000000000000000000000
+ 0000000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F
+ 7FFFFFFF007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F7F7F7FFFFF
+ FF007F7F007F7F007F7F007F7F007F7F007F7F007F7F7F7F7FFFFFFF007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00000000FFFFFFFFFF
+ 00FFFFFFFFFF00FFFFFFFFFF00FFFFFFFFFF000000007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F7F7F7FFFFFFF007F7FFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7FFFFFFF007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F000000FFFFFF7F7F7F7F7F7F7F7F7F7F7F
+ 7F7F7F7F7F7F7FFFFFFF000000007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F7F7F7FFFFFFF7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F
+ 7F7F7F007F7F7F7F7FFFFFFF007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F00000000FFFFFFFFFF00FFFFFFFFFF00FFFFFFFFFF00FFFFFF
+ FFFF000000007F7F007F7F007F7F007F7F007F7F007F7FFFFFFFFFFFFFFFFFFF
+ FFFFFF7F7F7FFFFFFF007F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F
+ 7FFFFFFF007F7F007F7F007F7F007F7F00000000000000000000000000000000
+ 0000FFFFFF7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7FFFFFFF000000007F7F
+ 007F7F007F7F007F7F007F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7FFFFF
+ FF7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F007F7F7F7F7FFFFFFF007F7F00
+ 7F7F007F7F007F7F000000FFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFF
+ 00FFFFFFFFFF00FFFFFFFFFF00FFFFFFFFFF000000007F7F007F7F007F7F007F
+ 7F007F7F7F7F7FFFFFFF007F7F007F7F007F7F7F7F7FFFFFFF007F7FFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7FFFFFFF007F7F007F7F007F7F007F7F
+ 000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF7F7F7F7F7F7F7F7F7F7F7F
+ 7F7F7F7F7F7F7FFFFFFF000000007F7F007F7F007F7F007F7F007F7F7F7F7FFF
+ FFFF007F7F007F7F007F7F7F7F7FFFFFFF7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F
+ 7F7F7F007F7F7F7F7FFFFFFF007F7F007F7F007F7F007F7F000000FFFFFFBFBF
+ BFBFBFBFBFBFBF00000000FFFFFFFFFF00FFFFFFFFFF00FFFFFFFFFF00FFFFFF
+ FFFF000000007F7F007F7F007F7F007F7F007F7F7F7F7FFFFFFF007F7F007F7F
+ 007F7F7F7F7FFFFFFF007F7F007F7F007F7F007F7F007F7F007F7FFFFFFF7F7F
+ 7FFFFFFF007F7F007F7F007F7F007F7F000000FFFFFFFFFFFFFFFFFFFFFFFF00
+ 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000007F7F
+ 007F7F007F7F007F7F007F7F7F7F7FFFFFFF007F7F007F7F007F7F7F7F7FFFFF
+ FF007F7F007F7F007F7F007F7F007F7F7F7F7F7F7F7F7F7F7F007F7F007F7F00
+ 7F7F007F7F007F7F000000FFFFFFBFBFBFBFBFBFBFBFBF00000000FFFFFFFFFF
+ 00FFFFFFFFFF00FFFFFFFFFF000000000000007F7F007F7F007F7F007F7F007F
+ 7F007F7F7F7F7FFFFFFF007F7F007F7F007F7F7F7F7FFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFF7F7F7F7F7F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 000000FFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000
+ 00000000000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F7F7F7FFF
+ FFFF007F7F007F7F007F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F
+ 7F7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F000000FFFFFFBFBF
+ BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFFFFFFF000000007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F7F7F7FFFFFFF007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F7F7F7FFFFFFF007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F000000FFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFF000000007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F7F7F7FFFFFFF007F7F007F7F007F7F007F7F007F
+ 7F007F7FFFFFFF7F7F7FFFFFFF007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+ 000000000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F7F7F7FFFFFFF007F7F007F7F007F7F007F7F007F7F7F7F7F7F7F7F7F
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F7F7F7FFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F7F7F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F0000000000000000
+ 00000000000000000000000000000000007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F7F7F7F7F7F7F7F7F7F7F7F7F
+ 7F7F7F7F7F7F7F7F7F7F7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F}
+ NumGlyphs = 2
+ OnClick = EditCopyClick
+ end
+ object PasteButton: TSpeedButton
+ Left = 84
+ Top = 5
+ Width = 25
+ Height = 25
+ Hint = 'Paste|'
+ Glyph.Data = {
+ 96090000424D9609000000000000360000002800000028000000140000000100
+ 1800000000006009000000000000000000000000000000000000007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7FFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F00000000000000000000000000000000
+ 0000000000000000000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F
+ 7F7F7F7F7F7F7FFFFFFF007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F00000000FFFFFFFFFF00FFFFFFFFFF00FFFFFFFFFF00FFFF
+ 000000007F7F007F7F007F7F007F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFF7F7F7FFFFFFF007F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7FFF
+ FFFF007F7F007F7F000000000000000000000000000000000000000000000000
+ 000000FFFFFF7F7F7F7F7F7F7F7F7F7F7F7F7F7F7FFFFFFF000000007F7F007F
+ 7F007F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7FFF
+ FFFF7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F007F7F7F7F7FFFFFFF007F7F000000
+ BFBFBFFFFFFFBFBFBFFFFFFFBFBFBFFFFFFFBFBFBFFFFFFF00000000FFFFFFFF
+ FF00FFFFFFFFFF00FFFFFFFFFF00FFFF000000007F7F007F7F7F7F7FFFFFFF00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F7F7F7FFFFFFF007F7F007F7F
+ 007F7FFFFFFFFFFFFFFFFFFF7F7F7FFFFFFF007F7F000000FFFFFFBFBFBFFFFF
+ FFBFBFBFFFFFFFBFBFBFFFFFFFBFBFBF000000FFFFFFBFBFBFBFBFBF7F7F7F7F
+ 7F7F7F7F7FFFFFFF000000007F7F007F7F7F7F7FFFFFFF007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F7F7F7FFFFFFFFFFFFFFFFFFF7F7F7F7F7F7F7F7F
+ 7F007F7F7F7F7FFFFFFF007F7F000000BFBFBFFFFFFFBFBFBFFFFFFFBFBFBFFF
+ FFFFBFBFBF7F00007F00007F00007F000000FFFFFFFFFF00FFFFFFFFFF00FFFF
+ 000000007F7F007F7F7F7F7FFFFFFF007F7F007F7F007F7F007F7F007F7F007F
+ 7F7F7F7F7F7F7F7F7F7F7F7F7FFFFFFF007F7FFFFFFFFFFFFFFFFFFF7F7F7FFF
+ FFFF007F7F000000FFFFFFBFBFBFFFFFFFBFBFBFFFFFFFBFBFBFFFFFFFBFBFBF
+ FF00007F00007F0000BFBFBF7F7F7F7F7F7F7F7F7FFFFFFF000000007F7F007F
+ 7F7F7F7FFFFFFF007F7F007F7F007F7F007F7F007F7F007F7F007F7F7F7F7F7F
+ 7F7F7F7F7FFFFFFF7F7F7F7F7F7F7F7F7F007F7F7F7F7FFFFFFF007F7F000000
+ BFBFBFFFFFFFBFBFBFFFFFFFBFBFBFFFFFFFBFBFBF7F00007F0000FF00007F00
+ 0000FFFFFFFFFF00FFFFFFFFFF00FFFF000000007F7F007F7F7F7F7FFFFFFF00
+ 7F7F007F7F007F7F007F7F007F7F007F7F7F7F7F7F7F7F7F7F7F7F7F7FFFFFFF
+ 007F7F007F7F007F7FFFFFFF7F7F7FFFFFFF007F7F000000FFFFFFBFBFBFFFFF
+ FFBFBFBFFFFFFFBFBFBF7F00007F00007F0000FFFFFF7F0000FFFFFFFFFFFFFF
+ FFFF7F7F7F7F7F7F000000007F7F007F7F7F7F7FFFFFFF007F7F007F7F007F7F
+ 007F7F007F7F7F7F7F7F7F7F7F7F7FFFFFFF7F7F7F007F7F007F7F007F7F7F7F
+ 7F7F7F7F7F7F7F007F7F007F7F000000BFBFBFFFFFFFBFBFBFFFFFFFBFBFBF7F
+ 00007F00007F000000000000FFFFFFFFFF00FFFFFFFFFF00FFFF7F7F7F000000
+ 007F7F007F7F007F7F7F7F7FFFFFFF007F7F007F7F007F7F007F7F7F7F7F7F7F
+ 7F7F7F7F7F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F7F7F7F007F7F00
+ 7F7F007F7F000000FFFFFFBFBFBFFFFFFFBFBFBF7F00007F00007F0000BFBFBF
+ 000000000000000000000000000000000000000000007F7F007F7F007F7F007F
+ 7F7F7F7FFFFFFF007F7F007F7F007F7F7F7F7F7F7F7F7F7F7F007F7F7F7F7F7F
+ 7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F007F7F007F7F007F7F007F7F000000
+ BFBFBFFFFFFFBFBFBFFFFFFFBFBFBF7F0000BFBFBFFFFFFFBFBFBFFFFFFF0000
+ 00007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F7F7F7FFFFFFF00
+ 7F7F007F7F007F7F007F7F7F7F7F007F7F007F7F007F7F007F7F7F7F7FFFFFFF
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F000000FFFFFFBFBFBFFFFF
+ FFBFBFBFFFFFFFBFBFBFFFFFFFBFBFBFFFFFFFBFBFBF000000007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F7F7F7FFFFFFF007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F7F7F7FFFFFFF007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F000000BFBFBFFFFFFFBFBFBFFFFFFFBFBFBFFF
+ FFFFBFBFBFFFFFFFBFBFBFFFFFFF000000007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F7F7F7FFFFFFF007F7F007F7FFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFF007F7F7F7F7FFFFFFF007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F000000FFFFFFBFBFBF7F00007F00007F00007F00007F00007F0000
+ FFFFFFBFBFBF000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F7F7F7F007F7FFFFFFF7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7FFFFFFFFF
+ FFFF7F7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 000000000000FFFF00FF0000FF0000FF0000FF00007F0000000000000000007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F7F7F7F7F
+ 7F7F007F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7FFFFF
+ 00FF0000FF0000FF0000FF00007F0000007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F7F7F7F
+ 7F7F7F7F7F7F7F7F7F7F7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7FFFFF00FFFF00FF
+ FF00FFFF00007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F}
+ NumGlyphs = 2
+ OnClick = EditPasteClick
+ end
+ object Bevel1: TBevel
+ Left = 0
+ Top = 0
+ Width = 533
+ Height = 2
+ Align = alTop
+ Shape = bsTopLine
+ end
+ object BoldButton: TSpeedButton
+ Left = 232
+ Top = 5
+ Width = 25
+ Height = 25
+ Hint = 'Bold'
+ AllowAllUp = True
+ GroupIndex = 1
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clBlack
+ Font.Height = -21
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ Glyph.Data = {
+ E6040000424DE604000000000000360000002800000014000000140000000100
+ 180000000000B004000000000000000000000000000000000000007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F00000000000000000000000000
+ 0000000000000000000000000000000000000000007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F0000000000000000000000
+ 00007F7F007F7F007F7F000000000000000000007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F000000000000000000000000007F7F
+ 007F7F007F7F000000000000000000000000007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F000000000000000000000000007F7F007F7F00
+ 7F7F000000000000000000000000007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F000000000000000000000000007F7F007F7F007F7F0000
+ 00000000000000000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F000000000000000000000000007F7F007F7F007F7F000000000000
+ 000000000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F00000000000000000000000000000000000000000000000000000000000000
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F000000
+ 000000000000000000007F7F007F7F007F7F000000000000000000000000007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00000000000000
+ 0000000000007F7F007F7F007F7F000000000000000000000000007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F0000000000000000000000
+ 00007F7F007F7F007F7F000000000000000000000000007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F000000000000000000000000007F7F
+ 007F7F007F7F000000000000000000000000007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F000000000000000000000000007F7F007F7F00
+ 7F7F000000000000000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F0000000000000000000000000000000000000000000000000000000000
+ 00000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F}
+ ParentFont = False
+ OnClick = BoldButtonClick
+ end
+ object ItalicButton: TSpeedButton
+ Left = 258
+ Top = 5
+ Width = 25
+ Height = 25
+ Hint = 'Italic'
+ AllowAllUp = True
+ GroupIndex = 4
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clBlack
+ Font.Height = -21
+ Font.Name = 'MS Serif'
+ Font.Style = [fsBold, fsItalic]
+ Glyph.Data = {
+ E6040000424DE604000000000000360000002800000014000000140000000100
+ 180000000000B004000000000000000000000000000000000000007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F00000000000000000000000000000000000000
+ 0000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F000000000000000000000000007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F000000000000000000000000007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F000000000000000000000000007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F000000000000000000000000007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F000000000000000000000000007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F000000000000000000000000007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F000000000000000000000000007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F000000000000000000000000007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F000000000000000000000000007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F000000000000000000000000007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F000000000000000000000000007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F0000
+ 00000000000000000000000000000000000000007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F}
+ ParentFont = False
+ OnClick = ItalicButtonClick
+ end
+ object LeftAlign: TSpeedButton
+ Left = 320
+ Top = 5
+ Width = 25
+ Height = 25
+ Hint = 'Align Left'
+ AllowAllUp = True
+ GroupIndex = 2
+ Glyph.Data = {
+ E6040000424DE604000000000000360000002800000014000000140000000100
+ 180000000000B004000000000000000000000000000000000000007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F0000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F00000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F0000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F00000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F0000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F}
+ OnClick = AlignClick
+ end
+ object CenterAlign: TSpeedButton
+ Tag = 2
+ Left = 346
+ Top = 5
+ Width = 25
+ Height = 25
+ Hint = 'Center'
+ AllowAllUp = True
+ GroupIndex = 2
+ Glyph.Data = {
+ E6040000424DE604000000000000360000002800000014000000140000000100
+ 180000000000B004000000000000000000000000000000000000007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F0000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F00000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F0000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F00000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F0000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F}
+ OnClick = AlignClick
+ end
+ object RightAlign: TSpeedButton
+ Tag = 1
+ Left = 373
+ Top = 5
+ Width = 25
+ Height = 25
+ Hint = 'Align Right'
+ AllowAllUp = True
+ GroupIndex = 2
+ Glyph.Data = {
+ E6040000424DE604000000000000360000002800000014000000140000000100
+ 180000000000B004000000000000000000000000000000000000007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F0000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F00000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F0000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F00000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F0000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F}
+ OnClick = AlignClick
+ end
+ object UnderlineButton: TSpeedButton
+ Left = 284
+ Top = 5
+ Width = 25
+ Height = 25
+ Hint = 'Underline'
+ AllowAllUp = True
+ GroupIndex = 5
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clBlack
+ Font.Height = -21
+ Font.Name = 'MS Serif'
+ Font.Style = [fsBold, fsItalic]
+ Glyph.Data = {
+ E6040000424DE604000000000000360000002800000014000000140000000100
+ 180000000000B004000000000000000000000000000000000000007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F0000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000007F7F007F7F007F7F007F7F007F7F007F7F007F7F000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F000000000000000000000000
+ 000000000000000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F000000000000000000007F7F007F7F007F7F00
+ 0000000000000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F000000000000000000007F7F007F7F007F7F007F7F007F7F0000
+ 00000000000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F000000000000000000007F7F007F7F007F7F007F7F007F7F000000000000
+ 000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F0000
+ 00000000000000007F7F007F7F007F7F007F7F007F7F00000000000000000000
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F000000000000
+ 000000007F7F007F7F007F7F007F7F007F7F000000000000000000007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00000000000000000000
+ 7F7F007F7F007F7F007F7F007F7F000000000000000000007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F000000000000000000007F7F007F
+ 7F007F7F007F7F007F7F000000000000000000007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F000000000000000000007F7F007F7F007F7F
+ 007F7F007F7F000000000000000000007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F000000000000000000007F7F007F7F007F7F007F7F00
+ 7F7F000000000000000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F000000000000000000007F7F007F7F007F7F007F7F007F7F0000
+ 00000000000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F000000000000000000007F7F007F7F007F7F007F7F007F7F000000000000
+ 000000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F0000000000
+ 00000000000000000000000000007F7F00000000000000000000000000000000
+ 0000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F}
+ ParentFont = False
+ OnClick = UnderlineButtonClick
+ end
+ object BulletsButton: TSpeedButton
+ Left = 399
+ Top = 5
+ Width = 25
+ Height = 25
+ Hint = 'Bullets'
+ AllowAllUp = True
+ GroupIndex = 3
+ Glyph.Data = {
+ E6040000424DE604000000000000360000002800000014000000140000000100
+ 180000000000B004000000000000000000000000000000000000007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F7F00007F00007F00007F0000007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F7F00007F00007F00007F0000007F7F007F7F
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000007F7F7F00007F00007F00007F0000007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F7F00007F00007F00007F0000007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F7F00007F0000
+ 7F00007F0000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F7F00007F00007F00007F
+ 0000007F7F007F7F000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000007F7F7F00007F00007F00007F0000007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F7F00007F00007F00007F0000007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F7F00007F00007F00007F0000007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F7F00
+ 007F00007F00007F0000007F7F007F7F00000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000007F7F7F00007F0000
+ 7F00007F0000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F7F00007F00007F00007F
+ 0000007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F00
+ 7F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F
+ 007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F7F007F
+ 7F007F7F007F7F007F7F}
+ OnClick = BulletsButtonClick
+ end
+ object Label1: TLabel
+ Left = 120
+ Top = 8
+ Width = 44
+ Height = 13
+ Caption = 'Font Size'
+ end
+ object FontSize: TEdit
+ Left = 176
+ Top = 6
+ Width = 31
+ Height = 21
+ TabOrder = 0
+ Text = '10'
+ OnChange = FontSizeChange
+ end
+ object UpDown1: TUpDown
+ Left = 207
+ Top = 6
+ Width = 17
+ Height = 21
+ Associate = FontSize
+ Min = 1
+ Max = 1638
+ Position = 10
+ TabOrder = 1
+ Wrap = False
+ end
+ end
+ object Ruler: TPanel
+ Left = 0
+ Top = 32
+ Width = 533
+ Height = 26
+ Align = alTop
+ Alignment = taLeftJustify
+ BevelInner = bvLowered
+ BevelOuter = bvNone
+ BorderWidth = 1
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clBlack
+ Font.Height = -12
+ Font.Name = 'Arial'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 1
+ OnResize = RulerResize
+ object FirstInd: TLabel
+ Left = 5
+ Top = 2
+ Width = 10
+ Height = 9
+ AutoSize = False
+ Caption = 'ê'
+ DragCursor = crArrow
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clBlack
+ Font.Height = -12
+ Font.Name = 'Wingdings'
+ Font.Style = []
+ ParentFont = False
+ OnMouseDown = RulerItemMouseDown
+ OnMouseMove = RulerItemMouseMove
+ OnMouseUp = FirstIndMouseUp
+ end
+ object LeftInd: TLabel
+ Left = 5
+ Top = 12
+ Width = 10
+ Height = 11
+ AutoSize = False
+ Caption = 'é'
+ DragCursor = crArrow
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clBlack
+ Font.Height = -12
+ Font.Name = 'Wingdings'
+ Font.Style = []
+ ParentFont = False
+ OnMouseDown = RulerItemMouseDown
+ OnMouseMove = RulerItemMouseMove
+ OnMouseUp = LeftIndMouseUp
+ end
+ object RulerLine: TBevel
+ Left = 4
+ Top = 12
+ Width = 579
+ Height = 2
+ Shape = bsTopLine
+ end
+ object RightInd: TLabel
+ Left = 575
+ Top = 14
+ Width = 10
+ Height = 14
+ Caption = 'ñ'
+ DragCursor = crArrow
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clBlack
+ Font.Height = -12
+ Font.Name = 'Wingdings'
+ Font.Style = []
+ ParentFont = False
+ OnMouseDown = RulerItemMouseDown
+ OnMouseMove = RulerItemMouseMove
+ OnMouseUp = RightIndMouseUp
+ end
+ end
+ object StatusBar: TStatusBar
+ Left = 0
+ Top = 362
+ Width = 533
+ Height = 18
+ Panels = <>
+ SimplePanel = True
+ end
+ object RichEdit1: TRichEdit
+ Left = 0
+ Top = 58
+ Width = 533
+ Height = 304
+ Hint = 'Use #| for VerseList ( e.g. #jo1:19-21,24;Mk 4:5| )'
+ HelpContext = 400
+ Align = alClient
+ HideSelection = False
+ ScrollBars = ssBoth
+ TabOrder = 3
+ WantTabs = True
+ OnSelectionChange = SelectionChange
+ end
+end
diff --git a/apps/windoze/CBuilder5/BibleCS/editentryfrm.h b/apps/windoze/CBuilder5/BibleCS/editentryfrm.h
new file mode 100644
index 0000000..058c385
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/editentryfrm.h
@@ -0,0 +1,108 @@
+//----------------------------------------------------------------------------
+//Borland C++Builder
+//Copyright (c) 1987, 1998 Borland International Inc. All Rights Reserved.
+//----------------------------------------------------------------------------
+//----------------------------------------------------------------------------
+#ifndef editentryfrmH
+#define editentryfrmH
+//----------------------------------------------------------------------------
+#include <Outline.hpp>
+#include <Grids.hpp>
+#include <Buttons.hpp>
+#include <ExtCtrls.hpp>
+#include <StdCtrls.hpp>
+#include <ComCtrls.hpp>
+#include <Menus.hpp>
+#include <Dialogs.hpp>
+#include <Forms.hpp>
+#include <Controls.hpp>
+#include <Graphics.hpp>
+#include <Classes.hpp>
+#include <SysUtils.hpp>
+#include <Messages.hpp>
+#include <Windows.hpp>
+#include <System.hpp>
+#include <swmodule.h>
+#include <swdisprtf.h>
+//----------------------------------------------------------------------------
+class TEditEntry : public TForm
+{
+__published:
+ TPanel *SpeedBar;
+ TSpeedButton *UndoButton;
+ TSpeedButton *CutButton;
+ TSpeedButton *CopyButton;
+ TSpeedButton *PasteButton;
+ TBevel *Bevel1;
+ TSpeedButton *BoldButton;
+ TSpeedButton *ItalicButton;
+ TSpeedButton *LeftAlign;
+ TSpeedButton *CenterAlign;
+ TSpeedButton *RightAlign;
+ TSpeedButton *UnderlineButton;
+ TSpeedButton *BulletsButton;
+ TEdit *FontSize;
+ TUpDown *UpDown1;
+ TPanel *Ruler;
+ TLabel *FirstInd;
+ TLabel *LeftInd;
+ TBevel *RulerLine;
+ TLabel *RightInd;
+ TStatusBar *StatusBar;
+ TRichEdit *RichEdit1;
+ TLabel *Label1;
+ void __fastcall SelectionChange(TObject *Sender);
+ void __fastcall AlignClick(TObject *Sender);
+ void __fastcall EditUndoClick(TObject *Sender);
+ void __fastcall EditCutClick(TObject *Sender);
+ void __fastcall EditCopyClick(TObject *Sender);
+ void __fastcall EditPasteClick(TObject *Sender);
+ void __fastcall RulerResize(TObject *Sender);
+ void __fastcall FormCreate(TObject *Sender);
+ void __fastcall FormResize(TObject *Sender);
+ void __fastcall FormPaint(TObject *Sender);
+ void __fastcall BoldButtonClick(TObject *Sender);
+ void __fastcall FontSizeChange(TObject *Sender);
+ void __fastcall UnderlineButtonClick(TObject *Sender);
+ void __fastcall ItalicButtonClick(TObject *Sender);
+ void __fastcall BulletsButtonClick(TObject *Sender);
+ void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
+ void __fastcall RulerItemMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void __fastcall RulerItemMouseMove(TObject *Sender, TShiftState Shift, int X, int Y);
+ void __fastcall FirstIndMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void __fastcall LeftIndMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void __fastcall RightIndMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void __fastcall FormActivate(TObject *Sender);
+
+private:
+ AnsiString FFileName;
+ bool FUpdating;
+ int FDragOfs;
+ bool FDragging;
+ TTextAttributes *__fastcall CurrText(void);
+ void __fastcall CheckFileSave(void);
+ void __fastcall SetupRuler(void);
+ void __fastcall SetEditRect(void);
+ void __fastcall ShowHint(TObject *Sender);
+
+public:
+ SWModule *Module;
+ SWDispRTF *RTFDisplay;
+
+ virtual __fastcall TEditEntry(TComponent *Owner);
+ __fastcall ~TEditEntry();
+ char *ResultBuf;
+ void ExtractRTF();
+};
+//----------------------------------------------------------------------------
+class TCharsetObject : public TObject
+{
+public:
+ int Charset;
+ __fastcall TCharsetObject(int FCharset);
+};
+//----------------------------------------------------------------------------
+extern TEditEntry *EditEntry;
+//----------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/BibleCS/getsaved.conf b/apps/windoze/CBuilder5/BibleCS/getsaved.conf
new file mode 100644
index 0000000..6a77364
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/getsaved.conf
@@ -0,0 +1,8 @@
+[ROOT]
+getsaved=What's God all about anyway?
+
+[getsaved]
+verse1=Romans 3:23
+verse2=Romans 6:23
+verse3=John 3:16
+verse4=I John 1:9 \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/BibleCS/layout.conf b/apps/windoze/CBuilder5/BibleCS/layout.conf
new file mode 100644
index 0000000..aaf1482
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/layout.conf
@@ -0,0 +1,156 @@
+
+[CommentView]
+DTN=
+Family=
+Geneva=
+JFB=
+MAK=
+MHC=
+MHCC=
+PNT=
+Personal=
+RWP=
+Rieger=
+TDavid=
+TFG=
+TSK=
+Wesley=
+
+[History]
+<<<<<<< layout.conf=
+<<<<<<< layout.conf=
+<<<<<<< layout.conf=
+>>>>>>> 1.26=
+>>>>>>> 1.26=
+LastComModule=MHC
+LastTextModule=NKJV
+LastVerse=John 3:1
+LookupSaveCount=5
+LookupText=John 3:1
+LookupText=John 3:16
+LookupText=Isaiah 53:5
+LookupText=Isaiah 53:3
+LookupText=Ps 22:6-8
+SearchSaveCount=5
+SearchText=God love world
+SearchText=sheep fold
+SearchText=singular
+SearchText=man
+SearchText=dagger
+
+[LDView]
+AmTract=
+BDB=true
+Eastons=
+Hitchcocks=
+ISBE=
+Naves=
+Packard=
+Smiths=
+StrongsGreek=
+StrongsHebrew=
+Thayer=
+Torrey=
+WebstersDict=
+
+[TextView]
+>>>>>>> 1.26=
+AKJV=true
+ALB=false
+ASV=true
+Afr1983=
+AraSVD=true
+BBE=true
+BHS=true
+BWE=
+Byz=true
+CLNT=
+ChiGNPU=
+ChiGU=true
+Common=
+CzeBKR=false
+CzeCEP=false
+CzeKMS=true
+CzeNKB=false
+DR=true
+DRA=false
+Dan=true
+Darby=false
+Diaglott=true
+Esperanto=true
+FinPR=true
+FreCrl=true
+FreLSG=false
+GerBen=false
+GerLut=false
+GerLut1545=false
+GerSch=true
+GothicA=true
+GothicB=false
+HNV=false
+HunKar=true
+IGNT=true
+ISV=true
+Icelandic=true
+IndBIS=true
+IndTB=false
+IndTL=false
+ItaLND=true
+ItaNRV=false
+JPS=true
+JST=true
+JapKUG=true
+JapSNKI=false
+KJV=true
+Ketchi=true
+Korean=true
+LO=true
+LXX=false
+LXXM=true
+Latvian=true
+ManxGaelic=true
+Maori=true
+Mel=true
+Montgomery=false
+Murdock=true
+N27U4=
+NASB95=
+NCV=
+NIV=
+NKJV=
+Norsk=true
+ORTHJBC=true
+PorAA=true
+RNKJV=false
+RST=true
+RWebster=false
+RomCor=true
+Rotherham=true
+ScotsGaelic=false
+Scrivner=true
+SpaRV=false
+SpaSEV=false
+SpaVNT=false
+Stephanus=true
+Swahili=true
+SweSVE=true
+Tagalog=true
+Tamil=
+ThaiKJV=true
+Tisch=true
+Turkish=true
+Twenty=false
+UMGreek=true
+Ukrainian=true
+Uma=true
+Viet=true
+Vulgate=true
+Vulgate_HebPs=false
+WEB=false
+WH=false
+WHNU=true
+Websters=true
+Weymouth=false
+Xhosa=true
+YLT=false
+
diff --git a/apps/windoze/CBuilder5/BibleCS/mainfrm.cpp b/apps/windoze/CBuilder5/BibleCS/mainfrm.cpp
new file mode 100644
index 0000000..f0b6e16
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/mainfrm.cpp
@@ -0,0 +1,2068 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#include <vcl/clipbrd.hpp>
+#pragma hdrstop
+
+#include "mainfrm.h"
+#include "swdisprtfchap.h"
+#include "searchfrm.h"
+#include "swwinlog.h"
+#include "AboutBoxfrm.h"
+#include "ModInstForm.h"
+#include "biblecsmgr.h"
+#include "Greek2Greek.h"
+#include "bookmarkfrm.h"
+#include "optionfrm.h"
+#include "vrslstfrm.h"
+#include <utilstr.h>
+#include <filemgr.h>
+#include <localemgr.h>
+#include "editentryfrm.h"
+#include "versesel.h"
+#include "splashfrm.h"
+#include "ModVisFrm.h"
+#include "DevOfTheDay.h"
+#include "SplashPage.h"
+//#include "nsEmbedAPI.h"
+
+#include "sword.h"
+//---------------------------------------------------------------------------
+#ifndef USEOLDRTF
+#pragma link "RxRichEd"
+#endif
+//#pragma link "MOZILLACONTROLLib_OCX"
+//#pragma link "SHDocVw_OCX"
+#pragma resource "*.dfm"
+TForm1 *Form1;
+//---------------------------------------------------------------------------
+
+
+
+void __fastcall TForm1::AppMessage(tagMSG &Msg, bool &Handled)
+{
+ if (Msg.message == WM_VERSE)
+ {
+ HKEY hkey;
+ LONG result;
+ unsigned long verSize = 32;
+ result = RegOpenKeyEx(HKEY_CLASSES_ROOT, "sword\\OpenVerse", NULL, KEY_READ | KEY_WRITE, &hkey);
+ result = RegQueryValueEx(hkey, NULL, NULL, NULL, NULL, &verSize);
+ char* verStr = new char[verSize];
+ result = RegQueryValueEx(hkey, NULL, NULL, NULL, verStr, &verSize);
+ result = RegCloseKey(hkey);
+ result = RegDeleteKey(HKEY_CLASSES_ROOT, "sword\\OpenVerse");
+ NavigateVerseURL(verStr);
+ Handled = true;
+ }
+}
+
+void TForm1::NavigateVerseURL (char* verStrIN)
+{
+ unsigned long verSize = strlen(verStrIN) + 1;
+ char * verStr = new char[verSize];
+ strcpy (verStr, verStrIN);
+ char * verStr2 = new char[verSize];
+ unsigned long verSize2 = 0;
+ if (*(verStr + verSize - 2) == '\"') {
+ *(verStr + verSize - 2) = 0;
+ }
+ verSize = 0;
+ if (strstr(verStr, "libronix")) {
+ char* bib = strstr(verStr, "bible:");
+ if (bib) {
+ verSize = 6 + (unsigned long)(bib - verStr);
+ }
+ }
+ else if (strstr(verStr, "sword://")) {
+ verSize = 9;
+ }
+ else if (*verStr == '\"') {
+ verSize = 1;
+ }
+
+ while (verStr[verSize] != 0) {
+ verStr2[verSize2] = verStr[verSize];
+ verSize++;
+ verSize2++;
+ }
+ verStr2[verSize2] = 0;
+
+ char * verse = strstr(verStr2, "/");
+ if (verse) {
+ *verse = 0;
+ verse++;
+ }
+ else {
+ verse = verStr2;
+ verStr2 = 0;
+ }
+
+ freeHandLookup->Text = verse;
+ freeHandLookupoldKeyPress(0, '\r');
+
+ delete [] verStr;
+ delete [] verStr2;
+}
+
+__fastcall TForm1::TForm1(TComponent* Owner)
+ : TForm(Owner)
+{
+ optionsconf = new SWConfig("./options.conf");
+
+ Lookup->Text = "[ SWORD DDE Lookup ]";
+ Search->Text = "[ SWORD DDE Search ]";
+ modstates.clear();
+ displays.clear();
+ ctrlstates.clear();
+ DefaultVSKey = 0;
+ DefaultStrKey = 0;
+}
+
+void __fastcall TForm1::DisplayHint(TObject* Sender)
+{
+ StatusBar1->SimpleText = GetLongHint(Application->Hint);
+}
+
+//---------------------------------------------------------------------------
+__fastcall TForm1::~TForm1()
+{
+
+ list <SWDisplay *>::iterator it;
+ int loop;
+
+
+ if (mainmgr)
+ delete mainmgr;
+ for (it = displays.begin(); it != displays.end(); it++)
+ delete *it;
+
+ if (layoutconf)
+ delete layoutconf;
+
+ if (optionsconf)
+ delete optionsconf;
+
+ for (loop = 0; loop < 10; loop++) {
+ if (ctrlstates[loop])
+ delete ctrlstates[loop];
+ }
+
+ if (DefaultVSKey)
+ delete DefaultVSKey;
+ if (DefaultStrKey)
+ delete DefaultStrKey;
+
+ list <ModState *>::iterator mit;
+ for (mit = modstates.begin(); mit != modstates.end(); mit++) {
+ delete (*mit);
+ }
+}
+//---------------------------------------------------------------------------
+void TForm1::BuildRTFHeader(char *buf, char *font, int max, char *type)
+{
+ char buf1[1024], buf2[1024];
+ SectionMap::iterator sit;
+ string value;
+ ConfigEntMap::iterator entry;
+ int CurrVSRed, CurrVSGreen, CurrVSBlue, BodyRed, BodyGreen, BodyBlue,
+ VSNumRed, VSNumGreen, VSNumBlue;
+ TColor CurrVSColor, VSNumColor, BodyColor;
+
+ sprintf(buf1, "{\\rtf1\\ansi");
+ if (font) {
+ // Font Table
+ // 0: Text Body
+ sprintf(buf2, "{\\fonttbl{\\f0\\fdecor\\fprq2 %s;}" , font);
+ strcat(buf1, buf2);
+ // 1: Chapter Heading
+ sprintf(buf2, "{\\f1\\froman\\fcharset0\\fprq2 %s;}", font);
+ strcat(buf1, buf2);
+ // 2: Unknown
+ sprintf(buf2, "{\\f2\\froman\\fcharset0\\fprq2 %s;}", font);
+ strcat(buf1, buf2);
+ // 3: Unknown
+ sprintf(buf2, "{\\f3\\froman\\fcharset0\\fprq2 %s;}", font);
+ strcat(buf1, buf2);
+ // 4: Unknown
+ sprintf(buf2, "{\\f4\\froman\\fcharset0\\fprq2 %s;}", font);
+ strcat(buf1, buf2);
+ // 7, 8: Unknown
+ strcat(buf1, "{\\f7\\froman\\fcharset2\\fprq2 Symbol;}{\\f8\\froman\\fcharset2\\fprq2 Symbol;}}");
+ }
+ else {
+ sprintf(buf2, "{\\fonttbl{\\f0\\fdecor\\fprq2 Times New Roman;}{\\f1\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f7\\froman\\fcharset2\\fprq2 Symbol;}{\\f8\\froman\\fcharset2\\fprq2 Symbol;}}");
+ strcat(buf1, buf2);
+ }
+
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ ConfigEntMap &section = (*sit).second;
+
+ CurrVSColor = TColor((((entry = section.find("CurrentVSColor")) != section.end()) ? atoi((*entry).second.c_str()) : 0));
+ TColorToRGB(CurrVSColor, CurrVSRed, CurrVSGreen, CurrVSBlue);
+
+ VSNumColor = TColor((((entry = section.find("VSNumberColor")) != section.end()) ? atoi((*entry).second.c_str()) : 0));
+ TColorToRGB(VSNumColor, VSNumRed, VSNumGreen, VSNumBlue);
+
+ if(!strcmp(type, "Text")) {
+ BodyColor = TColor((((entry = section.find("TextFontColor")) != section.end()) ? atoi((*entry).second.c_str()) : 0));
+ TColorToRGB(BodyColor, BodyRed, BodyGreen, BodyBlue);
+ }
+ else if (!strcmp(type, "Comment")) {
+ BodyColor = TColor((((entry = section.find("CommentFontColor")) != section.end()) ? atoi((*entry).second.c_str()) : 0));
+ TColorToRGB(BodyColor, BodyRed, BodyGreen, BodyBlue);
+ }
+ else if(!strcmp(type, "LD")) {
+ BodyColor = TColor((((entry = section.find("LDFontColor")) != section.end()) ? atoi((*entry).second.c_str()) : 0));
+ TColorToRGB(BodyColor, BodyRed, BodyGreen, BodyBlue);
+ }
+ else {
+ BodyRed = 0;
+ BodyGreen = 0;
+ BodyBlue = 0;
+ }
+
+ // Color Table:
+ // 1: Verse Number/ Verse info
+ sprintf(buf2, "{\\colortbl;\\red%d\\green%d\\blue%d;" , VSNumRed, VSNumGreen, VSNumBlue);
+ strcat(buf1, buf2);
+ // 2: Current Verse Color
+ sprintf(buf2, "\\red%d\\green%d\\blue%d;", CurrVSRed, CurrVSGreen, CurrVSBlue);
+ strcat(buf1, buf2);
+ //3: Unknown 4: Unknown 5: Unknown 6: Unknown
+ strcat(buf1, "\\red255\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red255\\green0\\blue0;");
+ // 7: Verse/Body Text Color
+ sprintf(buf2, "\\red%d\\green%d\\blue%d;}",BodyRed, BodyGreen, BodyBlue);
+ strcat(buf1, buf2);
+ }
+ else {
+ sprintf(buf2, "{\\colortbl;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red255\\green0\\blue0;\\red0\\green\\blue0;\\red0\\green\\blue0;\\red0\\green\\blue0;}");
+ strcat(buf1, buf2);
+ }
+
+ memset(buf, 0, max);
+ strncpy(buf, buf1, max);
+}
+
+char TForm1::CreateTextPane(SWModule *mod, char *font) {
+ TTabSheet *newtab = new TTabSheet(this);
+ SWDispRTFChap *newrtf = new SWDispRTFChap(this);
+ char buf[1024];
+ SectionMap::iterator sit;
+
+ newtab->Caption = mod->Name();
+ newtab->Hint = mod->Description();
+ newtab->ParentShowHint = true;
+ newtab->PageControl = PageControl1;
+ newrtf->Parent = newtab;
+ newrtf->Align = alClient;
+ newrtf->ScrollBars = ssVertical;
+ newrtf->ReadOnly = true;
+ newrtf->PopupMenu = (strcmp(mod->Name(), "N27U4")) ? PopupMenu2 : PopupMenu1;
+ newrtf->OnMouseDown = RTFMouseDown;
+
+ BuildRTFHeader(buf, font, 1024, "Text");
+ newrtf->RTFHeader = buf;
+
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ if ((*sit).second.find("AutoVSColor") != (*sit).second.end())
+ newrtf->MarkCurrentVerse = (atoi((*(*sit).second.find("AutoVSColor")).second.c_str())) ? true:false;
+ if ((*sit).second.find("TextBackColor") != (*sit).second.end())
+ newrtf->Color = TColor((atoi((*(*sit).second.find("TextBackColor")).second.c_str())));
+ if ((*sit).second.find("TextFontSize") != (*sit).second.end())
+ newrtf->FontSize = ( atoi((*(*sit).second.find("TextFontSize")).second.c_str()) - 12);
+ }
+ SWDisplay *disp = new RTFDisp(newrtf);
+ mod->Disp(disp);
+ displays.insert(displays.begin(), disp);
+ mod->SetKey(*DefaultVSKey);
+
+ return 0;
+}
+//---------------------------------------------------------------------------
+char TForm1::CreateCommentPane(SWModule *mod, char* font) {
+ TTabSheet *newtab = new TTabSheet(this);
+ TWinControl *newrtf;
+ char buf[1024];
+ SectionMap::iterator sit;
+
+ if ((*mainmgr->config->Sections[mod->Name()].find("ModDrv")).second == "HREFCom") {
+// if (mainmgr->config->Sections[mod->Name()]["External"] == "1") {
+ newrtf = new TPanel(this);
+ ((TPanel *)newrtf)->Caption = "Syncronizing to External Viewer";
+ SWDisplay *disp = new DispExternal();
+ mod->Disp(*displays.insert(displays.begin(), disp));
+/*
+ }
+ else {
+ // newrtf = new THTML(this->Handle);
+ // newrtf = new SWDispRTF(this);
+ newrtf = HTML1;
+ newrtf->Visible = true;
+ mod->Disp(*displays.insert(displays.begin(), new HREFDisp((THTML *)newrtf)));
+ // mod->Disp(*displays.insert(displays.begin(), new RTFDisp((SWDispRTF *)newrtf)));
+ }
+*/
+ }
+ else {
+/* IE Control
+ newrtf = new TCppWebBrowser(this);
+ HREFDisp *disp = new HREFDisp((TCppWebBrowser *)newrtf);
+ newrtf->Visible = true;
+ mod->Disp(*displays.insert(displays.begin(), disp));
+ ((TCppWebBrowser *)newrtf)->OnBeforeNavigate2 = CppWebBrowser1BeforeNavigate2;
+*/
+ newrtf = new SWDispRTF(this);
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ if ((*sit).second.find("CommentFontSize") != (*sit).second.end())
+ ((SWDispRTF*)newrtf)->FontSize = ( atoi((*(*sit).second.find("CommentFontSize")).second.c_str()) - 12);
+ }
+ SWDisplay *disp = new RTFDisp((SWDispRTF *)newrtf);
+ mod->Disp(*displays.insert(displays.begin(), disp));
+ ((SWDispRTF *)newrtf)->ScrollBars = ssVertical;
+ ((SWDispRTF *)newrtf)->ReadOnly = true;
+
+ if ((*mainmgr->config->Sections[mod->Name()].find("ModDrv")).second == "RawFiles") {
+ ((SWDispRTF *)newrtf)->PopupMenu = PopupMenu3;
+ ((SWDispRTF *)newrtf)->ExpandNewLine = false;
+ }
+ else ((SWDispRTF *)newrtf)->PopupMenu = PopupMenu2;
+ ((SWDispRTF *)newrtf)->OnMouseDown = RTFMouseDown;
+ }
+
+ newtab->Caption = mod->Name();
+ newtab->Hint = mod->Description();
+ newtab->ParentShowHint = true;
+ newtab->PageControl = PageControl2;
+ BuildRTFHeader(buf, font, 1024, "Comment");
+
+ if ((*mainmgr->config->Sections[mod->Name()].find("ModDrv")).second != "HREFCom") {
+ ((SWDispRTF *)newrtf)->RTFHeader = buf;
+ }
+
+ newrtf->Parent = newtab;
+ newrtf->Align = alClient;
+
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ if ((*sit).second.find("CommentBackColor") != (*sit).second.end()){
+ ((SWDispRTF *)newrtf)->Color = TColor(atoi((*(*sit).second.find("CommentBackColor")).second.c_str()));
+ }
+ }
+
+ mod->SetKey(*DefaultVSKey);
+ return 0;
+}
+//---------------------------------------------------------------------------
+char TForm1::CreateLDPane(SWModule *mod, char* font) {
+ TTabSheet *newtab = new TTabSheet(this);
+ SWDispRTF *newrtf = new SWDispRTF(this);
+ SectionMap::iterator sit;
+ char buf[1024];
+
+ newtab->Caption = mod->Name();
+ newtab->Hint = mod->Description();
+ newtab->ParentShowHint = true;
+ newtab->PageControl = PageControl3;
+ BuildRTFHeader(buf, font, 1024, "LD");
+ newrtf->RTFHeader = buf;
+ newrtf->Parent = newtab;
+ newrtf->Align = alClient;
+ newrtf->ScrollBars = ssVertical;
+ newrtf->ReadOnly = true;
+ newrtf->PopupMenu = PopupMenu2;
+ newrtf->OnMouseDown = RTFMouseDown;
+
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ if ((*sit).second.find("LDBackColor") != (*sit).second.end()){
+ newrtf->Color = TColor((atoi((*(*sit).second.find("LDBackColor")).second.c_str())));
+ lbDictKeys->Color = TColor((atoi((*(*sit).second.find("LDBackColor")).second.c_str())));
+ }
+ if ((*sit).second.find("LDFontSize") != (*sit).second.end())
+ newrtf->FontSize = ( atoi((*(*sit).second.find("LDFontSize")).second.c_str()) - 12);
+ if ((*sit).second.find("LDFontColor") != (*sit).second.end())
+ lbDictKeys->Font->Color = TColor((atoi((*(*sit).second.find("LDFontColor")).second.c_str())));
+ }
+ SWDisplay *disp = new RTFDisp(newrtf);
+ mod->Disp(*displays.insert(displays.begin(), disp));
+ mod->SetKey(*DefaultStrKey);
+ return 0;
+}
+//---------------------------------------------------------------------------
+
+
+
+void TForm1::fillTreeTOC(TreeKeyIdx treeKey, TTreeView *tree, TTreeNode *parent) {
+ TTreeNode *node = tree->Items->AddChildObject(parent, treeKey.getLocalName(), (void *)treeKey.getOffset());
+ if (treeKey.firstChild()) {
+ fillTreeTOC(treeKey, tree, node);
+ treeKey.parent();
+ }
+ if (treeKey.nextSibling())
+ fillTreeTOC(treeKey, tree, parent);
+}
+
+
+void __fastcall TForm1::BookTOCChange(TObject* Sender, TTreeNode* Node) {
+ ModMap::iterator it;
+
+ if (mainmgr) {
+ it = mainmgr->Modules.find(PageControl2->ActivePage->Caption.c_str());
+ if (it != mainmgr->Modules.end()) {
+ ((TreeKeyIdx *)(SWKey *)*(it->second))->setOffset((long)Node->Data);
+ (*it).second->Display();
+ if (logmodstate)
+ modstates.insert(modstates.begin(), new ModState(PageControl2, PageControl2->ActivePage, (*it).second->KeyText()));
+ }
+ }
+}
+
+char TForm1::CreateBookPane(SWModule *mod, char* font) {
+ TTabSheet *newtab = new TTabSheet(this);
+ TWinControl *newrtf;
+ char buf[1024];
+ SectionMap::iterator sit;
+
+ if ((*mainmgr->config->Sections[mod->Name()].find("ModDrv")).second == "HREFCom") {
+// if (mainmgr->config->Sections[mod->Name()]["External"] == "1") {
+ newrtf = new TPanel(this);
+ ((TPanel *)newrtf)->Caption = "Syncronizing to External Viewer";
+ SWDisplay *disp = new DispExternal();
+ mod->Disp(*displays.insert(displays.begin(), disp));
+/*
+ }
+ else {
+ // newrtf = new THTML(this->Handle);
+ // newrtf = new SWDispRTF(this);
+ newrtf = HTML1;
+ newrtf->Visible = true;
+ mod->Disp(*displays.insert(displays.begin(), new HREFDisp((THTML *)newrtf)));
+ // mod->Disp(*displays.insert(displays.begin(), new RTFDisp((SWDispRTF *)newrtf)));
+ }
+*/
+ }
+ else {
+/* IE Control
+ newrtf = new TCppWebBrowser(this);
+ HREFDisp *disp = new HREFDisp((TCppWebBrowser *)newrtf);
+ newrtf->Visible = true;
+ mod->Disp(*displays.insert(displays.begin(), disp));
+ ((TCppWebBrowser *)newrtf)->OnBeforeNavigate2 = CppWebBrowser1BeforeNavigate2;
+*/
+ newrtf = new SWDispRTF(this);
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ if ((*sit).second.find("CommentFontSize") != (*sit).second.end())
+ ((SWDispRTF*)newrtf)->FontSize = ( atoi((*(*sit).second.find("CommentFontSize")).second.c_str()) - 12);
+ }
+ SWDisplay *disp = new RTFDisp((SWDispRTF *)newrtf);
+ mod->Disp(*displays.insert(displays.begin(), disp));
+ ((SWDispRTF *)newrtf)->ScrollBars = ssVertical;
+ ((SWDispRTF *)newrtf)->ReadOnly = true;
+
+ if ((*mainmgr->config->Sections[mod->Name()].find("ModDrv")).second == "RawFiles") {
+ ((SWDispRTF *)newrtf)->PopupMenu = PopupMenu3;
+ ((SWDispRTF *)newrtf)->ExpandNewLine = false;
+ }
+ else ((SWDispRTF *)newrtf)->PopupMenu = PopupMenu2;
+ ((SWDispRTF *)newrtf)->OnMouseDown = RTFMouseDown;
+ }
+
+ newtab->Caption = mod->Name();
+ newtab->Hint = mod->Description();
+ newtab->ParentShowHint = true;
+ newtab->PageControl = PageControl2;
+ BuildRTFHeader(buf, font, 1024, "Comment");
+
+ if ((*mainmgr->config->Sections[mod->Name()].find("ModDrv")).second != "HREFCom") {
+ ((SWDispRTF *)newrtf)->RTFHeader = buf;
+ }
+
+ TSplitter *splitter = new TSplitter(this);
+ splitter->Parent = newtab;
+ splitter->Align = alLeft;
+
+ TTreeView *toc = new TTreeView(this);
+ toc->Parent = newtab;
+ toc->Align = alLeft;
+ toc->OnChange = BookTOCChange;
+ toc->Items->Clear();
+ *mod = TOP;
+ ((TreeKeyIdx *)((SWKey *)*mod))->firstChild();
+ fillTreeTOC(*(TreeKeyIdx *)((SWKey *)*mod), toc, toc->Selected);
+
+ newrtf->Parent = newtab;
+ newrtf->Align = alClient;
+
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ if ((*sit).second.find("CommentBackColor") != (*sit).second.end()){
+ ((SWDispRTF *)newrtf)->Color = TColor(atoi((*(*sit).second.find("CommentBackColor")).second.c_str()));
+ }
+ }
+
+// mod->SetKey(*DefaultVSKey);
+ return 0;
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::PageControl1Change(TObject *Sender)
+{
+ RefreshActiveSheet(PageControl1);
+ Form1->ActiveControl = PageControl1;
+}
+//---------------------------------------------------------------------------
+void TForm1::RefreshActiveSheet(TPageControl *pc)
+{
+ ModMap::iterator it;
+
+ if (mainmgr) {
+ it = mainmgr->Modules.find(pc->ActivePage->Caption.c_str());
+ if (it != mainmgr->Modules.end()) {
+ (*it).second->Display();
+ if (logmodstate)
+ modstates.insert(modstates.begin(), new ModState(pc, pc->ActivePage, (*it).second->KeyText()));
+ }
+ }
+}
+
+
+void TForm1::TextKeyChanged()
+{
+ cbBook->ItemIndex = cbBook->Items->IndexOf(DefaultVSKey->books[DefaultVSKey->Testament()-1][DefaultVSKey->Book()-1].name);
+ CHBox->Text = DefaultVSKey->Chapter();
+ VSBox->Text = DefaultVSKey->Verse();
+ freeHandLookup->Text = (const char *)*DefaultVSKey;
+ RefreshActiveSheet(PageControl1);
+ logmodstate = false; // only log state once
+ RefreshActiveSheet(PageControl2);
+ logmodstate = true;
+}
+
+
+void __fastcall TForm1::btnLookupClick(TObject *Sender)
+{
+ if (!(StrToInt(CHBox->Text)) || (!StrToInt(VSBox->Text)))
+ DefaultVSKey->AutoNormalize(0);
+
+ if (StrToInt(CHBox->Text) < 0)
+ CHBox->Text = StrToInt(CHBox->Text) + 1;
+ if (StrToInt(VSBox->Text) < 0)
+ VSBox->Text = StrToInt(VSBox->Text) + 1;
+
+ (*DefaultVSKey) = (cbBook->Text + " " + CHBox->Text + ":" + VSBox->Text).c_str();
+ TextKeyChanged();
+ DefaultVSKey->AutoNormalize(1);
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::PageControl2Change(TObject *Sender)
+{
+ RefreshActiveSheet(PageControl2);
+ Form1->ActiveControl = PageControl2;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::DictKeyEditChange(TObject *Sender)
+{
+ if (DefaultStrKey) {
+ if (DictKeyEdit->Modified) {
+ *DefaultStrKey = DictKeyEdit->Text.c_str();
+ RefreshActiveSheet(PageControl3);
+ DictKeyEdit->Modified = false;
+ FillDictKeys();
+ }
+ }
+}
+
+void TForm1::FillDictKeys() {
+ ModMap::iterator it;
+ int index = 0;
+ SWKey saveKey;
+
+ if (mainmgr) {
+ it = mainmgr->Modules.find(PageControl3->ActivePage->Caption.c_str());
+ if (it != mainmgr->Modules.end()) {
+ SWModule *mod = (*it).second;
+ mod->KeyText(); // snap to entry
+ saveKey = mod->KeyText();
+ int count = lbDictKeys->Height / lbDictKeys->ItemHeight;
+ lbDictKeys->Items->Clear();
+ for (int i = 0; i < (count / 2); i++)
+ (*mod)++;
+ for (int i = 0; i < count-1; i++)
+ (*mod)--;
+ mod->Error();
+ for (;!mod->Error() && count;count--,(*mod)++) {
+ lbDictKeys->Items->Add(mod->KeyText());
+ if (saveKey == mod->Key())
+ index = lbDictKeys->Items->Count-1;
+ }
+ lbDictKeys->ItemIndex = index;
+ }
+ }
+}
+
+
+//---------------------------------------------------------------------------
+void __fastcall TForm1::PageControl3Change(TObject *Sender)
+{
+ *DefaultStrKey = DictKeyEdit->Text.c_str();
+ RefreshActiveSheet(PageControl3);
+ Form1->ActiveControl = PageControl3;
+ FillDictKeys();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::NewSearchWindow1Click(TObject *Sender)
+{
+ Form2->Show();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Exit1Click(TObject *Sender)
+{
+ Close();
+}
+
+void __fastcall TForm1::About1Click(TObject *Sender)
+{
+ AboutBox->ShowModal();
+}
+
+
+String TForm1::TrimJunk(String src) {
+ bool hasDigit = false;
+ bool hasAlpha = false;
+ String retVal = "";
+
+ char *ch = src.c_str();
+ for (;*ch; ch++) {
+ if (isdigit(*ch))
+ hasDigit = true;
+ if (isalpha(*ch))
+ hasAlpha = true;
+ }
+ for (ch = src.c_str(); *ch; ch++) {
+ if (hasDigit && !hasAlpha) { // number
+ if (isdigit(*ch)) retVal += *ch;
+ }
+ else if (hasAlpha) { // alpha
+ if (isalpha(*ch)) retVal += *ch;
+ }
+ else retVal += *ch;
+ }
+ return retVal;
+}
+
+
+//---------------------------------------------------------------------------
+void __fastcall TForm1::DictionaryLookup1Click(TObject *Sender)
+{
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ int wordstart;
+ int saveSelStart = rtf->SelStart;
+ String lookupKey;
+ ConfigEntMap::iterator eit;
+ char preChar = 0;
+
+ if (!rtf->SelLength) {
+#ifndef USEOLDRTF
+ lookupKey = TrimJunk(rtf->WordAtCursor());
+#else
+ while (wordstart = rtf->SelStart;((wordstart > -1)&&(isdigit(ch)||isalpha(ch))); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length()) - rtf->SelStart - 1;
+ preChar = rtf->Text[(rtf->SelStart)?rtf->SelStart:0];
+ lookupKey = Trim(rtf->SelText);
+ rtf->SelStart = saveSelStart;
+ rtf->SelLength = 0;
+#endif
+ }
+ else {
+ preChar = rtf->Text[(rtf->SelStart)?rtf->SelStart:0];
+ lookupKey = Trim(rtf->SelText);
+ }
+
+ // check if all digits (strongs)
+ int i;
+ for (i = 0; i < strlen(lookupKey.c_str()); i++) {
+ if (!isdigit(lookupKey.c_str()[i]))
+ break;
+ }
+
+ if ((i == strlen(lookupKey.c_str())) && (i)) {
+ String curLex = PageControl3->ActivePage->Caption;
+ String feature = (DefaultVSKey->Testament() == 1)?"Hebrew":"Greek";
+ feature += (preChar == '(')?"Parse":"Def";
+ if (!hasFeature(mainmgr, curLex.c_str(), feature.c_str())) {
+ string tmpval = ((eit = optionsconf->Sections["ModDefaults"].find(feature.c_str())) != optionsconf->Sections["ModDefaults"].end())? (*eit).second : (string)"";
+ for (int i = 0; i < PageControl3->PageCount; i++) {
+ if (!stricmp(PageControl3->Pages[i]->Caption.c_str(), tmpval.c_str())) {
+ PageControl3->ActivePageIndex = i;
+ break;
+ }
+ }
+ }
+ }
+
+ DictKeyEdit->Text = lookupKey;
+}
+
+
+void __fastcall TForm1::verseLookupClick(TObject *Sender)
+{
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ int wordstart;
+ int saveSelStart = rtf->SelStart;
+
+ if (!rtf->SelLength) {
+ for (wordstart = rtf->SelStart; (wordstart > -1)&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length()) - rtf->SelStart - 1;
+ freeHandLookup->Text = Trim(rtf->SelText);
+ rtf->SelStart = saveSelStart;
+ rtf->SelLength = 0;
+ }
+ else freeHandLookup->Text = Trim(rtf->SelText);
+ char ret = '\r';
+ freeHandLookupoldKeyPress(Sender, ret);
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::SaveLayout1Click(TObject *Sender)
+{
+ ConfigEntMap sit;
+ sit = layoutconf->Sections["Screen"];
+ if(Form1->WindowState == wsMaximized) {
+ sit.erase("Maximized"); sit.insert(ConfigEntMap::value_type("Maximized", "true"));
+ }
+ else {
+ sit.erase("Maximized"); sit.insert(ConfigEntMap::value_type("Maximized", "false"));
+ sit.erase("MainTop"); sit.insert(ConfigEntMap::value_type("MainTop", IntToStr(Form1->Top).c_str()));
+ sit.erase("MainLeft"); sit.insert(ConfigEntMap::value_type("MainLeft", IntToStr(Form1->Left).c_str()));
+ sit.erase("MainHeight"); sit.insert(ConfigEntMap::value_type("MainHeight", IntToStr(Form1->Height).c_str()));
+ sit.erase("MainWidth"); sit.insert(ConfigEntMap::value_type("MainWidth", IntToStr(Form1->Width).c_str()));
+ }
+ sit.erase("TextComHeight"); sit.insert(ConfigEntMap::value_type("TextComHeight", IntToStr(pnlTextCom->Height).c_str()));
+ sit.erase("TextWidth"); sit.insert(ConfigEntMap::value_type("TextWidth", IntToStr(pnlText->Width).c_str()));
+ sit.erase("SearchTop"); sit.insert(ConfigEntMap::value_type("SearchTop", IntToStr(Form2->Top).c_str()));
+ sit.erase("SearchLeft"); sit.insert(ConfigEntMap::value_type("SearchLeft", IntToStr(Form2->Left).c_str()));
+ sit.erase("SearchWidth"); sit.insert(ConfigEntMap::value_type("SearchWidth", IntToStr(Form2->Width).c_str()));
+ sit.erase("SearchHeight"); sit.insert(ConfigEntMap::value_type("SearchHeight", IntToStr(Form2->Height).c_str()));
+ layoutconf->Sections["Screen"] = sit;
+ layoutconf->Save();
+}
+
+
+void TForm1::fillVKeySelector(VerseKey *vk) {
+ VerseKey *myVk = (VerseKey *)vk->clone();
+ myVk->Error(); //clear error
+ (*myVk) = TOP;
+ cbBook->Clear();
+ while (!myVk->Error()) {
+ AnsiString s1 = (const char *)(*myVk);
+ s1.SetLength(s1.Length() - 4);
+ cbBook->Items->Add(s1);
+ myVk->Book(myVk->Book() + 1);
+ }
+ delete myVk;
+}
+
+
+//---------------------------------------------------------------------------
+void __fastcall TForm1::FormShow(TObject *Sender)
+{
+ ModMap::iterator it;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit, eitend;
+ AnsiString s1;
+ char textFont[128];
+ char commentFont[128];
+ char LDFont[128];
+ char tempFont[128];
+ int loop;
+ int maxFiles;
+ TColor fieldColor;
+ string tmpval;
+ bool showDevos;
+ bool showGlos;
+ bool showDevOfDay = false;
+
+/*
+ showLocked = true;
+ for (int i=0;i<=ParamCount();i++) {
+ if (LowerCase(ParamStr(i)) == "-noLocked")
+ showLocked = false;
+ }
+*/
+
+ logmodstate = true;
+ freshdict = true;
+ if (SWLog::systemlog)
+ delete SWLog::systemlog;
+ SWLog::systemlog = new SWWinLog(this->Handle); // set the system logger to our MSWindows specific SWLog class
+ tmpval = ((eit = optionsconf->Sections["System"].find("MaxFiles")) != optionsconf->Sections["System"].end())? (*eit).second : (string)"";
+ if ((maxFiles = atoi(tmpval.c_str()))) {
+ FileMgr::systemFileMgr.maxFiles = maxFiles;
+ }
+
+
+ tmpval = ((eit = optionsconf->Sections["Hints"].find("On")) != optionsconf->Sections["Hints"].end())? (*eit).second : (string)"1";
+
+ if (atoi(tmpval.c_str()))
+ Form1->ShowHint = true;
+ else Form1->ShowHint = false;
+
+ tmpval = ((eit = optionsconf->Sections["General"].find("DevsAsDicts")) != optionsconf->Sections["General"].end())? (*eit).second : (string)"";
+ showDevos = (!stricmp(tmpval.c_str(), "true"));
+
+ tmpval = ((eit = optionsconf->Sections["General"].find("GlosAsDicts")) != optionsconf->Sections["General"].end())? (*eit).second : (string)"";
+ showGlos = !(!stricmp(tmpval.c_str(), "false"));
+
+ tmpval = ((eit = optionsconf->Sections["Appearance"].find("locale")) != optionsconf->Sections["Appearance"].end())? (*eit).second : (string)"en_us";
+ LocaleMgr::systemLocaleMgr.setDefaultLocaleName(tmpval.c_str());
+
+ DefaultVSKey = new VerseKey();
+ DefaultStrKey = new StrKey();
+
+
+// DefaultVSKey->setLocale(tmpval.c_str());
+
+ tmpval = ((eit = optionsconf->Sections["Appearance"].find("TextFontName")) != optionsconf->Sections["Appearance"].end())? (*eit).second : (string)"Times New Roman";
+ strcpy(tempFont, tmpval.c_str()); // Temporary holding place for text font
+
+ tmpval = ((eit = optionsconf->Sections["Appearance"].find("CommentFontName")) != optionsconf->Sections["Appearance"].end())? (*eit).second : (string)"Times New Roman";
+ strcpy(commentFont, tmpval.c_str());
+
+ tmpval = ((eit = optionsconf->Sections["Appearance"].find("LDFontName")) != optionsconf->Sections["Appearance"].end())? (*eit).second : (string)"Times New Roman";
+ strcpy(LDFont, tmpval.c_str());
+
+ fillVKeySelector(DefaultVSKey);
+
+ cbBook->ItemIndex = cbBook->Items->IndexOf("James");
+
+ DefaultVSKey->Persist(1); // when set to a module, make the module hold on to this actual key and not a copy
+ *DefaultVSKey = "James 1:19"; // set to our standard starting verse
+ DefaultStrKey->Persist(1);
+ *DefaultStrKey = "";
+
+ mainmgr = new BibleCSMGR(ModInstFrm);
+
+ // Load devotion and show form
+ String devoKey = TDateTime::CurrentDate().FormatString("mm.dd");
+ tmpval = ((eit = optionsconf->Sections["ModDefaults"].find("DailyDevotion")) != optionsconf->Sections["ModDefaults"].end())? (*eit).second : (string)"";
+ if ((it = mainmgr->Modules.find(tmpval)) != mainmgr->Modules.end()) {
+ it->second->SetKey(devoKey.c_str());
+ DevOfTheDay2->RichTip->Text = it->second->StripText();
+ }
+ tmpval = ((eit = optionsconf->Sections["General"].find("TipOfTheDay")) != optionsconf->Sections["General"].end())? (*eit).second : (string)"";
+ if (!stricmp(tmpval.c_str(), "Devotional")) {
+ DevOfTheDay2->ckShowTip->Checked = true;
+ showDevOfDay = true;
+ }
+ // If no devotional text is shown then a general how-to is diplayed.
+ if(DevOfTheDay2->RichTip->Text == "")
+ DevOfTheDay2->RichTip->Text = "A Daily Devotional is not installed or is not configured for use with the \"Devotional of the Day.\n\nTo configure an installed devotional for use with this dialog box open the Preferences dialog box by going to the \"File\" menu and selecting \"Preferences...\"; then click the \"Special Modules\" tab. Find the \"Default Devotional\" option and select a devotional to use from the list. If nothing shows up in the pull-down list you will need to install a devotional. This can be done by using the Install Manager. Some examples of devotionals are \"Spurgeon's Morning and Evening\" or \"Jonathan Bagster's Daily Light\".\n\nVisit our website at www.crosswire.org for more information.";
+
+
+ for (it = mainmgr->Modules.begin(); it != mainmgr->Modules.end(); it++) {
+ bool devotional = false;
+ bool glossary = false;
+
+ // leave out enciphered texts with no key
+ if ((sit = mainmgr->config->Sections.find((*it).second->Name())) != mainmgr->config->Sections.end()) {
+ if ((eit = (*sit).second.find("CipherKey")) != (*sit).second.end()) {
+ const char *cipherKey = (char *)(*eit).second.c_str();
+ if (strlen(cipherKey) < 1)
+ continue;
+ }
+ for (eit = (*sit).second.lower_bound("Feature"), eitend = (*sit).second.upper_bound("Feature"); eit != eitend; eit++) {
+ const char *feature = eit->second.c_str();
+ if (!stricmp(feature, "StrongsNumbers"))
+ Optionsfrm->strongsNumsCB->Items->AddObject(it->second->Description(), (TObject *)it->second->Name());
+ if (!stricmp(feature, "GreekDef"))
+ Optionsfrm->greekDefCB->Items->AddObject(it->second->Description(), (TObject *)it->second->Name());
+ if (!stricmp(feature, "GreekParse"))
+ Optionsfrm->greekParseCB->Items->AddObject(it->second->Description(), (TObject *)it->second->Name());
+ if (!stricmp(feature, "HebrewDef"))
+ Optionsfrm->hebrewDefCB->Items->AddObject(it->second->Description(), (TObject *)it->second->Name());
+ if (!stricmp(feature, "HebrewParse"))
+ Optionsfrm->hebrewParseCB->Items->AddObject(it->second->Description(), (TObject *)it->second->Name());
+ if (!stricmp(feature, "DailyDevotion")) {
+ Optionsfrm->dailyDefaultCB->Items->AddObject(it->second->Description(), (TObject *)it->second->Name());
+ devotional = true;
+ }
+ if (!stricmp(feature, "Glossary")) {
+ glossary = true;
+ }
+ }
+ }
+
+ if (!strcmp((*it).second->Type(), "Biblical Texts")) {
+ strcpy(textFont, tempFont);
+ if ((sit = mainmgr->config->Sections.find((*it).second->Name())) != mainmgr->config->Sections.end()) {
+ if ((eit = (*sit).second.find("Font")) != (*sit).second.end()) {
+ strcpy(textFont,(char *)(*eit).second.c_str());
+ }
+ }
+ CreateTextPane((*it).second, textFont);
+ }
+ if (!strcmp((*it).second->Type(), "Commentaries")) {
+ strcpy(commentFont, tempFont);
+ if ((sit = mainmgr->config->Sections.find((*it).second->Name())) != mainmgr->config->Sections.end()) {
+ if ((eit = (*sit).second.find("Font")) != (*sit).second.end()) {
+ strcpy(commentFont,(char *)(*eit).second.c_str());
+ }
+ }
+ CreateCommentPane((*it).second, commentFont);
+ }
+ if (!strcmp((*it).second->Type(), "Generic Books")) {
+ strcpy(commentFont, tempFont);
+ if ((sit = mainmgr->config->Sections.find((*it).second->Name())) != mainmgr->config->Sections.end()) {
+ if ((eit = (*sit).second.find("Font")) != (*sit).second.end()) {
+ strcpy(commentFont,(char *)(*eit).second.c_str());
+ }
+ }
+ CreateBookPane((*it).second, commentFont);
+ }
+ if (!strcmp((*it).second->Type(), "Lexicons / Dictionaries")) {
+ strcpy(LDFont, tempFont);
+ if ((sit = mainmgr->config->Sections.find((*it).second->Name())) != mainmgr->config->Sections.end()) {
+ if ((eit = (*sit).second.find("Font")) != (*sit).second.end()) {
+ strcpy(LDFont,(char *)(*eit).second.c_str());
+ }
+ }
+ if ((!devotional && !glossary) ||
+ (showDevos && devotional) ||
+ (showGlos && glossary))
+ CreateLDPane((*it).second, LDFont);
+ }
+ }
+
+ layoutconf = new SWConfig("./layout.conf");
+
+ if ((sit = layoutconf->Sections.find("Screen")) != layoutconf->Sections.end()) {
+
+ eit = (*sit).second.find("Maximized");
+ string a;
+ a = (*eit).second.c_str();
+ if(a == "true") {
+ Form1->WindowState = wsMaximized;
+ }
+ else{
+ Form1->WindowState = wsNormal;
+ if ((eit = (*sit).second.find("MainTop")) != (*sit).second.end())
+ Form1->Top = atoi((*eit).second.c_str());
+ if ((eit = (*sit).second.find("MainLeft")) != (*sit).second.end())
+ Form1->Left = atoi((*eit).second.c_str());
+ if ((eit = (*sit).second.find("MainHeight")) != (*sit).second.end())
+ Form1->Height = atoi((*eit).second.c_str());
+ if ((eit = (*sit).second.find("MainWidth")) != (*sit).second.end())
+ Form1->Width = atoi((*eit).second.c_str());
+ }
+ if ((eit = (*sit).second.find("TextComHeight")) != (*sit).second.end())
+ pnlTextCom->Height = atoi((*eit).second.c_str());
+ if ((eit = (*sit).second.find("TextWidth")) != (*sit).second.end())
+ pnlText->Width = atoi((*eit).second.c_str());
+ if ((eit = (*sit).second.find("SearchTop")) != (*sit).second.end()){
+ Form2->Top = atoi((*eit).second.c_str());
+ Form2->Position = poDesigned;
+ }
+ if ((eit = (*sit).second.find("SearchLeft")) != (*sit).second.end())
+ Form2->Left = atoi((*eit).second.c_str());
+ if ((eit = (*sit).second.find("SearchHeight")) != (*sit).second.end())
+ Form2->Height = atoi((*eit).second.c_str());
+ if ((eit = (*sit).second.find("SearchWidth")) != (*sit).second.end())
+ Form2->Width = atoi((*eit).second.c_str());
+ }
+
+
+ for (loop = 0; loop < 10; loop++)
+ ctrlstates.insert(ctrlstates.begin(), 0);
+ Graphics::TBitmap *bitmap = BackBtnImage->Picture->Bitmap;
+ TColor transColor = bitmap->Canvas->Pixels[0][0];
+ ImageList1->AddMasked(bitmap, transColor);
+
+ bitmap = SearchBtnImage->Picture->Bitmap;
+ transColor = bitmap->Canvas->Pixels[0][0];
+ ImageList1->AddMasked(bitmap, transColor);
+
+ bitmap = BookmarkBtnImage->Picture->Bitmap;
+ transColor = bitmap->Canvas->Pixels[0][0];
+ ImageList2->AddMasked(bitmap, transColor);
+
+ // Add options to Options Main Menu choice
+ OptionsList options = mainmgr->getGlobalOptions();
+ for (OptionsList::iterator it = options.begin(); it != options.end(); it++) {
+ TMenuItem *newitem = new TMenuItem(MainMenu1);
+ newitem->Caption = (*it).c_str();
+ newitem->Default = false;
+ newitem->OnClick = OptionShowVals;
+ newitem->Hint = mainmgr->getGlobalOptionTip((*it).c_str());
+ OptionsList values = mainmgr->getGlobalOptionValues((*it).c_str());
+ for (OptionsList::iterator it2 = values.begin(); it2 != values.end(); it2++) {
+ TMenuItem *newitem2 = new TMenuItem(MainMenu1);
+ newitem2->Caption = (*it2).c_str();
+ newitem2->Default = false;
+ newitem2->OnClick = GlobalOptionChange;
+ newitem->Add(newitem2);
+ }
+// Mainmenu->Items->Add(newitem);
+ Options2->Add(newitem);
+ }
+
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()){
+ if ((eit = (*sit).second.find("FieldColor")) != (*sit).second.end())
+ fieldColor = TColor(atoi((*eit).second.c_str()));
+ else fieldColor = clAqua;
+ }
+
+ cbBook->Color = fieldColor;
+ CHBox->Color = fieldColor;
+ VSBox->Color = fieldColor;
+ freeHandLookup->Color = fieldColor;
+ DictKeyEdit->Color = fieldColor;
+
+ if ((sit = layoutconf->Sections.find("History")) != layoutconf->Sections.end()) {
+
+ eitend = (*sit).second.upper_bound("SearchText");
+ for (eit = (*sit).second.lower_bound("SearchText"); eit != eitend; eit++)
+ Form2->SearchText->Items->Add(eit->second.c_str());
+
+ eitend = (*sit).second.upper_bound("LookupText");
+ for (eit = (*sit).second.lower_bound("LookupText"); eit != eitend; eit++)
+ freeHandLookup->Items->Add(eit->second.c_str());
+
+ if ((eit = (*sit).second.find("LastTextModule")) != (*sit).second.end()) {
+ for (int i = 0; i < PageControl1->PageCount; i++) {
+ if (!strcmp(PageControl1->Pages[i]->Caption.c_str(), (*eit).second.c_str())) {
+ PageControl1->ActivePageIndex = i;
+ break;
+ }
+ }
+ }
+ if ((eit = (*sit).second.find("LastComModule")) != (*sit).second.end()) {
+ for (int i = 0; i < PageControl2->PageCount; i++) {
+ if (!strcmp(PageControl2->Pages[i]->Caption.c_str(), (*eit).second.c_str())) {
+ PageControl2->ActivePageIndex = i;
+ break;
+ }
+ }
+ }
+ if (this->Tag) {
+ NavigateVerseURL((char*)(this->Tag));
+ }
+ else if ((eit = (*sit).second.find("LastVerse")) != (*sit).second.end()) {
+ freeHandLookup->Text = (*eit).second.c_str();
+ char ret = '\r';
+ freeHandLookupoldKeyPress(0, ret);
+ }
+ }
+
+ ConfigEntMap *section;
+ TPageControl *pc = 0;
+ for (int pcs = 0; pcs < 3; pcs++) {
+ switch (pcs) {
+ case 0:
+ pc = PageControl1;
+ section = &(*layoutconf)["TextView"];
+ break;
+ case 1:
+ pc = PageControl2;
+ section = &(*layoutconf)["CommentView"];
+ break;
+ case 2:
+ pc = PageControl3;
+ section = &(*layoutconf)["LDView"];
+ break;
+ }
+
+ for (int i = 0; i < pc->PageCount; i++) {
+ string heading = pc->Pages[i]->Caption.c_str();
+ pc->Pages[i]->TabVisible = !((*section)[heading.c_str()] == "false"); // !false allows default to be true
+ }
+ }
+
+ SplashPg->Hide();
+ if(showDevOfDay){
+ DevOfTheDay2->Show();
+ }
+}
+
+bool TForm1::hasFeature(SWMgr *mgr, const char *modName, const char *feature) {
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit, eitend;
+
+ if ((sit = mgr->config->Sections.find(modName)) != mgr->config->Sections.end()) {
+ for (eit = (*sit).second.lower_bound("Feature"), eitend = (*sit).second.upper_bound("Feature"); eit != eitend; eit++) {
+ const char *tfeature = eit->second.c_str();
+ if (!stricmp(tfeature, feature))
+ return true;
+ }
+ }
+ return false;
+}
+
+
+//---------------------------------------------------------------------------
+void __fastcall TForm1::LookupPokeData(TObject *Sender)
+{
+ char buf[255];
+ char *token;
+ ModMap::iterator it;
+
+ strncpy(buf, Lookup->Text.c_str(), 254);
+ buf[254] = 0;
+ token = strtok(buf, " ");
+ if ((it = mainmgr->Modules.find(token)) != mainmgr->Modules.end()) {
+ token = strtok(NULL, "");
+ (*it).second->SetKey(token);
+ Lookup->Text = (const char *)(*(*it).second);
+ }
+ else Lookup->Text = "";
+
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::SearchPokeData(TObject *Sender)
+{
+ char buf[255];
+ char *token;
+ ModMap::iterator it;
+ AnsiString retval = "";
+
+ strncpy(buf, Search->Text.c_str(), 254);
+ buf[254] = 0;
+ token = strtok(buf, " ");
+ if ((it = mainmgr->Modules.find(token)) != mainmgr->Modules.end()) {
+ token = strtok(NULL, "");
+ ListKey &results = (*it).second->Search(token, REG_ICASE);
+ while (!results.Error()) {
+ retval = retval + (const char *)results + "; ";
+ results++;
+ }
+ Search->Text = retval;
+ }
+ else Search->Text = "";
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::UpDown3Click(TObject *Sender, TUDBtnType Button)
+{
+ ModMap::iterator it;
+
+ it = mainmgr->Modules.find(PageControl3->ActivePage->Caption.c_str());
+ if (it != mainmgr->Modules.end()) {
+ if (Button == btNext)
+ (*((*it).second))++;
+ else (*((*it).second))--;
+ DictKeyEdit->Text = ((*it).second)->KeyText();
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::UpDown1Click(TObject *Sender, TUDBtnType Button)
+{
+ btnLookupClick(Sender);
+}
+//---------------------------------------------------------------------------
+
+void TForm1::RestoreState(ModState *state)
+{
+ if (state) {
+ state->pc->ActivePage = state->ap;
+ if ((state->pc == PageControl1) || (state->pc == PageControl2)) {
+ *DefaultVSKey = state->key;
+ TextKeyChanged();
+ }
+ if (state->pc == PageControl3) {
+ DictKeyEdit->Text = (const char *)state->key;
+ }
+ if (state->pc->ActivePage->ControlCount)
+ Form1->ActiveControl = (TWinControl *)state->pc->ActivePage->Controls[0];
+ }
+}
+
+
+void __fastcall TForm1::BackbtnClick(TObject *Sender)
+{
+ list <ModState *>::iterator it;
+
+ logmodstate = false;
+ it = modstates.begin();
+ if (it != modstates.end()) {
+ it++;
+
+ if (it != modstates.end()) {
+ RestoreState(*it);
+ delete *modstates.begin();
+ modstates.erase(modstates.begin(), it);
+ }
+ }
+ logmodstate = true;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Button1Click(TObject *Sender)
+{
+/*
+ list <ModState *>::iterator it;
+ ListBox1->Clear();
+ for (it = modstates.begin(); it != modstates.end(); it++) {
+ ListBox1->Items->Add((*it)->ap->Caption.c_str());
+ }
+*/
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::CopyasBGreekTransliteration1Click(TObject *Sender)
+{
+ char *retbuf;
+ int len;
+ TClipboard *clip = new TClipboard();
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ len = rtf->SelText.Length() * 2;
+ retbuf = new char [ len ];
+ if (!Greek2bGreek(retbuf, rtf->SelText.c_str(), len)) {
+ clip->SetTextBuf(retbuf);
+ }
+ delete clip;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Copy1Click(TObject *Sender)
+{
+ int wordstart;
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ if (!rtf->SelLength) {
+ for (wordstart = rtf->SelStart; (wordstart > -1)&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length()) - rtf->SelStart - 1;
+ }
+ rtf->CopyToClipboard();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::BookmarkItemClick(TObject *Sender)
+{
+ TMenuItem *menuchoice = (TMenuItem *)Sender;
+ const char *source = menuchoice->Caption.c_str();
+ char *value = new char [strlen(source) + 1];
+ int k = 0;
+ for (unsigned int j = 0; j < strlen(source); j++) {
+ if (source[j] != '&')
+ value[k++] = source[j];
+ }
+ value[k] = 0;
+ *DefaultVSKey = value;
+ delete [] value;
+ TextKeyChanged();
+}
+
+void __fastcall TForm1::AddBookmark1Click(TObject *Sender)
+{
+// TMenuItem *newitem;
+
+ Bookmarksfrm->bmtree->Items->AddChild(Bookmarksfrm->bmtree->Items->Item[0], (const char *)*DefaultVSKey);
+}
+
+void TForm1::AddSectionToMenu(TMenu *menu, TMenuItem *item, TTreeNode *tree)
+{
+ TMenuItem *newitem;
+
+ for (tree = tree->getFirstChild(); tree; tree = tree->getNextSibling()) {
+ newitem = new TMenuItem(menu);
+ newitem->Caption = tree->Text;
+ if (!tree->getFirstChild())
+ newitem->OnClick = BookmarkItemClick;
+ item->Add(newitem);
+ AddSectionToMenu(menu, newitem, tree);
+ }
+}
+
+void TForm1::RefreshBookmarksMenu(TMenu *menu, TTreeView *treeview)
+{
+ TMenuItem *newitem;
+ TTreeNode *tree = 0;
+
+ if (treeview->Items->Count)
+ tree = treeview->Items->Item[0];
+
+ while (menu->Items->Count > 3)
+ menu->Items->Delete(3);
+
+ for (;tree;tree = tree->getNextSibling()) {
+ newitem = new TMenuItem(menu);
+ newitem->Caption = tree->Text;
+ menu->Items->Add(newitem);
+ AddSectionToMenu(menu, newitem, tree);
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::BookmarkbtnClick(TObject *Sender)
+{
+ TPoint menup, point;
+ point.x = 0;
+ point.y = Bookmarkbtn->Height;
+ menup = Bookmarkbtn->ClientToScreen(point);
+ RefreshBookmarksMenu(BookmarkPopup, Bookmarksfrm->bmtree);
+ BookmarkPopup->Popup(menup.x, menup.y);
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TForm1::EditBookmarks1Click(TObject *Sender)
+{
+ Bookmarksfrm->Show();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
+ TShiftState Shift)
+{
+ char buf[5];
+ int val;
+ ModMap::iterator it;
+ TPageControl *pc = PageControl1;
+
+ if ((Shift.Contains(ssCtrl)) && (!Shift.Contains(ssAlt))) {
+ if ((Key >= '0') && (Key <= '9')) {
+ sprintf(buf, "%c", Key);
+ val = atoi(buf);
+
+ if (!Shift.Contains(ssShift)) {
+ if ((Screen->ActiveControl == PageControl2) || (IsChild(PageControl2->Handle, Screen->ActiveControl->Handle)))
+ pc = PageControl2;
+ if ((Screen->ActiveControl == PageControl3) || (IsChild(PageControl3->Handle, Screen->ActiveControl->Handle)))
+ pc = PageControl3;
+
+ it = mainmgr->Modules.find(pc->ActivePage->Caption.c_str());
+ if (it != mainmgr->Modules.end()) {
+ if (ctrlstates[val])
+ delete ctrlstates[val];
+
+ ctrlstates[val] = new ModState(pc, pc->ActivePage, (*it).second->KeyText());
+ }
+ }
+ else RestoreState(ctrlstates[val]);
+ }
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Options1Click(TObject *Sender)
+{
+ ModMap::iterator it;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ ConfigEntMap emap;
+ int color;
+ string tmpval;
+
+ //*********************************
+ //Initialize Preferences Dialog Box
+
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ if ((*sit).second.find("AutoVSColor") != (*sit).second.end())
+ Optionsfrm->AutoVSColor->Checked = (((atoi((*(*sit).second.find("AutoVSColor")).second.c_str()))) ? true:false);
+ else Optionsfrm->AutoVSColor->Checked = false;
+
+ if ((*sit).second.find("CurrentVSColor") != (*sit).second.end()){
+ Optionsfrm->CurrentVSColor->Brush->Color = TColor(atoi((*(*sit).second.find("CurrentVSColor")).second.c_str()));
+ Optionsfrm->ColorDialog1->Color = TColor(atoi((*(*sit).second.find("CurrentVSColor")).second.c_str()));
+ }
+ else{
+ Optionsfrm->CurrentVSColor->Brush->Color = TColor(clBlue);
+ Optionsfrm->ColorDialog1->Color = TColor(clBlue);
+ }
+
+ if ((*sit).second.find("VSNumberColor") != (*sit).second.end())
+ Optionsfrm->ColorDialogVerseNum->Color = TColor(atoi ((*(*sit).second.find("VSNumberColor")).second.c_str()));
+ else Optionsfrm->ColorDialogVerseNum->Color = clBlue;
+
+ if ((*sit).second.find("TextBackColor") != (*sit).second.end())
+ Optionsfrm->FontDialogText->BackColor = TColor(atoi((*(*sit).second.find("TextBackColor")).second.c_str()));
+ else Optionsfrm->FontDialogText->BackColor = TColor(clWhite);
+
+ if ((*sit).second.find("CommentBackColor") != (*sit).second.end())
+ Optionsfrm->FontDialogComment->BackColor = TColor(atoi((*(*sit).second.find("CommentBackColor")).second.c_str()));
+ else Optionsfrm->FontDialogComment->BackColor = TColor(clWhite);
+
+ if ((*sit).second.find("LDBackColor") != (*sit).second.end())
+ Optionsfrm->FontDialogLD->BackColor = TColor(atoi((*(*sit).second.find("LDBackColor")).second.c_str()));
+ else Optionsfrm->FontDialogLD->BackColor = TColor(clWhite);
+
+ if ((*sit).second.find("TextFontName") != (*sit).second.end())
+ Optionsfrm->FontDialogText->Font->Name = ((*(*sit).second.find("TextFontName")).second.c_str());
+ else Optionsfrm->FontDialogText->Font->Name = "Times New Roman";
+
+ if ((*sit).second.find("CommentFontName") != (*sit).second.end())
+ Optionsfrm->FontDialogComment->Font->Name = ((*(*sit).second.find("CommentFontName")).second.c_str());
+ else Optionsfrm->FontDialogComment->Font->Name = "Times New Roman";
+
+ if ((*sit).second.find("LDFontName") != (*sit).second.end())
+ Optionsfrm->FontDialogLD->Font->Name = ((*(*sit).second.find("LDFontName")).second.c_str());
+ else Optionsfrm->FontDialogLD->Font->Name = "Times New Roman";
+
+ if ((*sit).second.find("TextFontSize") != (*sit).second.end())
+ Optionsfrm->FontDialogText->Font->Size = (atoi ((*(*sit).second.find("TextFontSize")).second.c_str()));
+ else Optionsfrm->FontDialogText->Font->Size = 10;
+
+ if ((*sit).second.find("CommentFontSize") != (*sit).second.end())
+ Optionsfrm->FontDialogComment->Font->Size = (atoi ((*(*sit).second.find("CommentFontSize")).second.c_str()));
+ else Optionsfrm->FontDialogComment->Font->Size = 10;
+
+ if ((*sit).second.find("CommentFontSize") != (*sit).second.end())
+ Optionsfrm->FontDialogLD->Font->Size = (atoi ((*(*sit).second.find("LDFontSize")).second.c_str()));
+ else Optionsfrm->FontDialogLD->Font->Size = 10;
+
+ if ((*sit).second.find("TextFontColor") != (*sit).second.end())
+ Optionsfrm->FontDialogText->Font->Color = TColor(atoi ((*(*sit).second.find("TextFontColor")).second.c_str()));
+ else Optionsfrm->FontDialogText->Font->Color = clBlack;
+
+ if ((*sit).second.find("CommentFontColor") != (*sit).second.end())
+ Optionsfrm->FontDialogComment->Font->Color = TColor(atoi ((*(*sit).second.find("CommentFontColor")).second.c_str()));
+ else Optionsfrm->FontDialogComment->Font->Color = clBlack;
+
+ if ((*sit).second.find("LDFontColor") != (*sit).second.end())
+ Optionsfrm->FontDialogLD->Font->Color = TColor(atoi ((*(*sit).second.find("LDFontColor")).second.c_str()));
+ else Optionsfrm->FontDialogLD->Font->Color = clBlack;
+
+ if ((*sit).second.find("FieldColor") != (*sit).second.end())
+ Optionsfrm->ColorDialogField->Color = TColor(atoi ((*(*sit).second.find("FieldColor")).second.c_str()));
+ else Optionsfrm->ColorDialogField->Color = clAqua;
+ }
+
+ if ((sit = optionsconf->Sections.find("Bookmarks")) != optionsconf->Sections.end()) {
+ Optionsfrm->AutoBMPersonal->Checked = ((atoi(sit->second["AutoSavePersonal"].c_str()))?true:false);
+ Optionsfrm->AutoBMOther->Checked = ((atoi(sit->second["AutoSaveOther"].c_str()))?true:false);
+ }
+ if ((sit = optionsconf->Sections.find("Layout")) != optionsconf->Sections.end()) {
+ Optionsfrm->AutoLayout->Checked = ((atoi(sit->second["AutoSaveLayout"].c_str()))?true:false);
+
+ }
+
+ Optionsfrm->HintPopups->Checked = true;
+ tmpval = ((eit = optionsconf->Sections["Hints"].find("On")) != optionsconf->Sections["Hints"].end())? (*eit).second : (string)"1";
+ if (!atoi(tmpval.c_str()))
+ Optionsfrm->HintPopups->Checked = false;
+
+ Optionsfrm->devsAsDictsCB->Checked = false;
+ tmpval = ((eit = optionsconf->Sections["General"].find("DevsAsDicts")) != optionsconf->Sections["General"].end())? (*eit).second : (string)"false";
+ if (!stricmp(tmpval.c_str(), "true"))
+ Optionsfrm->devsAsDictsCB->Checked = true;
+
+ Optionsfrm->glosAsDictsCB->Checked = true;
+ tmpval = ((eit = optionsconf->Sections["General"].find("GlosAsDicts")) != optionsconf->Sections["General"].end())? (*eit).second : (string)"true";
+ if (stricmp(tmpval.c_str(), "false"))
+ Optionsfrm->glosAsDictsCB->Checked = true;
+
+ Optionsfrm->devSplashCB->Checked = false;
+ tmpval = ((eit = optionsconf->Sections["General"].find("TipOfTheDay")) != optionsconf->Sections["General"].end())? (*eit).second : (string)"";
+ if (!stricmp(tmpval.c_str(), "Devotional"))
+ Optionsfrm->devSplashCB->Checked = true;
+
+ const char *localeName = LocaleMgr::systemLocaleMgr.getDefaultLocaleName();
+ SWLocale *defLocale = LocaleMgr::systemLocaleMgr.getLocale(localeName);
+ Optionsfrm->localeCB->ItemIndex = Optionsfrm->localeCB->Items->IndexOf((defLocale)?defLocale->getDescription():"English (US)");
+
+ tmpval = ((eit = optionsconf->Sections["ModDefaults"].find("GreekDef")) != optionsconf->Sections["ModDefaults"].end())? (*eit).second : (string)"";
+ if ((it = mainmgr->Modules.find(tmpval)) != mainmgr->Modules.end()) {
+ Optionsfrm->greekDefCB->ItemIndex = Optionsfrm->greekDefCB->Items->IndexOf(it->second->Description());
+ }
+
+ tmpval = ((eit = optionsconf->Sections["ModDefaults"].find("GreekParse")) != optionsconf->Sections["ModDefaults"].end())? (*eit).second : (string)"";
+ if ((it = mainmgr->Modules.find(tmpval)) != mainmgr->Modules.end()) {
+ Optionsfrm->greekParseCB->ItemIndex = Optionsfrm->greekParseCB->Items->IndexOf(it->second->Description());
+ }
+
+ tmpval = ((eit = optionsconf->Sections["ModDefaults"].find("HebrewDef")) != optionsconf->Sections["ModDefaults"].end())? (*eit).second : (string)"";
+ if ((it = mainmgr->Modules.find(tmpval)) != mainmgr->Modules.end()) {
+ Optionsfrm->hebrewDefCB->ItemIndex = Optionsfrm->hebrewDefCB->Items->IndexOf(it->second->Description());
+ }
+
+ tmpval = ((eit = optionsconf->Sections["ModDefaults"].find("HebrewParse")) != optionsconf->Sections["ModDefaults"].end())? (*eit).second : (string)"";
+ if ((it = mainmgr->Modules.find(tmpval)) != mainmgr->Modules.end()) {
+ Optionsfrm->hebrewParseCB->ItemIndex = Optionsfrm->hebrewParseCB->Items->IndexOf(it->second->Description());
+ }
+
+ tmpval = ((eit = optionsconf->Sections["ModDefaults"].find("DailyDevotion")) != optionsconf->Sections["ModDefaults"].end())? (*eit).second : (string)"";
+ if ((it = mainmgr->Modules.find(tmpval)) != mainmgr->Modules.end()) {
+ Optionsfrm->dailyDefaultCB->ItemIndex = Optionsfrm->dailyDefaultCB->Items->IndexOf(it->second->Description());
+ }
+
+ tmpval = ((eit = optionsconf->Sections["ModDefaults"].find("StrongsNumbers")) != optionsconf->Sections["ModDefaults"].end())? (*eit).second : (string)"";
+ if ((it = mainmgr->Modules.find(tmpval)) != mainmgr->Modules.end()) {
+ Optionsfrm->strongsNumsCB->ItemIndex = Optionsfrm->strongsNumsCB->Items->IndexOf(it->second->Description());
+ }
+ //*********************************
+ // Show Dialog Box
+ if (Optionsfrm->ShowModal() == mrOk) {
+ // Save Preferences settings :)
+ emap = optionsconf->Sections["Appearance"];
+ emap.erase("AutoVSColor"); emap.insert(ConfigEntMap::value_type("AutoVSColor", IntToStr((Optionsfrm->AutoVSColor->Checked)?1:0).c_str()));
+ emap.erase("CurrentVSColor"); emap.insert(ConfigEntMap::value_type("CurrentVSColor", IntToStr(Optionsfrm->CurrentVSColor->Brush->Color).c_str()));
+
+ emap.erase("VSNumberColor"); emap.insert(ConfigEntMap::value_type("VSNumberColor", IntToStr(Optionsfrm->ColorDialogVerseNum->Color).c_str()));
+
+ emap.erase("TextBackColor"); emap.insert(ConfigEntMap::value_type("TextBackColor", IntToStr(Optionsfrm->FontDialogText->BackColor).c_str()));
+ emap.erase("CommentBackColor"); emap.insert(ConfigEntMap::value_type("CommentBackColor", IntToStr(Optionsfrm->FontDialogComment->BackColor).c_str()));
+ emap.erase("LDBackColor"); emap.insert(ConfigEntMap::value_type("LDBackColor", IntToStr(Optionsfrm->FontDialogLD->BackColor).c_str()));
+
+ emap.erase("TextFontName"); emap.insert(ConfigEntMap::value_type("TextFontName", (Optionsfrm->FontDialogText->Font->Name).c_str()));
+ emap.erase("CommentFontName"); emap.insert(ConfigEntMap::value_type("CommentFontName", (Optionsfrm->FontDialogComment->Font->Name).c_str()));
+ emap.erase("LDFontName"); emap.insert(ConfigEntMap::value_type("LDFontName", (Optionsfrm->FontDialogLD->Font->Name).c_str()));
+
+ emap.erase("TextFontSize"); emap.insert(ConfigEntMap::value_type("TextFontSize", IntToStr(Optionsfrm->FontDialogText->Font->Size).c_str()));
+ emap.erase("CommentFontSize"); emap.insert(ConfigEntMap::value_type("CommentFontSize", IntToStr(Optionsfrm->FontDialogComment->Font->Size).c_str()));
+ emap.erase("LDFontSize"); emap.insert(ConfigEntMap::value_type("LDFontSize", IntToStr(Optionsfrm->FontDialogLD->Font->Size).c_str()));
+
+ emap.erase("TextFontColor"); emap.insert(ConfigEntMap::value_type("TextFontColor", IntToStr(Optionsfrm->FontDialogText->Font->Color).c_str()));
+ emap.erase("CommentFontColor"); emap.insert(ConfigEntMap::value_type("CommentFontColor", IntToStr(Optionsfrm->FontDialogComment->Font->Color).c_str()));
+ emap.erase("LDFontColor"); emap.insert(ConfigEntMap::value_type("LDFontColor", IntToStr(Optionsfrm->FontDialogLD->Font->Color).c_str()));
+
+ emap.erase("FieldColor"); emap.insert(ConfigEntMap::value_type("FieldColor", IntToStr(Optionsfrm->ColorDialogField->Color).c_str()));
+
+ emap.erase("locale"); emap.insert(ConfigEntMap::value_type("locale", (const char *)Optionsfrm->localeCB->Items->Objects[Optionsfrm->localeCB->ItemIndex]));
+ optionsconf->Sections["Appearance"] = emap;
+
+ emap = optionsconf->Sections["ModDefaults"];
+
+ if (Optionsfrm->greekDefCB->ItemIndex > -1) {
+ emap.erase("GreekDef"); emap.insert(ConfigEntMap::value_type("GreekDef", (const char *)Optionsfrm->greekDefCB->Items->Objects[Optionsfrm->greekDefCB->ItemIndex]));
+ }
+ if (Optionsfrm->greekParseCB->ItemIndex > -1) {
+ emap.erase("GreekParse"); emap.insert(ConfigEntMap::value_type("GreekParse", (const char *)Optionsfrm->greekParseCB->Items->Objects[Optionsfrm->greekParseCB->ItemIndex]));
+ }
+ if (Optionsfrm->hebrewDefCB->ItemIndex > -1) {
+ emap.erase("HebrewDef"); emap.insert(ConfigEntMap::value_type("HebrewDef", (const char *)Optionsfrm->hebrewDefCB->Items->Objects[Optionsfrm->hebrewDefCB->ItemIndex]));
+ }
+ if (Optionsfrm->hebrewParseCB->ItemIndex > -1) {
+ emap.erase("HebrewParse"); emap.insert(ConfigEntMap::value_type("HebrewParse", (const char *)Optionsfrm->hebrewParseCB->Items->Objects[Optionsfrm->hebrewParseCB->ItemIndex]));
+ }
+ if (Optionsfrm->dailyDefaultCB->ItemIndex > -1) {
+ emap.erase("DailyDevotion"); emap.insert(ConfigEntMap::value_type("DailyDevotion", (const char *)Optionsfrm->dailyDefaultCB->Items->Objects[Optionsfrm->dailyDefaultCB->ItemIndex]));
+ }
+ if (Optionsfrm->strongsNumsCB->ItemIndex > -1) {
+ emap.erase("StrongsNumbers"); emap.insert(ConfigEntMap::value_type("StrongsNumbers", (const char *)Optionsfrm->strongsNumsCB->Items->Objects[Optionsfrm->strongsNumsCB->ItemIndex]));
+ }
+
+ optionsconf->Sections["ModDefaults"] = emap;
+
+
+ emap = optionsconf->Sections["Bookmarks"];
+ emap.erase("AutoSavePersonal"); emap.insert(ConfigEntMap::value_type("AutoSavePersonal", IntToStr((Optionsfrm->AutoBMPersonal->Checked)?1:0).c_str()));
+ emap.erase("AutoSaveOther"); emap.insert(ConfigEntMap::value_type("AutoSaveOther", IntToStr((Optionsfrm->AutoBMOther->Checked)?1:0).c_str()));
+ optionsconf->Sections["Bookmarks"] = emap;
+
+ emap = optionsconf->Sections["Layout"];
+ emap.erase("AutoSaveLayout"); emap.insert(ConfigEntMap::value_type("AutoSaveLayout", IntToStr((Optionsfrm->AutoLayout->Checked)?1:0).c_str()));
+ optionsconf->Sections["Layout"] = emap;
+
+ emap = optionsconf->Sections["Hints"];
+ emap.erase("On"); emap.insert(ConfigEntMap::value_type("On", IntToStr((Optionsfrm->HintPopups->Checked)?1:0).c_str()));
+ optionsconf->Sections["Hints"] = emap;
+
+ emap = optionsconf->Sections["General"];
+ emap.erase("TipOfTheDay"); emap.insert(ConfigEntMap::value_type("TipOfTheDay", (Optionsfrm->devSplashCB->Checked)?"Devotional":""));
+ emap.erase("DevsAsDicts"); emap.insert(ConfigEntMap::value_type("DevsAsDicts", (Optionsfrm->devsAsDictsCB->Checked)?"true":"false"));
+ emap.erase("GlosAsDicts"); emap.insert(ConfigEntMap::value_type("GlosAsDicts", (Optionsfrm->glosAsDictsCB->Checked)?"true":"false"));
+ optionsconf->Sections["General"] = emap;
+
+ optionsconf->Save();
+ }
+
+ tmpval = ((eit = optionsconf->Sections["Hints"].find("On")) != optionsconf->Sections["Hints"].end())? (*eit).second : (string)"1";
+
+ if (atoi(tmpval.c_str()))
+ Form1->ShowHint = true;
+ else Form1->ShowHint = false;
+
+ tmpval = ((eit = optionsconf->Sections["Appearance"].find("locale")) != optionsconf->Sections["Appearance"].end())? (*eit).second : (string)"en_us";
+ LocaleMgr::systemLocaleMgr.setDefaultLocaleName(tmpval.c_str());
+ DefaultVSKey->setLocale(tmpval.c_str());
+ fillVKeySelector(DefaultVSKey);
+ TextKeyChanged();
+
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::cbBookChange(TObject *Sender)
+{
+ CHBox->Text = "1";
+ VSBox->Text = "1";
+ if (Screen->ActiveControl == cbBook)
+ btnLookupClick(Sender);
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::FormCreate(TObject *Sender)
+{
+ Hint = "";
+ Application->OnHint = DisplayHint;
+ Application->ShowHint = true;
+ this->ShowHint = true;
+// nsresult rv;
+// rv = NS_InitEmbedding(nsnull, nsnull);
+
+ Application->OnMessage = AppMessage;
+ Application->Title = "The SWORD Project for Windows";
+}
+
+
+void TForm1::AddVerseChoices(TPopupMenu *menu, const char *buf, TRxRichEdit *rtf) {
+ TMenuItem *newitem;
+
+ tmpVerseList = DefaultVSKey->ParseVerseList((char *)buf, *DefaultVSKey);
+
+ ModMap::iterator target;
+ target = mainmgr->Modules.find(((TPageControl*)rtf->Parent->Parent)->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ char *keytext = 0; // check for and remove return at end of keytext
+ stdstr(&keytext, (*(*target).second).KeyText());
+ if (keytext[strlen(keytext)-1] == '\r')
+ keytext[strlen(keytext)-1] = 0;
+
+ tmpVerseListCaption = String("VerseList from- ") + (*target).first.c_str() + ": " + keytext;
+ delete [] keytext; // ---------------------------------
+ }
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "-";
+ menu->Items->Add(newitem);
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "Create Verse List";
+ newitem->Hint = "Create a New Verse List Window";
+ newitem->Default = true;
+ newitem->OnClick = createVerseList;
+ menu->Items->Add(newitem);
+ int breakcnt = 3;
+ while (!tmpVerseList.Error()) {
+ breakcnt++;
+ newitem = new TMenuItem(menu);
+ newitem->Caption = (const char *)tmpVerseList;
+ newitem->OnClick = BookmarkItemClick;
+ if (!(breakcnt%15))
+ newitem->Break = mbBreak;
+ menu->Items->Add(newitem);
+ tmpVerseList++;
+ }
+
+
+
+}
+
+
+void __fastcall TForm1::PopupMenuPopup(TObject *Sender) {
+
+ int versestart, verseend;
+ TPopupMenu *menu = (TPopupMenu *)Sender;
+ int staticMenuItemsCount = 0;
+ TMenuItem *newitem;
+
+ if (menu == PopupMenu1)
+ staticMenuItemsCount = 3;
+ else if (menu == PopupMenu2)
+ staticMenuItemsCount = 2;
+ else if (menu == PopupMenu3)
+ staticMenuItemsCount = 6;
+
+ while (menu->Items->Count > staticMenuItemsCount)
+ menu->Items->Delete(staticMenuItemsCount);
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ if (!rtf->SelLength) {
+ int entrylen = strlen(rtf->Text.c_str());
+ char *entrytext = new char [ entrylen + 1 ];
+ int selstart = rtf->SelStart;
+ strcpy(entrytext, rtf->Text.c_str());
+// for (versestart = rtf->SelStart; ((versestart)&&(rtf->Text[versestart] != '#')); versestart--);
+ for (versestart = selstart; ((versestart)&&(entrytext[versestart] != '#')); versestart--);
+ if (versestart) {
+ for (verseend = versestart; ((verseend < entrylen) && (entrytext[verseend] != '|')); verseend++);
+ if ((verseend < entrylen) && (verseend > selstart)) {
+ int len = (verseend - versestart) + 1;
+ char *buf = new char [ len + 1 ];
+ memset(buf, 0 , len + 1);
+ strncpy(buf, &entrytext[versestart+1], len - 2); // strip the # and | from the string
+ int buflen = strlen(buf);
+ for (int i = 0; i < buflen; i++) {
+ if ((buf[i] == 10) || (buf[i] == 13))
+ buf[i] = ' ';
+ }
+ AddVerseChoices(menu, buf, rtf);
+ delete [] buf;
+ }
+ }
+ delete [] entrytext;
+ }
+ else {
+ string highlight = Trim(rtf->SelText).c_str();
+ tmpVerseList = DefaultVSKey->ParseVerseList((char *)highlight.c_str(), *DefaultVSKey);
+ if (tmpVerseList.Count())
+ AddVerseChoices(menu, highlight.c_str(), rtf);
+
+// newitem = new TMenuItem(menu);
+// newitem->Caption = "Verse Lookup";
+// newitem->Hint = "Attempt to lookup highlighted text as a verse";
+// newitem->OnClick = verseLookupClick;
+// menu->Items->Add(newitem);
+ }
+
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TForm1::createVerseList(TObject *Sender)
+{
+ TVerseListFrm *tmpForm = new TVerseListFrm(this, tmpVerseList);
+ tmpForm->Caption = tmpVerseListCaption;
+ tmpForm->Show();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::freeHandLookupoldKeyPress(TObject *Sender, char &Key)
+{
+ if (Key == '\r') {
+ ListKey tmpVerseList = DefaultVSKey->ParseVerseList(freeHandLookup->Text.c_str(), *DefaultVSKey);
+
+ if (tmpVerseList.Count()) {
+ int index = freeHandLookup->Items->IndexOf(freeHandLookup->Text);
+ freeHandLookup->Items->Insert(0, freeHandLookup->Text);
+
+ if (index >= 0)
+ freeHandLookup->Items->Delete(index+1);
+
+ freeHandLookup->ItemIndex = 0;
+
+ if (tmpVerseList.Count() > 1) {
+ TVerseListFrm *tmpForm = new TVerseListFrm(this, tmpVerseList);
+ tmpForm->Caption = "User Verse List";
+ tmpForm->Show();
+ }
+
+ tmpVerseList = TOP;
+ *DefaultVSKey = tmpVerseList;
+ TextKeyChanged();
+ }
+ }
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TForm1::RTFMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) {
+ ((TWinControl *)Sender)->SetFocus();
+ TRichEdit *rtf = (TRichEdit *)Sender;
+ if (Button == mbRight) {
+ if (!rtf->SelLength)
+ SendMessage(rtf->Handle, WM_LBUTTONDOWN, MK_LBUTTON, MAKELONG(X, Y));
+ TPoint menup, point;
+ point.x = X;
+ point.y = Y;
+ menup = rtf->ClientToScreen(point);
+ rtf->PopupMenu->Popup(menup.x, menup.y);
+ }
+}
+
+
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::EditEntry1Click(TObject *Sender)
+{
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ SWModule *module;
+// EditEntry->RichEdit1->Text = rtf->Text;
+ ModMap::iterator target;
+ target = mainmgr->Modules.find(((TPageControl*)rtf->Parent->Parent)->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ EditEntry->Module = module = (*target).second;
+ EditEntry->RTFDisplay = rtf;
+ }
+ else EditEntry->Module = module = 0;
+ EditEntry->ShowModal();
+ if (EditEntry->ResultBuf) {
+ if (module)
+// DictKeyEdit->Text = EditEntry->ResultBuf; // for testing purposes
+ *module << EditEntry->ResultBuf;
+ }
+ RefreshActiveSheet(PageControl2);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::DeleteEntry1Click(TObject *Sender)
+{
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ SWModule *module;
+ ModMap::iterator target;
+
+ target = mainmgr->Modules.find(((TPageControl*)rtf->Parent->Parent)->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ module = (*target).second;
+ module->deleteEntry();
+ }
+ RefreshActiveSheet(PageControl2);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::LinktoVerse1Click(TObject *Sender)
+{
+ if (VerseSelFrm->ShowModal() == mrOk) {
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ SWModule *module;
+ ModMap::iterator target;
+ SWKey *linkkey = new VerseKey(VerseSelFrm->Panel2->Caption.c_str());
+
+ target = mainmgr->Modules.find(((TPageControl*)rtf->Parent->Parent)->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ module = (*target).second;
+ *module << linkkey;
+ }
+ RefreshActiveSheet(PageControl2);
+ }
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TForm1::GlobalOptionChange(TObject *Sender)
+{
+// ModMap::iterator it;
+// SectionMap::iterator sit;
+// ConfigEntMap::iterator eit, eitend;
+ ConfigEntMap::iterator eit;
+ TMenuItem *menuchoice = (TMenuItem *)Sender;
+ const char *source = menuchoice->Caption.c_str();
+ char *value = new char [strlen(source) + 1];
+ int k = 0;
+ for (unsigned int j = 0; j < strlen(source); j++) {
+ if (source[j] != '&')
+ value[k++] = source[j];
+ }
+ value[k] = 0;
+ source = menuchoice->Parent->Caption.c_str();
+ char *option = new char [strlen(source) + 1];
+ k = 0;
+ for (unsigned int j = 0; j < strlen(source); j++) {
+ if (source[j] != '&')
+ option[k++] = source[j];
+ }
+ option[k] = 0;
+ mainmgr->setGlobalOption(option, value);
+
+ if ((!stricmp(option, "Strong's Numbers")) && (!stricmp(value, "On"))) {
+ string curText = PageControl1->ActivePage->Caption.c_str();
+ if (!hasFeature(mainmgr, curText.c_str(), "StrongsNumbers")) {
+ string tmpval = ((eit = optionsconf->Sections["ModDefaults"].find("StrongsNumbers")) != optionsconf->Sections["ModDefaults"].end())? (*eit).second : (string)"";
+ for (int i = 0; i < PageControl1->PageCount; i++) {
+ if (!stricmp(PageControl1->Pages[i]->Caption.c_str(), tmpval.c_str())) {
+ PageControl1->ActivePageIndex = i;
+ break;
+ }
+ }
+ }
+ }
+
+
+ delete [] option;
+ delete [] value;
+ TextKeyChanged();
+}
+//---------------------------------------------------------------------------
+
+
+
+void __fastcall TForm1::OptionShowVals(TObject *Sender)
+{
+ TMenuItem *menuChoice = (TMenuItem *)Sender;
+
+ string option = menuChoice->Caption.c_str();
+ int k = 0;
+ const char *source = option.c_str();
+ char *caption = new char [strlen(source) + 1];
+ for (unsigned int j = 0; j < strlen(source); j++) {
+ if (source[j] != '&')
+ caption[k++] = source[j];
+ }
+ caption[k] = 0;
+
+ string value = mainmgr->getGlobalOption(caption);
+ delete [] caption;
+ for (int i = 0; i < menuChoice->Count; i++) {
+ int k = 0;
+ char *source = menuChoice->Items[i]->Caption.c_str();
+ char *caption = new char [strlen(source) + 1];
+ for (unsigned int j = 0; j < strlen(source); j++) {
+ if (source[j] != '&')
+ caption[k++] = source[j];
+ }
+ caption[k] = 0;
+ if (!stricmp(caption, value.c_str()))
+ menuChoice->Items[i]->Checked = true;
+ else menuChoice->Items[i]->Checked = false;
+ delete [] caption;
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::Contents1Click(TObject *Sender)
+{
+ string helpDir;
+ ConfigEntMap::iterator it = optionsconf->Sections["Help"].find("Directory");
+ if (it != optionsconf->Sections["Help"].end())
+ helpDir = (*it).second;
+ else helpDir = ".\\help";
+
+ string helpExe = helpDir + "\\sword.chm";
+
+ if ((int)ShellExecute(this->Handle, "open", helpExe.c_str(), NULL, NULL, SW_SHOWNORMAL) < 33) {
+ helpExe = helpDir + "\\index.html";
+ ShellExecute(this->Handle, "open", helpExe.c_str(), NULL, NULL, SW_SHOWNORMAL);
+ }
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
+{
+ int saveCount = 5;
+
+
+ ConfigEntMap section;
+ ConfigEntMap::iterator entryIt;
+
+
+ section = layoutconf->Sections["History"];
+ entryIt = section.find("SearchSaveCount");
+ if (entryIt != section.end())
+ saveCount = atoi(entryIt->second.c_str());
+ else section.insert(ConfigEntMap::value_type("SearchSaveCount", "5"));
+
+ section.erase("SearchText");
+ for (int loop = 0; ((loop < saveCount) && (loop < Form2->SearchText->Items->Count)); loop++)
+ section.insert(ConfigEntMap::value_type("SearchText", Form2->SearchText->Items->Strings[loop].c_str()));
+
+ entryIt = section.find("LookupSaveCount");
+ if (entryIt != section.end())
+ saveCount = atoi(entryIt->second.c_str());
+ else section.insert(ConfigEntMap::value_type("LookupSaveCount", "5"));
+
+ section.erase("LookupText");
+ for (int loop = 0; ((loop < saveCount) && (loop < freeHandLookup->Items->Count)); loop++)
+ section.insert(ConfigEntMap::value_type("LookupText", freeHandLookup->Items->Strings[loop].c_str()));
+
+ section.erase("LastVerse");
+ section.insert(ConfigEntMap::value_type("LastVerse", (const char *)*DefaultVSKey));
+
+ section.erase("LastTextModule");
+ section.insert(ConfigEntMap::value_type("LastTextModule", PageControl1->ActivePage->Caption.c_str()));
+
+ section.erase("LastComModule");
+ section.insert(ConfigEntMap::value_type("LastComModule", PageControl2->ActivePage->Caption.c_str()));
+
+ layoutconf->Sections["History"] = section;
+ layoutconf->Save();
+
+// NS_TermEmbedding();
+
+ section = optionsconf->Sections["Layout"];
+ entryIt = section.find("AutoSaveLayout");
+ if(entryIt != section.end()){
+ if(atoi(entryIt->second.c_str()))
+ SaveLayout1Click(this);
+ }
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::lbDictKeysClick(TObject *Sender)
+{
+ DictKeyEdit->Text = lbDictKeys->Items->Strings[lbDictKeys->ItemIndex];
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TForm1::HideShowModules1Click(TObject *Sender)
+{
+ ConfigEntMap *section;
+ TMenuItem *menuItem = (TMenuItem *)Sender;
+ TPopupMenu *menu = (TPopupMenu *)menuItem->GetParentMenu();
+ TComponent *comp = menu->PopupComponent;
+ TPageControl *pc = 0;
+
+ if ((comp == PageControl1) || (comp == pnlText)) {
+ pc = PageControl1;
+ section = &(*layoutconf)["TextView"];
+ }
+ if ((comp == PageControl2) || (comp == pnlComment)) {
+ pc = PageControl2;
+ section = &(*layoutconf)["CommentView"];
+ }
+ if ((comp == PageControl3) || (comp == pnlDict)) {
+ pc = PageControl3;
+ section = &(*layoutconf)["LDView"];
+ }
+
+ if (!pc) return; // assert pc
+
+ for (int i = 0; i < pc->PageCount; i++) {
+ string heading = pc->Pages[i]->Caption.c_str();
+ (*section)[heading.c_str()] = ((pc->Pages[i]->TabVisible) ? "true" : "false");
+ }
+ ModVisForm->mgr = mainmgr;
+ ModVisForm->section = section;
+ if (ModVisForm->ShowModal() == mrOk) {
+ for (int i = 0; i < pc->PageCount; i++) {
+ string heading = pc->Pages[i]->Caption.c_str();
+ pc->Pages[i]->TabVisible = ((*section)[heading.c_str()] == "true");
+ }
+ }
+}
+//---------------------------------------------------------------------------
+
+void TForm1::TColorToRGB(const TColor& color, int& red, int& green, int& blue) {
+ red = (color & 0xFF);
+ green = ((color >> 8) & 0xFF);
+ blue =((color >> 16) & 0xFF);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::DevotionaloftheDay1Click(TObject *Sender)
+{
+ DevOfTheDay2->Show();
+}
+//---------------------------------------------------------------------------
+
+void dehtmlize(char *buf) {
+ bool deref = false;
+ int nums = 0;
+ while (*buf) {
+ if (deref) {
+ if (!isdigit(*buf))
+ deref = false;
+ else {
+ *buf = ' ';
+ nums++;
+ }
+ if (nums > 1)
+ deref = false;
+ }
+ if (*buf == '%') {
+ deref = true;
+ nums = 0;
+ *buf = ' ';
+ }
+ buf++;
+ }
+}
+
+void __fastcall TForm1::CppWebBrowser1BeforeNavigate2(TObject *Sender,
+ LPDISPATCH pDisp, TVariant *URL, TVariant *Flags,
+ TVariant *TargetFrameName, TVariant *PostData, TVariant *Headers,
+ TOLEBOOL *Cancel)
+{
+ AnsiString url = *URL;
+ string stuff = url.c_str();
+ char *offset = strstr(url.c_str(), "passage");
+ if (offset > 0) {
+ string verse = (offset+8);
+ char * buf = new char [ verse.length() + 1 ];
+ strcpy(buf, verse.c_str());
+ dehtmlize(buf);
+ (*Cancel) = true;
+ *DefaultVSKey = (buf);
+ TextKeyChanged();
+ delete [] buf;
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::InstallManager1Click(TObject *Sender)
+{
+ WinExec("InstallMgr.exe", SW_SHOWNORMAL);
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder5/BibleCS/mainfrm.dfm b/apps/windoze/CBuilder5/BibleCS/mainfrm.dfm
new file mode 100644
index 0000000..785c18d
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/mainfrm.dfm
@@ -0,0 +1,708 @@
+object Form1: TForm1
+ Left = 364
+ Top = 222
+ Width = 642
+ Height = 475
+ Caption = 'The SWORD Project'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -10
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ Icon.Data = {
+ 0000010001002020100000000000E80200001600000028000000200000004000
+ 0000010004000000000080020000000000000000000000000000000000000000
+ 000000008000008000000080800080000000800080008080000080808000C0C0
+ C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF006666
+ 6666666666666666666666666666688888888888888888088888888888866888
+ 8888888888888880888888888886688888888888888888808888888888866888
+ 8008888088008880800080008800688888088880880808808080808088006888
+ 8808888088080880800880888806688888008880080808880080808088066888
+ 8808080080800800080088008000688888080888888888888888888888066888
+ 8000088888888888888888888806688888888888888888880888888888866008
+ 8808880888877777777878888F86088088088808887888877788888888F60880
+ 800888078788888878878888888F6800808080878788888878878888888F6088
+ 808087878788888877788888888F0888088087887788888878888888888F0808
+ 0888788878788887788888F888F600000087778777877777777888FFFF866888
+ 8880888888888888888888888886688888880888888888888888888888866800
+ 8880808800088888888888888886688088808808080888888888888888866880
+ 8880080800888888888888888886688088800008080888888888888888866880
+ 8880880880088888888888888886088080808888888888888888888888860000
+ 0080888888888888888888888886688888808888888888888888888888866888
+ 8888088888888888888888888886666666660666666666666666666666660000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000}
+ KeyPreview = True
+ Menu = MainMenu1
+ OldCreateOrder = True
+ Position = poDefault
+ Scaled = False
+ ShowHint = True
+ OnClose = FormClose
+ OnCreate = FormCreate
+ OnKeyDown = FormKeyDown
+ OnShow = FormShow
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Splitter2: TSplitter
+ Left = 0
+ Top = 282
+ Width = 634
+ Height = 5
+ Cursor = crVSplit
+ Align = alTop
+ ResizeStyle = rsUpdate
+ end
+ object pnlTextCom: TPanel
+ Left = 0
+ Top = 46
+ Width = 634
+ Height = 236
+ Align = alTop
+ BevelOuter = bvNone
+ Caption = 'pnlTextCom'
+ TabOrder = 0
+ object Splitter1: TSplitter
+ Left = 368
+ Top = 0
+ Width = 5
+ Height = 236
+ Cursor = crHSplit
+ ResizeStyle = rsUpdate
+ end
+ object pnlText: TPanel
+ Left = 0
+ Top = 0
+ Width = 368
+ Height = 236
+ Align = alLeft
+ BevelOuter = bvNone
+ Constraints.MinHeight = 10
+ Constraints.MinWidth = 10
+ PopupMenu = PopupMenu4
+ TabOrder = 0
+ object PageControl1: TPageControl
+ Left = 0
+ Top = 0
+ Width = 368
+ Height = 236
+ Hint = 'Biblical Texts'
+ Align = alClient
+ Font.Charset = ANSI_CHARSET
+ Font.Color = clBlack
+ Font.Height = -9
+ Font.Name = 'Arial'
+ Font.Style = []
+ HotTrack = True
+ MultiLine = True
+ ParentFont = False
+ PopupMenu = PopupMenu4
+ TabHeight = 14
+ TabOrder = 0
+ OnChange = PageControl1Change
+ end
+ end
+ object pnlComment: TPanel
+ Left = 373
+ Top = 0
+ Width = 261
+ Height = 236
+ Align = alClient
+ BevelOuter = bvNone
+ Constraints.MinHeight = 10
+ Constraints.MinWidth = 10
+ PopupMenu = PopupMenu4
+ TabOrder = 1
+ object PageControl2: TPageControl
+ Left = 0
+ Top = 0
+ Width = 261
+ Height = 236
+ Hint = 'Commentaries'
+ Align = alClient
+ Font.Charset = ANSI_CHARSET
+ Font.Color = clBlack
+ Font.Height = -9
+ Font.Name = 'Arial'
+ Font.Style = []
+ HotTrack = True
+ MultiLine = True
+ ParentFont = False
+ PopupMenu = PopupMenu4
+ TabHeight = 14
+ TabOrder = 0
+ OnChange = PageControl2Change
+ end
+ end
+ end
+ object pnlDict: TPanel
+ Left = 0
+ Top = 287
+ Width = 634
+ Height = 127
+ Align = alClient
+ BevelOuter = bvNone
+ Constraints.MinHeight = 10
+ Constraints.MinWidth = 10
+ PopupMenu = PopupMenu4
+ TabOrder = 1
+ object Splitter3: TSplitter
+ Left = 444
+ Top = 0
+ Width = 5
+ Height = 127
+ Cursor = crHSplit
+ Align = alRight
+ end
+ object PageControl3: TPageControl
+ Left = 0
+ Top = 0
+ Width = 444
+ Height = 127
+ Hint = 'Lexicons / Dictionaries'
+ Align = alClient
+ Font.Charset = ANSI_CHARSET
+ Font.Color = clBlack
+ Font.Height = -9
+ Font.Name = 'Arial'
+ Font.Style = []
+ HotTrack = True
+ MultiLine = True
+ ParentFont = False
+ PopupMenu = PopupMenu4
+ TabHeight = 14
+ TabOrder = 0
+ OnChange = PageControl3Change
+ end
+ object Panel2: TPanel
+ Left = 449
+ Top = 0
+ Width = 185
+ Height = 127
+ Align = alRight
+ Caption = 'Panel2'
+ TabOrder = 1
+ object DictKeyEdit: TRichEdit
+ Left = 1
+ Top = 1
+ Width = 183
+ Height = 24
+ Align = alTop
+ Color = clAqua
+ MaxLength = 128
+ PlainText = True
+ TabOrder = 0
+ WantReturns = False
+ WordWrap = False
+ OnChange = DictKeyEditChange
+ end
+ object lbDictKeys: TListBox
+ Left = 1
+ Top = 25
+ Width = 183
+ Height = 101
+ Align = alClient
+ ItemHeight = 13
+ TabOrder = 1
+ OnClick = lbDictKeysClick
+ end
+ end
+ end
+ object StatusBar1: TStatusBar
+ Left = 0
+ Top = 414
+ Width = 634
+ Height = 15
+ Panels = <>
+ SimplePanel = True
+ end
+ object CoolBar1: TCoolBar
+ Left = 0
+ Top = 0
+ Width = 634
+ Height = 46
+ AutoSize = True
+ Bands = <
+ item
+ Control = ToolBar2
+ ImageIndex = -1
+ MinHeight = 40
+ Width = 106
+ end
+ item
+ Break = False
+ Control = Panel1
+ ImageIndex = -1
+ MinHeight = 42
+ Width = 250
+ end
+ item
+ Break = False
+ Control = ToolBar1
+ ImageIndex = -1
+ Width = 270
+ end>
+ object BackBtnImage: TImage
+ Left = 16
+ Top = 0
+ Width = 38
+ Height = 34
+ AutoSize = True
+ Picture.Data = {
+ 07544269746D61701E030000424D1E0300000000000076000000280000002600
+ 0000220000000100040000000000A80200000000000000000000100000001000
+ 0000FFFFFF00FFCFCE00B5AECE00848284009CFF31002120210000FF00008482
+ 0000008200003934000000000000000000000000000000000000000000000000
+ 0000777777777777777777777777777777777777770077777777777777777777
+ 777777777777A77777007777777777777777777777777777777A777777007777
+ 7AA7AAA77AA77AA77AAA77A777A7777777007777777A777A7A7A7A77A777A7A7
+ 77A7777777007777777A777A7A7AAA77A777A7AA7A77777777007777777A777A
+ 7A777A77A777777AAA77777777007777777A77AA77A77A77A777777A77A77777
+ 77007777777AAAA777A77A77A777A77AA77A777777007777777A77AA777A7A77
+ 7A77A77A7A7A777777007777777A777A7777AA7777AAA77A77AA777777007777
+ 777A777A777777777777777A77777777770077777AAAAAA7777777775577777A
+ 777777777700777777777777777777768577777A777777777700777777777777
+ 7777776868777777A777777777007777777777777777768688777777A7777777
+ 77007777777777777777686868777777A7777777770077777777777777768686
+ 88777777AA777777770077777777777777686868687777777777777777007777
+ 7777777776868686868697777777777777007777777777776868686868683777
+ 7777777777007777777777768686868686865777777777777700777777777778
+ 6848686868685777777777777700777777777774214141616161577777777777
+ 7700777777777777421414161616377777777777770077777777777774214141
+ 6161977777777777770077777777777777421414187777777777777777007777
+ 7777777777742141687777777777777777007777777777777777421418777777
+ 7777777777007777777777777777742168777777777777777700777777777777
+ 7777774218777777777777777700777777777777777777742577777777777777
+ 7700777777777777777777774377777777777777770077777777777777777777
+ 77777777777777777700}
+ Transparent = True
+ Visible = False
+ end
+ object SearchBtnImage: TImage
+ Left = 56
+ Top = 0
+ Width = 38
+ Height = 34
+ AutoSize = True
+ Picture.Data = {
+ 07544269746D61701E030000424D1E0300000000000076000000280000002600
+ 0000220000000100040000000000A80200000000000000000000100000001000
+ 0000FFFFFF00F2F5FF00FFF7E100BAC0CF007E828F00DBB97700C4862300F6FF
+ 0C0002000600B5AECE0000000000000000000000000000000000000000000000
+ 0000999999999999999999999999999999998999990099999999999999999999
+ 9999999999999899990099999999999999999999999999999999989999009988
+ 8999888998899889899999888998998999009899989889989898989989999899
+ 9898999899009899989899989898889988999899989889989900999998988899
+ 9899989988999899999889998900999989989988998998998899989999988899
+ 8900998899989998998998998989989998988899890098899999899899989898
+ 8888998998998989890098999999988999998899989899988899899889009889
+ 8999999999999999999999999999899999009988899998889999999999999999
+ 9999899999009999999986668999999999999999999989999900999999996776
+ 6899999999999999999989999900999999995677868999999999999999999899
+ 9900999999999568786899999999999999999899990099999999995687868999
+ 9999999999999889990099999999999568744844888889999999999999009999
+ 9999999956734488888888899999999999009999999999999561488822222288
+ 9999999999009999999999999953888222222228899999999900999999999999
+ 9998882222222222899999999900999999999999999882222222222228999999
+ 9900999999999999999882222222222224999999990099999999999999984222
+ 2222222224999999990099999999999999984222222222222499999999009999
+ 9999999999984222222222222499999999009999999999999998422222222222
+ 2499999999009999999999999999822222222222499999999900999999999999
+ 9999892222222222499999999900999999999999999994922222222499999999
+ 9900999999999999999999442222244999999999990099999999999999999999
+ 44444999999999999900}
+ Transparent = True
+ Visible = False
+ end
+ object ToolBar2: TToolBar
+ Left = 9
+ Top = 1
+ Width = 93
+ Height = 40
+ AutoSize = True
+ ButtonHeight = 40
+ ButtonWidth = 45
+ EdgeBorders = []
+ Flat = True
+ Images = ImageList1
+ TabOrder = 0
+ object ToolButton3: TToolButton
+ Left = 0
+ Top = 0
+ Hint = 'Go Back To Previous Location'
+ Caption = 'Back'
+ ImageIndex = 0
+ OnClick = BackbtnClick
+ end
+ object ToolButton4: TToolButton
+ Left = 45
+ Top = 0
+ Hint = 'Bring Up Search Window'
+ Caption = 'ToolButton4'
+ ImageIndex = 1
+ OnClick = NewSearchWindow1Click
+ end
+ end
+ object Panel1: TPanel
+ Left = 117
+ Top = 0
+ Width = 237
+ Height = 42
+ BevelOuter = bvNone
+ TabOrder = 2
+ object btnLookup: TSpeedButton
+ Left = 212
+ Top = 0
+ Width = 21
+ Height = 21
+ Hint = 'Lookup'
+ Flat = True
+ Glyph.Data = {
+ 76010000424D7601000000000000760000002800000020000000100000000100
+ 0400000000000001000000000000000000001000000010000000000000000000
+ 800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
+ FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00555555555555
+ 555555555555555555555555555555555555555555FF55555555555559055555
+ 55555555577FF5555555555599905555555555557777F5555555555599905555
+ 555555557777FF5555555559999905555555555777777F555555559999990555
+ 5555557777777FF5555557990599905555555777757777F55555790555599055
+ 55557775555777FF5555555555599905555555555557777F5555555555559905
+ 555555555555777FF5555555555559905555555555555777FF55555555555579
+ 05555555555555777FF5555555555557905555555555555777FF555555555555
+ 5990555555555555577755555555555555555555555555555555}
+ NumGlyphs = 2
+ OnClick = btnLookupClick
+ end
+ object cbBook: TComboBox
+ Left = 0
+ Top = 0
+ Width = 121
+ Height = 21
+ Style = csDropDownList
+ Color = clAqua
+ ItemHeight = 13
+ TabOrder = 0
+ OnChange = cbBookChange
+ end
+ object CHBox: TEdit
+ Left = 128
+ Top = 0
+ Width = 25
+ Height = 22
+ Color = clAqua
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clBlack
+ Font.Height = -11
+ Font.Name = 'Arial'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 1
+ Text = '1'
+ end
+ object UpDown1: TUpDown
+ Left = 153
+ Top = 0
+ Width = 22
+ Height = 22
+ Associate = CHBox
+ Min = -1
+ Max = 200
+ Position = 1
+ TabOrder = 2
+ Wrap = False
+ OnClick = UpDown1Click
+ end
+ object VSBox: TEdit
+ Left = 168
+ Top = 0
+ Width = 25
+ Height = 22
+ Color = clAqua
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clBlack
+ Font.Height = -11
+ Font.Name = 'Arial'
+ Font.Style = []
+ ParentFont = False
+ TabOrder = 3
+ Text = '19'
+ end
+ object UpDown2: TUpDown
+ Left = 193
+ Top = 0
+ Width = 22
+ Height = 22
+ Associate = VSBox
+ Min = -1
+ Max = 200
+ Position = 19
+ TabOrder = 4
+ Wrap = False
+ OnClick = UpDown1Click
+ end
+ object freeHandLookup: TComboBox
+ Left = 0
+ Top = 21
+ Width = 233
+ Height = 21
+ Color = clAqua
+ ItemHeight = 13
+ TabOrder = 5
+ OnKeyPress = freeHandLookupoldKeyPress
+ end
+ end
+ object ToolBar1: TToolBar
+ Left = 369
+ Top = 8
+ Width = 257
+ Height = 25
+ AutoSize = True
+ ButtonHeight = 23
+ ButtonWidth = 82
+ EdgeBorders = []
+ Images = ImageList2
+ TabOrder = 3
+ object Bookmarkbtn: TSpeedButton
+ Left = 0
+ Top = 2
+ Width = 101
+ Height = 23
+ Caption = 'Bookmark'
+ Glyph.Data = {
+ 76010000424D7601000000000000760000002800000020000000100000000100
+ 0400000000000001000000000000000000001000000010000000000000000000
+ 800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
+ FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
+ 333333333333FF3333333333333C0C333333333333F777F3333333333CC0F0C3
+ 333333333777377F33333333C30F0F0C333333337F737377F333333C00FFF0F0
+ C33333F7773337377F333CC0FFFFFF0F0C3337773F33337377F3C30F0FFFFFF0
+ F0C37F7373F33337377F00FFF0FFFFFF0F0C7733373F333373770FFFFF0FFFFF
+ F0F073F33373F333373730FFFFF0FFFFFF03373F33373F333F73330FFFFF0FFF
+ 00333373F33373FF77333330FFFFF000333333373F333777333333330FFF0333
+ 3333333373FF7333333333333000333333333333377733333333333333333333
+ 3333333333333333333333333333333333333333333333333333}
+ Layout = blGlyphRight
+ NumGlyphs = 2
+ OnClick = BookmarkbtnClick
+ end
+ object BookmarkBtnImage: TImage
+ Left = 101
+ Top = 5
+ Width = 75
+ Height = 16
+ AutoSize = True
+ Picture.Data = {
+ 07544269746D6170F6020000424DF60200000000000076000000280000004B00
+ 0000100000000100040000000000800200000000000000000000100000001000
+ 0000000000000000800000800000008080008000000080008000808000008080
+ 8000C0C0C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF
+ FF00888888888888888888888888888888888888888888888888888888888888
+ 8888888888888880000088888888888888888888888888888888888888888888
+ 888888888888888888C0C8888888888000008888888888888888888888888888
+ 88888888888888888888888888888888CC0F0C88888888800000888888888888
+ 88888888888888888888888888888888888888888888888C80F0F0C888888880
+ 00008888000088880008880008808880808808808800008088088808888888C0
+ 0FFF0F0C88888880000088880888088088808088808088088088088080888080
+ 880880888888CC0FFFFFF0F0C888888000008888088808808880808880808088
+ 808808808088808088080888888C80F0FFFFFF0F0C8888800000888808880880
+ 888080888080088880880880880000808800888888800FFF0FFFFFF0F0C88880
+ 000088880000888088808088808080888088088088888080880808888880FFFF
+ F0FFFFFF0F088880000088880888088800088800088088088000800888000880
+ 0808808888880FFFFF0FFFFFF088888000008888088808888888888888808888
+ 888888888888888888088888888880FFFFF0FFF0088888800000888808880888
+ 88888888888088888888888888888888880888888888880FFFFF000888888880
+ 0000888800008888888888888880888888888888888888888808888888888880
+ FFF0888888888880000088888888888888888888888888888888888888888888
+ 8888888888888888000888888888888000008888888888888888888888888888
+ 8888888888888888888888888888888888888888888888800000888888888888
+ 8888888888888888888888888888888888888888888888888888888888888880
+ 0000}
+ Visible = False
+ end
+ end
+ object pnlSpeed: TPanel
+ Left = 12
+ Top = 0
+ Width = 0
+ Height = 49
+ Align = alTop
+ BevelOuter = bvNone
+ TabOrder = 1
+ end
+ end
+ object MainMenu1: TMainMenu
+ Left = 572
+ object File1: TMenuItem
+ Caption = '&File'
+ object Options1: TMenuItem
+ Caption = '&Preferences...'
+ OnClick = Options1Click
+ end
+ object SaveLayout1: TMenuItem
+ Caption = 'S&ave Layout'
+ OnClick = SaveLayout1Click
+ end
+ object N1: TMenuItem
+ Caption = '-'
+ end
+ object Exit1: TMenuItem
+ Caption = 'E&xit'
+ OnClick = Exit1Click
+ end
+ end
+ object Edit1: TMenuItem
+ Caption = '&Edit'
+ object Copy3: TMenuItem
+ Caption = '&Copy'
+ OnClick = Copy1Click
+ end
+ end
+ object Options2: TMenuItem
+ Caption = 'Options'
+ end
+ object Search1: TMenuItem
+ Caption = '&Search'
+ object NewSearchWindow1: TMenuItem
+ Caption = '&New Search Window'
+ OnClick = NewSearchWindow1Click
+ end
+ end
+ object Tools1: TMenuItem
+ Caption = '&Tools'
+ object InstallManager1: TMenuItem
+ Caption = 'Install Manager'
+ OnClick = InstallManager1Click
+ end
+ end
+ object Help1: TMenuItem
+ Caption = '&Help'
+ object Contents1: TMenuItem
+ Caption = 'Contents'
+ OnClick = Contents1Click
+ end
+ object About1: TMenuItem
+ Caption = '&About'
+ OnClick = About1Click
+ end
+ object DevotionaloftheDay1: TMenuItem
+ Caption = 'Devotional of the Day'
+ OnClick = DevotionaloftheDay1Click
+ end
+ end
+ end
+ object PopupMenu2: TPopupMenu
+ OnPopup = PopupMenuPopup
+ Left = 273
+ Top = 246
+ object Copy2: TMenuItem
+ Caption = '&Copy'
+ OnClick = Copy1Click
+ end
+ object DictionaryLookup1: TMenuItem
+ Caption = 'Dictionary Lookup'
+ OnClick = DictionaryLookup1Click
+ end
+ end
+ object Search: TDdeServerItem
+ ServerConv = Bible
+ OnPokeData = SearchPokeData
+ Left = 564
+ Top = 444
+ end
+ object Lookup: TDdeServerItem
+ ServerConv = Bible
+ OnPokeData = LookupPokeData
+ Left = 536
+ Top = 444
+ end
+ object Bible: TDdeServerConv
+ Left = 504
+ Top = 444
+ end
+ object PopupMenu1: TPopupMenu
+ OnPopup = PopupMenuPopup
+ Left = 245
+ Top = 246
+ object Copy1: TMenuItem
+ Caption = '&Copy'
+ OnClick = Copy1Click
+ end
+ object CopyasBGreekTransliteration1: TMenuItem
+ Caption = 'Copy as &B-Greek Transliteration'
+ OnClick = CopyasBGreekTransliteration1Click
+ end
+ object MenuItem1: TMenuItem
+ Caption = 'Dictionary Lookup'
+ OnClick = DictionaryLookup1Click
+ end
+ end
+ object BookmarkPopup: TPopupMenu
+ Left = 600
+ object AddBookmark1: TMenuItem
+ Caption = '&Add Bookmark'
+ Hint = 'Add Current Verse to Personal Bookmarks'
+ OnClick = AddBookmark1Click
+ end
+ object EditBookmarks1: TMenuItem
+ Caption = '&Edit Bookmarks / Tree View...'
+ Hint = 'Edit Bookmarks / View Bookmarks in a Tree View'
+ OnClick = EditBookmarks1Click
+ end
+ object N2: TMenuItem
+ Caption = '-'
+ end
+ end
+ object ImageList1: TImageList
+ BlendColor = clBtnFace
+ DrawingStyle = dsTransparent
+ Height = 34
+ Width = 38
+ Left = 14
+ Top = 4
+ end
+ object ImageList2: TImageList
+ Masked = False
+ Width = 75
+ Left = 518
+ Top = 2
+ end
+ object PopupMenu3: TPopupMenu
+ OnPopup = PopupMenuPopup
+ Left = 301
+ Top = 246
+ object EditEntry1: TMenuItem
+ Caption = '&Edit Entry'
+ OnClick = EditEntry1Click
+ end
+ object DeleteEntry1: TMenuItem
+ Caption = '&Delete Entry'
+ OnClick = DeleteEntry1Click
+ end
+ object LinktoVerse1: TMenuItem
+ Caption = 'Link to Comment for Verse...'
+ OnClick = LinktoVerse1Click
+ end
+ object N3: TMenuItem
+ Caption = '-'
+ end
+ object MenuItem2: TMenuItem
+ Caption = '&Copy'
+ OnClick = Copy1Click
+ end
+ object MenuItem3: TMenuItem
+ Caption = 'Dictionary Lookup'
+ OnClick = DictionaryLookup1Click
+ end
+ end
+ object PopupMenu4: TPopupMenu
+ Left = 328
+ Top = 58
+ object HideShowModules1: TMenuItem
+ Caption = 'Hide / Show Modules'
+ OnClick = HideShowModules1Click
+ end
+ end
+end
diff --git a/apps/windoze/CBuilder5/BibleCS/mainfrm.h b/apps/windoze/CBuilder5/BibleCS/mainfrm.h
new file mode 100644
index 0000000..9e9bc73
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/mainfrm.h
@@ -0,0 +1,326 @@
+//---------------------------------------------------------------------------
+#ifndef mainfrmH
+#define mainfrmH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ExtCtrls.hpp>
+#include <vcl\ComCtrls.hpp>
+#include <swmgr.h>
+#include <swtext.h>
+#include <strkey.h>
+#include <regex.h>
+#include <listkey.h>
+#include <swgenbook.h>
+#include "swdisprtfchap.h"
+#include <vcl\Buttons.hpp>
+#include <vcl\Menus.hpp>
+#include <vcl\DdeMan.hpp>
+#include <OleCtrls.hpp>
+#include <ToolWin.hpp>
+#include <shellapi.h>
+#include <Graphics.hpp>
+#include <ImgList.hpp>
+#include <jpeg.hpp>
+#include "RxRichEd.hpp"
+//#include "MOZILLACONTROLLib_OCX.h"
+#include "SHDocVw_OCX.h"
+
+#ifndef USEOLDRTF
+#include "RxRichEd.hpp"
+#else
+#define TRxRichEdit TRichEdit
+#endif
+
+#include <list>
+#include <vector>
+
+class RTFDisp : public SWDisplay {
+ SWDispRTF *edit;
+public:
+ RTFDisp(SWDispRTF *iedit) { edit = iedit; }
+ RTFDisp() {}
+ char Display(SWModule &imodule) {
+ return edit->Display(imodule);
+ }
+};
+
+class HREFDisp : public SWDisplay {
+ TCppWebBrowser *edit;
+public:
+ HREFDisp(TCppWebBrowser *iedit) { edit = iedit; }
+ HREFDisp() {}
+ char Display(SWModule &imodule) {
+
+ TMemoryStream *stm = new TMemoryStream();
+
+ if ( stm == NULL )
+ return 1;
+
+ stm->Clear();
+ string modText = (string)"<HTML><BODY>" + (string)imodule.RenderText() + (string)"</BODY></HTML>";
+ stm->WriteBuffer(modText.c_str(), modText.length());
+
+ IPersistStreamInit *psi = NULL;
+
+ stm->Seek( 0, 0 );
+
+ // If you pass soOwned instead, the stream will be freed for you
+ TStreamAdapter *sa = new TStreamAdapter( stm, soReference );
+
+ if ( sa == NULL ) {
+ delete stm;
+ return 1;
+ }
+
+ _di_IDispatch doc = edit->Document;
+ if ( doc == NULL ) {
+ TVariant url = "about:blank";
+ edit->Navigate2( &url );
+ while ( doc == NULL ) {
+ Application->ProcessMessages();
+ doc = edit->Document;
+ }
+ }
+
+// if ( doc->QueryInterface(IID_IPersistStreamInit, (void**)&psi ) == S_OK ) {
+ HRESULT result = doc->QueryInterface(IID_IPersistStreamInit, (void**)&psi );
+ if (result == S_OK) {
+// if ( doc->QueryInterface(IID_IWrite, (void**)"test" ) == S_OK ) {
+ if ( psi )
+ psi->Load( *sa );
+ }
+ else
+ delete sa;
+
+ delete stm;
+
+// edit->SetTextBuf("yo mama");
+// edit->RequestDoc((char *)imodule);
+ return 0;
+ }
+};
+
+class DispExternal : public SWDisplay {
+public:
+ DispExternal() {}
+ char Display(SWModule &imodule) {
+ SHELLEXECUTEINFO info;
+ info.cbSize = sizeof(SHELLEXECUTEINFO);
+ info.fMask = SEE_MASK_NOCLOSEPROCESS; //SEE_MASK_CLASSNAME;
+ info.hwnd = GetFocus();
+ info.lpVerb = "open";
+ info.lpFile = (const char *)imodule;
+ info.lpParameters = NULL;
+ info.lpDirectory = NULL;
+ info.nShow = 0;
+// info.lpClass = ".html";
+ ShellExecuteEx(&info);
+// ShellExecute(edit->Handle, "open", (char *)imodule, NULL, NULL, SW_SHOWNORMAL);
+ return 0;
+ }
+};
+
+
+class ModState {
+public:
+ ModState(TPageControl *ipc, TTabSheet *iap, SWKey ikey) { pc = ipc; ap = iap; key = ikey; }
+ ModState();
+ TPageControl *pc;
+ TTabSheet* ap;
+ SWKey key;
+};
+
+//---------------------------------------------------------------------------
+class TForm1 : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *pnlTextCom;
+ TSplitter *Splitter2;
+ TPanel *pnlText;
+ TPanel *pnlComment;
+ TSplitter *Splitter1;
+ TPanel *pnlDict;
+ TPageControl *PageControl1;
+ TPageControl *PageControl2;
+ TStatusBar *StatusBar1;
+ TPageControl *PageControl3;
+ TMainMenu *MainMenu1;
+ TMenuItem *Search1;
+ TMenuItem *NewSearchWindow1;
+ TMenuItem *Help1;
+ TMenuItem *About1;
+ TPopupMenu *PopupMenu2;
+ TMenuItem *DictionaryLookup1;
+ TMenuItem *File1;
+ TMenuItem *SaveLayout1;
+ TMenuItem *Exit1;
+ TMenuItem *N1;
+ TDdeServerItem *Search;
+ TDdeServerItem *Lookup;
+ TDdeServerConv *Bible;
+ TPopupMenu *PopupMenu1;
+ TMenuItem *MenuItem1;
+ TMenuItem *Copy1;
+ TMenuItem *CopyasBGreekTransliteration1;
+ TMenuItem *Copy2;
+ TMenuItem *Edit1;
+ TMenuItem *Copy3;
+ TPopupMenu *BookmarkPopup;
+ TMenuItem *AddBookmark1;
+ TMenuItem *N2;
+ TMenuItem *EditBookmarks1;
+ TMenuItem *Options1;
+ TCoolBar *CoolBar1;
+ TImageList *ImageList1;
+ TImage *BackBtnImage;
+ TImage *SearchBtnImage;
+ TToolBar *ToolBar2;
+ TToolButton *ToolButton3;
+ TToolButton *ToolButton4;
+ TPanel *pnlSpeed;
+ TPanel *Panel1;
+ TComboBox *cbBook;
+ TEdit *CHBox;
+ TUpDown *UpDown1;
+ TEdit *VSBox;
+ TUpDown *UpDown2;
+ TSpeedButton *btnLookup;
+ TToolBar *ToolBar1;
+ TImageList *ImageList2;
+ TImage *BookmarkBtnImage;
+ TSpeedButton *Bookmarkbtn;
+ TPopupMenu *PopupMenu3;
+ TMenuItem *MenuItem2;
+ TMenuItem *MenuItem3;
+ TMenuItem *N3;
+ TMenuItem *EditEntry1;
+ TMenuItem *DeleteEntry1;
+ TMenuItem *LinktoVerse1;
+ TMenuItem *Options2;
+ TMenuItem *Contents1;
+ TComboBox *freeHandLookup;
+ TPanel *Panel2;
+ TSplitter *Splitter3;
+ TRichEdit *DictKeyEdit;
+ TListBox *lbDictKeys;
+ TPopupMenu *PopupMenu4;
+ TMenuItem *HideShowModules1;
+ TMenuItem *DevotionaloftheDay1;
+ TMenuItem *Tools1;
+ TMenuItem *InstallManager1;
+ void __fastcall PageControl1Change(TObject *Sender);
+ void __fastcall btnLookupClick(TObject *Sender);
+ void __fastcall PageControl2Change(TObject *Sender);
+
+
+
+ void __fastcall DictKeyEditChange(TObject *Sender);
+ void __fastcall PageControl3Change(TObject *Sender);
+ void __fastcall NewSearchWindow1Click(TObject *Sender);
+
+ void __fastcall Exit1Click(TObject *Sender);
+ void __fastcall About1Click(TObject *Sender);
+ void __fastcall DictionaryLookup1Click(TObject *Sender);
+ void __fastcall SaveLayout1Click(TObject *Sender);
+
+
+ void __fastcall FormShow(TObject *Sender);
+
+ void __fastcall LookupPokeData(TObject *Sender);
+
+ void __fastcall SearchPokeData(TObject *Sender);
+ void __fastcall UpDown3Click(TObject *Sender, TUDBtnType Button);
+ void __fastcall UpDown1Click(TObject *Sender, TUDBtnType Button);
+
+
+ void __fastcall BackbtnClick(TObject *Sender);
+ void __fastcall Button1Click(TObject *Sender);
+ void __fastcall CopyasBGreekTransliteration1Click(TObject *Sender);
+ void __fastcall Copy1Click(TObject *Sender);
+
+
+
+ void __fastcall AddBookmark1Click(TObject *Sender);
+ void __fastcall BookmarkItemClick(TObject *Sender);
+ void __fastcall BookmarkbtnClick(TObject *Sender);
+ void __fastcall EditBookmarks1Click(TObject *Sender);
+
+ void __fastcall FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
+ void __fastcall Options1Click(TObject *Sender);
+ void __fastcall cbBookChange(TObject *Sender);
+
+ void __fastcall FormCreate(TObject *Sender);
+ void __fastcall DisplayHint(TObject* Sender) ;
+ void __fastcall PopupMenuPopup(TObject *Sender);
+ void __fastcall createVerseList(TObject *Sender);
+ void __fastcall freeHandLookupoldKeyPress(TObject *Sender, char &Key);
+ void __fastcall RTFMouseDown(TObject *Sender, TMouseButton Button,
+ TShiftState Shift, int X, int Y);
+ void __fastcall EditEntry1Click(TObject *Sender);
+ void __fastcall DeleteEntry1Click(TObject *Sender);
+ void __fastcall LinktoVerse1Click(TObject *Sender);
+ void __fastcall BookTOCChange(TObject* Sender, TTreeNode* Node);
+
+ void __fastcall GlobalOptionChange(TObject *Sender);
+
+
+ void __fastcall OptionShowVals(TObject *Sender);
+ void __fastcall Contents1Click(TObject *Sender);
+ void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
+ void __fastcall lbDictKeysClick(TObject *Sender);
+ void __fastcall verseLookupClick(TObject *Sender);
+ void __fastcall HideShowModules1Click(TObject *Sender);
+ void __fastcall DevotionaloftheDay1Click(TObject *Sender);
+ void __fastcall CppWebBrowser1BeforeNavigate2(TObject *Sender,
+ LPDISPATCH pDisp, TVariant *URL, TVariant *Flags,
+ TVariant *TargetFrameName, TVariant *PostData, TVariant *Headers,
+ TOLEBOOL *Cancel);
+ void __fastcall InstallManager1Click(TObject *Sender);
+private: // User declarations
+ list <SWDisplay *> displays; // so we can delete each display we create
+ list <ModState *> modstates;
+ vector <ModState *> ctrlstates;
+ bool logmodstate;
+ bool freshdict;
+
+ void fillTreeTOC(TreeKeyIdx treeKey, TTreeView *tree, TTreeNode *parent);
+ char CreateTextPane(SWModule *mod, char *font = 0);
+ char CreateCommentPane(SWModule *mod, char *font = 0);
+ char CreateLDPane(SWModule *mod, char *font = 0);
+ char CreateBookPane(SWModule *mod, char *font = 0);
+ void PushState();
+ void BackState();
+ void ForwardState();
+ void BuildRTFHeader(char *buf, char *font, int max, char *type = "Text");
+ void AddSectionToMenu(TMenu *menu, TMenuItem *item, TTreeNode *tree);
+ void FillDictKeys();
+ void AddVerseChoices(TPopupMenu *menu, const char *buf, TRxRichEdit *rtf);
+ void fillVKeySelector(VerseKey *vk);
+ static bool hasFeature(SWMgr *mgr, const char *modName, const char *feature);
+ void NavigateVerseURL(char* verStr);
+
+public: // User declarations
+ VerseKey *DefaultVSKey;
+ SWKey *DefaultStrKey;
+ SWMgr *mainmgr;
+ SWConfig *layoutconf;
+ SWConfig *optionsconf;
+ __fastcall TForm1(TComponent* Owner);
+ __fastcall ~TForm1();
+ void RefreshActiveSheet(TPageControl *ts);
+ void TextKeyChanged(); // updates dependents on TextKeyChanged
+ void RefreshBookmarksMenu(TMenu *menu, TTreeView *tree);
+ void RestoreState(ModState *state);
+ static String TrimJunk(String src);
+ static void TColorToRGB(const TColor& color, int& red, int& green, int& blue);
+ void __fastcall AppMessage(tagMSG &Msg, bool &Handled);
+ ListKey tmpVerseList;
+ String tmpVerseListCaption;
+};
+//---------------------------------------------------------------------------
+extern TForm1 *Form1;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/BibleCS/newbmfilefrm.cpp b/apps/windoze/CBuilder5/BibleCS/newbmfilefrm.cpp
new file mode 100644
index 0000000..c611804
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/newbmfilefrm.cpp
@@ -0,0 +1,14 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "newbmfilefrm.h"
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TNewBMfrm *NewBMfrm;
+//---------------------------------------------------------------------------
+__fastcall TNewBMfrm::TNewBMfrm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//--------------------------------------------------------------------------- \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/BibleCS/newbmfilefrm.dfm b/apps/windoze/CBuilder5/BibleCS/newbmfilefrm.dfm
new file mode 100644
index 0000000..45e5369
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/newbmfilefrm.dfm
@@ -0,0 +1,98 @@
+object NewBMfrm: TNewBMfrm
+ Left = 247
+ Top = 249
+ BorderIcons = []
+ BorderStyle = bsDialog
+ Caption = 'Add New Bookmark File'
+ ClientHeight = 86
+ ClientWidth = 465
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ Icon.Data = {
+ 0000010001002020100000000000E80200001600000028000000200000004000
+ 0000010004000000000080020000000000000000000000000000000000000000
+ 000000008000008000000080800080000000800080008080000080808000C0C0
+ C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF006666
+ 6666666666666666666666666666688888888888888888088888888888866888
+ 8888888888888880888888888886688888888888888888808888888888866888
+ 8008888088008880800080008800688888088880880808808080808088006888
+ 8808888088080880800880888806688888008880080808880080808088066888
+ 8808080080800800080088008000688888080888888888888888888888066888
+ 8000088888888888888888888806688888888888888888880888888888866008
+ 8808880888877777777878888F86088088088808887888877788888888F60880
+ 800888078788888878878888888F6800808080878788888878878888888F6088
+ 808087878788888877788888888F0888088087887788888878888888888F0808
+ 0888788878788887788888F888F600000087778777877777777888FFFF866888
+ 8880888888888888888888888886688888880888888888888888888888866800
+ 8880808800088888888888888886688088808808080888888888888888866880
+ 8880080800888888888888888886688088800008080888888888888888866880
+ 8880880880088888888888888886088080808888888888888888888888860000
+ 0080888888888888888888888886688888808888888888888888888888866888
+ 8888088888888888888888888886666666660666666666666666666666660000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000}
+ OldCreateOrder = True
+ Position = poScreenCenter
+ Scaled = False
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Label1: TLabel
+ Left = 0
+ Top = 8
+ Width = 197
+ Height = 21
+ Alignment = taRightJustify
+ AutoSize = False
+ Caption = 'File Name (without extension):'
+ end
+ object Label2: TLabel
+ Left = 0
+ Top = 32
+ Width = 197
+ Height = 21
+ Alignment = taRightJustify
+ AutoSize = False
+ Caption = 'Bookmark Section Title:'
+ end
+ object bmfile: TEdit
+ Left = 200
+ Top = 4
+ Width = 121
+ Height = 21
+ TabOrder = 0
+ end
+ object bmtitle: TEdit
+ Left = 200
+ Top = 28
+ Width = 262
+ Height = 21
+ Anchors = [akLeft, akTop, akRight]
+ TabOrder = 1
+ end
+ object Button1: TButton
+ Left = 151
+ Top = 56
+ Width = 75
+ Height = 25
+ Caption = 'OK'
+ Default = True
+ ModalResult = 1
+ TabOrder = 2
+ end
+ object Button2: TButton
+ Left = 234
+ Top = 56
+ Width = 78
+ Height = 25
+ Anchors = [akTop, akRight]
+ Caption = 'Cancel'
+ ModalResult = 2
+ TabOrder = 3
+ end
+end
diff --git a/apps/windoze/CBuilder5/BibleCS/newbmfilefrm.h b/apps/windoze/CBuilder5/BibleCS/newbmfilefrm.h
new file mode 100644
index 0000000..9b4c017
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/newbmfilefrm.h
@@ -0,0 +1,27 @@
+//---------------------------------------------------------------------------
+#ifndef newbmfilefrmH
+#define newbmfilefrmH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+//---------------------------------------------------------------------------
+class TNewBMfrm : public TForm
+{
+__published: // IDE-managed Components
+ TLabel *Label1;
+ TEdit *bmfile;
+ TEdit *bmtitle;
+ TLabel *Label2;
+ TButton *Button1;
+ TButton *Button2;
+private: // User declarations
+public: // User declarations
+ __fastcall TNewBMfrm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TNewBMfrm *NewBMfrm;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/BibleCS/optionfrm.cpp b/apps/windoze/CBuilder5/BibleCS/optionfrm.cpp
new file mode 100644
index 0000000..cfa9d98
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/optionfrm.cpp
@@ -0,0 +1,438 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include <localemgr.h>
+#include <list>
+#include <string>
+#include <dirent.h>
+#include <io.h>
+#include <dir.h>
+#include "optionfrm.h"
+#include "mainfrm.h"
+
+
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TOptionsfrm *Optionsfrm;
+
+const char *TOptionsfrm::defaultLocaleName = "en_us";
+const char *TOptionsfrm::defaultLocaleDescription = "English (US)";
+//---------------------------------------------------------------------------
+__fastcall TOptionsfrm::TOptionsfrm(TComponent* Owner)
+ : TForm(Owner)
+{
+ FontDialogText = new TFontSelFrm(this);
+ FontDialogComment = new TFontSelFrm(this);
+ FontDialogLD = new TFontSelFrm(this);
+}
+//---------------------------------------------------------------------------
+void __fastcall TOptionsfrm::btnCurrVerseClick(TObject *Sender)
+{
+ ColorDialog1->Execute();
+ CurrentVSColor->Brush->Color = ColorDialog1->Color;
+ UpdatePreview();
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TOptionsfrm::FormCreate(TObject *Sender)
+{
+ list<string> locales;
+
+ localeCB->Clear();
+ localeCB->Items->AddObject(defaultLocaleDescription, (TObject *)defaultLocaleName);
+
+ locales = LocaleMgr::systemLocaleMgr.getAvailableLocales();
+
+ for (list<string>::iterator it = locales.begin(); it != locales.end(); it++) {
+ const char *name = LocaleMgr::systemLocaleMgr.getLocale(it->c_str())->getName();
+ const char *description = LocaleMgr::systemLocaleMgr.getLocale(it->c_str())->getDescription();
+ localeCB->Items->AddObject(description, (TObject *)name);
+ }
+ localeCB->ItemIndex = 0;
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TOptionsfrm::FormShow(TObject *Sender)
+{
+
+ PageControl1->ActivePage = TabSheet1;
+ FindSchemeNames();
+ cmbTextSelect->ItemIndex = 0;
+ UpdatePreview();
+}
+
+
+
+void __fastcall TOptionsfrm::btnFontClick(TObject *Sender)
+{
+
+ TFontSelFrm* tempFrm = new TFontSelFrm(this);
+ switch (cmbTextSelect->ItemIndex)
+ {
+ case 0:
+ CopyFontDlg(tempFrm, FontDialogText);
+ if(FontDialogText->ShowModal() == mrOk){
+ CopyFontDlg(FontDialogComment, FontDialogText);
+ CopyFontDlg(FontDialogLD, FontDialogText);
+ UpdatePreview();
+ }else CopyFontDlg(FontDialogText, tempFrm);
+ break;
+ case 1:
+ CopyFontDlg(tempFrm, FontDialogText);
+ if(FontDialogText->ShowModal() == mrOk)
+ UpdatePreview();
+ else CopyFontDlg(FontDialogText, tempFrm);
+ break;
+ case 2:
+ CopyFontDlg(tempFrm, FontDialogComment);
+ if(FontDialogComment->ShowModal() == mrOk)
+ UpdatePreview();
+ else CopyFontDlg(FontDialogComment, tempFrm);
+ break;
+ case 3:
+ CopyFontDlg(tempFrm, FontDialogLD);
+ if(FontDialogLD->ShowModal() == mrOk)
+ UpdatePreview();
+ else CopyFontDlg(FontDialogLD, tempFrm);
+ }
+ delete tempFrm;
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TOptionsfrm::CurrentVSColorMouseDown(TObject *Sender,
+ TMouseButton Button, TShiftState Shift, int X, int Y)
+{
+ ColorDialog1->Execute();
+ CurrentVSColor->Brush->Color = ColorDialog1->Color;
+ UpdatePreview();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TOptionsfrm::btnNumClrClick(TObject *Sender)
+{
+ ColorDialogVerseNum->Execute();
+ UpdatePreview();
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TOptionsfrm::btnFieldClrClick(TObject *Sender)
+{
+ ColorDialogField->Execute();
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TOptionsfrm::cmbTextSelectChange(TObject *Sender)
+{
+ UpdatePreview();
+
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TOptionsfrm::cmbSchemeSelectChange(TObject *Sender)
+{
+ AnsiString tempName = ExtractFilePath(Application->ExeName) + COLOR_DIR + Optionsfrm->cmbSchemeSelect->Text + COLOR_EXT;
+ SWConfig schemesconf(tempName.c_str());
+ SectionMap::iterator sit;
+
+ if ((sit = schemesconf.Sections.find("Appearance")) != schemesconf.Sections.end()) {
+ if ((*sit).second.find("CurrentVSColor") != (*sit).second.end()){
+ Optionsfrm->CurrentVSColor->Brush->Color = TColor(atoi((*(*sit).second.find("CurrentVSColor")).second.c_str()));
+ Optionsfrm->ColorDialog1->Color = TColor(atoi((*(*sit).second.find("CurrentVSColor")).second.c_str()));
+ }
+ else{
+ Optionsfrm->CurrentVSColor->Brush->Color = TColor(clBlue);
+ Optionsfrm->ColorDialog1->Color = TColor(clBlue);
+ }
+
+ if ((*sit).second.find("VSNumberColor") != (*sit).second.end())
+ Optionsfrm->ColorDialogVerseNum->Color = TColor(atoi ((*(*sit).second.find("VSNumberColor")).second.c_str()));
+ else
+ Optionsfrm->ColorDialogVerseNum->Color = clBlue;
+
+ if ((*sit).second.find("TextBackColor") != (*sit).second.end())
+ Optionsfrm->FontDialogText->BackColor = TColor(atoi((*(*sit).second.find("TextBackColor")).second.c_str()));
+ else
+ Optionsfrm->FontDialogText->BackColor = TColor(clWhite);
+
+ if ((*sit).second.find("CommentBackColor") != (*sit).second.end())
+ Optionsfrm->FontDialogComment->BackColor = TColor(atoi((*(*sit).second.find("CommentBackColor")).second.c_str()));
+ else
+ Optionsfrm->FontDialogComment->BackColor = TColor(clWhite);
+
+ if ((*sit).second.find("LDBackColor") != (*sit).second.end())
+ Optionsfrm->FontDialogLD->BackColor = TColor(atoi((*(*sit).second.find("LDBackColor")).second.c_str()));
+ else
+ Optionsfrm->FontDialogLD->BackColor = TColor(clWhite);
+
+ if ((*sit).second.find("TextFontName") != (*sit).second.end())
+ Optionsfrm->FontDialogText->Font->Name = ((*(*sit).second.find("TextFontName")).second.c_str());
+ else
+ Optionsfrm->FontDialogText->Font->Name = "Times New Roman";
+
+ if ((*sit).second.find("CommentFontName") != (*sit).second.end())
+ Optionsfrm->FontDialogComment->Font->Name = ((*(*sit).second.find("CommentFontName")).second.c_str());
+ else
+ Optionsfrm->FontDialogComment->Font->Name = "Times New Roman";
+
+ if ((*sit).second.find("LDFontName") != (*sit).second.end())
+ Optionsfrm->FontDialogLD->Font->Name = ((*(*sit).second.find("LDFontName")).second.c_str());
+ else
+ Optionsfrm->FontDialogLD->Font->Name = "Times New Roman";
+ if ((*sit).second.find("TextFontSize") != (*sit).second.end())
+ Optionsfrm->FontDialogText->Font->Size = (atoi ((*(*sit).second.find("TextFontSize")).second.c_str()));
+ else
+ Optionsfrm->FontDialogText->Font->Size = 10;
+ if ((*sit).second.find("CommentFontSize") != (*sit).second.end())
+ Optionsfrm->FontDialogComment->Font->Size = (atoi ((*(*sit).second.find("CommentFontSize")).second.c_str()));
+ else
+ Optionsfrm->FontDialogComment->Font->Size = 10;
+
+ if ((*sit).second.find("CommentFontSize") != (*sit).second.end())
+ Optionsfrm->FontDialogLD->Font->Size = (atoi ((*(*sit).second.find("LDFontSize")).second.c_str()));
+ else
+ Optionsfrm->FontDialogLD->Font->Size = 10;
+ if ((*sit).second.find("TextFontColor") != (*sit).second.end())
+ Optionsfrm->FontDialogText->Font->Color = TColor(atoi ((*(*sit).second.find("TextFontColor")).second.c_str()));
+ else
+ Optionsfrm->FontDialogText->Font->Color = clBlack;
+
+ if ((*sit).second.find("CommentFontColor") != (*sit).second.end())
+ Optionsfrm->FontDialogComment->Font->Color = TColor(atoi ((*(*sit).second.find("CommentFontColor")).second.c_str()));
+ else
+ Optionsfrm->FontDialogComment->Font->Color = clBlack;
+
+ if ((*sit).second.find("LDFontColor") != (*sit).second.end())
+ Optionsfrm->FontDialogLD->Font->Color = TColor(atoi ((*(*sit).second.find("LDFontColor")).second.c_str()));
+ else
+ Optionsfrm->FontDialogLD->Font->Color = clBlack;
+
+ if ((*sit).second.find("FieldColor") != (*sit).second.end())
+ Optionsfrm->ColorDialogField->Color = TColor(atoi ((*(*sit).second.find("FieldColor")).second.c_str()));
+ else
+ Optionsfrm->ColorDialogField->Color = clAqua;
+
+
+ }
+
+ UpdatePreview();
+
+
+}
+//---------------------------------------------------------------------------
+
+
+void TOptionsfrm::UpdatePreview()
+{
+ char buffTemp[512], buffFinal[512], font[64];
+ char* verse = "Why, my beloved brothers, let every man be swift to hear, slow to speak, slow to wrath";
+ int vsColorRed, vsColorGreen, vsColorBlue, numColorRed, numColorGreen, numColorBlue;
+ int fontSize;
+ TMemoryStream * RTFStream = new TMemoryStream;
+
+ strcpy(buffFinal, "{\\rtf1\\ansi");
+
+ switch (cmbTextSelect->ItemIndex)
+ {
+ case 2:
+ TForm1::TColorToRGB(FontDialogComment->Font->Color, vsColorRed, vsColorGreen, vsColorBlue);
+ TForm1::TColorToRGB(ColorDialogVerseNum->Color, numColorRed, numColorGreen, numColorBlue);
+ strcpy(font, FontDialogComment->Font->Name.c_str());
+ fontSize = FontDialogComment->Font->Size;
+ RTFPreview->Color = FontDialogComment->BackColor;
+ break;
+ case 3:
+ TForm1::TColorToRGB(FontDialogLD->Font->Color, vsColorRed, vsColorGreen, vsColorBlue);
+ TForm1::TColorToRGB(ColorDialogVerseNum->Color, numColorRed, numColorGreen, numColorBlue);
+ strcpy(font, FontDialogLD->Font->Name.c_str());
+ fontSize = FontDialogLD->Font->Size;
+ RTFPreview->Color = FontDialogLD->BackColor;
+ break;
+ default:
+ TForm1::TColorToRGB(FontDialogText->Font->Color, vsColorRed, vsColorGreen, vsColorBlue);
+ TForm1::TColorToRGB(ColorDialogVerseNum->Color, numColorRed, numColorGreen, numColorBlue);
+ strcpy(font, FontDialogText->Font->Name.c_str());
+ fontSize = FontDialogText->Font->Size;
+ RTFPreview->Color = FontDialogText->BackColor;
+ }
+
+ // This is a strange way to deal with font size but I can't think of a different way to do it.
+ // So for now I will use the current system.
+ fontSize -= 12;
+ sprintf(buffTemp, "{\\fonttbl{\\f0\\fdecor\\fprq2 %s;}}" , font);
+ strcat(buffFinal, buffTemp);
+ sprintf(buffTemp, "{\\colortbl;\\red%d\\green%d\\blue%d;\\red%d\\green%d\\blue%d;}" , vsColorRed, vsColorGreen, vsColorBlue, numColorRed, numColorGreen, numColorBlue);
+ strcat(buffFinal, buffTemp);
+
+ sprintf(buffTemp, "\\pard \\qc\\nowidctlpar{\\f1\\fs%d\\cf1\\b Chapter 1 ", (30 + fontSize));
+ strcat(buffFinal, buffTemp);
+ sprintf(buffTemp, "\\par\\fs%d\\par}", (10 + fontSize));
+ strcat(buffFinal, buffTemp);
+
+ sprintf(buffTemp, "{\\fs%d\\cf2\\super 19}", (10 + fontSize));
+ strcat(buffFinal, buffTemp);
+
+ sprintf(buffTemp, "\\ql\\nowidctlpar \\cf1\\f0\\fs%d ", (24 + fontSize));
+ strcat(buffFinal, buffTemp);
+ strcat(buffFinal, verse);
+
+ strcat(buffFinal, " }");
+
+ RTFStream->WriteBuffer(buffFinal, 512);
+ RTFStream->Position = 0;
+ RTFPreview->Lines->LoadFromStream(RTFStream);
+}
+
+TOptionsfrm::CopyFontDlg(TFontSelFrm* lhs, const TFontSelFrm* rhs)
+{
+ lhs->BackColor = rhs->BackColor;
+ lhs->Font->Color = rhs->Font->Color;
+ lhs->Font->Size = rhs->Font->Size;
+ lhs->Font->Name = rhs->Font->Name;
+}
+
+void __fastcall TOptionsfrm::btnSaveScheme(TObject *Sender)
+{
+ TPoint menup, point;
+ point.x = 0;
+ point.y = btnSave->Height;
+ menup = btnSave->ClientToScreen(point);
+ SavePopup->Popup(menup.x, menup.y);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TOptionsfrm::SaveSchemeClick(TObject *Sender)
+{
+
+ ConfigEntMap emap;
+ AnsiString strName = Optionsfrm->cmbSchemeSelect->Text;
+ if(strName != "" && !strName.Pos("/") && !strName.Pos("\\")
+ && !strName.Pos(":") && !strName.Pos("*")
+ && !strName.Pos("?") && !strName.Pos("\"")
+ && !strName.Pos("<") && !strName.Pos(">")
+ && !strName.Pos("|")) {
+
+ AnsiString strName = COLOR_DIR + Optionsfrm->cmbSchemeSelect->Text + COLOR_EXT;
+ SWConfig schemeconf(strName.c_str());
+
+ emap = schemeconf.Sections["Appearance"];
+ emap.erase("AutoVSColor"); emap.insert(ConfigEntMap::value_type("AutoVSColor", IntToStr((Optionsfrm->AutoVSColor->Checked)?1:0).c_str()));
+ emap.erase("CurrentVSColor"); emap.insert(ConfigEntMap::value_type("CurrentVSColor", IntToStr(Optionsfrm->CurrentVSColor->Brush->Color).c_str()));
+
+ emap.erase("VSNumberColor"); emap.insert(ConfigEntMap::value_type("VSNumberColor", IntToStr(Optionsfrm->ColorDialogVerseNum->Color).c_str()));
+
+ emap.erase("TextBackColor"); emap.insert(ConfigEntMap::value_type("TextBackColor", IntToStr(Optionsfrm->FontDialogText->BackColor).c_str()));
+ emap.erase("CommentBackColor"); emap.insert(ConfigEntMap::value_type("CommentBackColor", IntToStr(Optionsfrm->FontDialogComment->BackColor).c_str()));
+ emap.erase("LDBackColor"); emap.insert(ConfigEntMap::value_type("LDBackColor", IntToStr(Optionsfrm->FontDialogLD->BackColor).c_str()));
+
+ emap.erase("TextFontName"); emap.insert(ConfigEntMap::value_type("TextFontName", (Optionsfrm->FontDialogText->Font->Name).c_str()));
+ emap.erase("CommentFontName"); emap.insert(ConfigEntMap::value_type("CommentFontName", (Optionsfrm->FontDialogComment->Font->Name).c_str()));
+ emap.erase("LDFontName"); emap.insert(ConfigEntMap::value_type("LDFontName", (Optionsfrm->FontDialogLD->Font->Name).c_str()));
+
+ emap.erase("TextFontSize"); emap.insert(ConfigEntMap::value_type("TextFontSize", IntToStr(Optionsfrm->FontDialogText->Font->Size).c_str()));
+ emap.erase("CommentFontSize"); emap.insert(ConfigEntMap::value_type("CommentFontSize", IntToStr(Optionsfrm->FontDialogComment->Font->Size).c_str()));
+ emap.erase("LDFontSize"); emap.insert(ConfigEntMap::value_type("LDFontSize", IntToStr(Optionsfrm->FontDialogLD->Font->Size).c_str()));
+
+ emap.erase("TextFontColor"); emap.insert(ConfigEntMap::value_type("TextFontColor", IntToStr(Optionsfrm->FontDialogText->Font->Color).c_str()));
+ emap.erase("CommentFontColor"); emap.insert(ConfigEntMap::value_type("CommentFontColor", IntToStr(Optionsfrm->FontDialogComment->Font->Color).c_str()));
+ emap.erase("LDFontColor"); emap.insert(ConfigEntMap::value_type("LDFontColor", IntToStr(Optionsfrm->FontDialogLD->Font->Color).c_str()));
+
+ emap.erase("FieldColor"); emap.insert(ConfigEntMap::value_type("FieldColor", IntToStr(Optionsfrm->ColorDialogField->Color).c_str()));
+
+ schemeconf.Sections["Appearance"] = emap;
+ schemeconf.Save();
+ }else{
+ Application->MessageBox("Scheme name missing or invalid.","Oops", MB_OK);
+ }
+ SetCurrentDir(ExtractFilePath(Application->ExeName));
+ FindSchemeNames();
+}
+//---------------------------------------------------------------------------
+
+
+void TOptionsfrm::FindSchemeNames()
+{
+ DIR *dir;
+ struct dirent *ent;
+ string conffile;
+ AnsiString strName;
+ AnsiString strPath = COLOR_DIR;
+
+ TStringList *schemeNames = new TStringList;
+ Optionsfrm->cmbSchemeSelect->Clear();
+
+ if (access(strPath.c_str(), 0)) { // directory does not exist
+ _mkdir(strPath.c_str());
+ }
+
+ if (dir = opendir(strPath.c_str())) {
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, "."))&& (strcmp(ent->d_name, "..")) && !strcmp(ExtractFileExt(ent->d_name).c_str(), COLOR_EXT.c_str())) {
+ strName = ent->d_name;
+ schemeNames->Add(strName.SubString(1, strName.Length() - 4).c_str());
+ }
+ }
+ closedir(dir);
+ Optionsfrm->cmbSchemeSelect->Items = schemeNames;
+ }
+ delete schemeNames;
+}
+
+void __fastcall TOptionsfrm::ExportClick(TObject *Sender)
+{
+ AnsiString name = Optionsfrm->cmbSchemeSelect->Text;
+ AnsiString newFileName;
+ AnsiString exName;
+ AnsiString subdir = ExtractFilePath(Application->ExeName) + COLOR_DIR;
+ if(name != ""){
+ SaveSchDlg->FileName = name;
+ if(SaveSchDlg->Execute()){
+ exName = subdir + name + COLOR_EXT;
+ newFileName = SaveSchDlg->FileName.c_str();
+ if(!CopyFileA(exName.c_str(), newFileName.c_str(),1))
+ Application->MessageBox("Export Failed." , "Oops", MB_OK);
+ }
+ }else{
+ Application->MessageBox("No Scheme Selected to Export. Please Select a Scheme and Retry" , "Oops", MB_OK);
+ }
+ SetCurrentDir(ExtractFilePath(Application->ExeName));
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TOptionsfrm::ImportClick(TObject *Sender)
+{
+ AnsiString newFileName;
+ AnsiString exName, newPath;
+ AnsiString subdir = ExtractFilePath(Application->ExeName) + COLOR_DIR;
+ if(OpenSchDlg->Execute()){
+ exName = OpenSchDlg->FileName.c_str();
+ newFileName = ExtractFileName(exName);
+ newPath = subdir + newFileName;
+ if(!CopyFileA(exName.c_str(), newPath.c_str(),1))
+ MessageBox(this, "Import Failed." , "Oops", MB_OK);
+ }
+ SetCurrentDir(ExtractFilePath(Application->ExeName));
+ FindSchemeNames();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TOptionsfrm::DeleteClick(TObject *Sender)
+{
+ AnsiString name = Optionsfrm->cmbSchemeSelect->Text;
+ AnsiString fullName = ExtractFilePath(Application->ExeName) + COLOR_DIR + name + COLOR_EXT;
+ if(name != ""){
+ DeleteFile(fullName);
+ }else{
+ Application->MessageBox("No Scheme Selected to Delete. Please Select a Scheme and Retry" , "Oops", MB_OK);
+ }
+ SetCurrentDir(ExtractFilePath(Application->ExeName));
+ FindSchemeNames();
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder5/BibleCS/optionfrm.dfm b/apps/windoze/CBuilder5/BibleCS/optionfrm.dfm
new file mode 100644
index 0000000..cd74a2d
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/optionfrm.dfm
@@ -0,0 +1,551 @@
+object Optionsfrm: TOptionsfrm
+ Left = 258
+ Top = 202
+ BorderStyle = bsDialog
+ Caption = 'Preferences'
+ ClientHeight = 251
+ ClientWidth = 487
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ Icon.Data = {
+ 0000010001002020100000000000E80200001600000028000000200000004000
+ 0000010004000000000080020000000000000000000000000000000000000000
+ 000000008000008000000080800080000000800080008080000080808000C0C0
+ C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF006666
+ 6666666666666666666666666666688888888888888888088888888888866888
+ 8888888888888880888888888886688888888888888888808888888888866888
+ 8008888088008880800080008800688888088880880808808080808088006888
+ 8808888088080880800880888806688888008880080808880080808088066888
+ 8808080080800800080088008000688888080888888888888888888888066888
+ 8000088888888888888888888806688888888888888888880888888888866008
+ 8808880888877777777878888F86088088088808887888877788888888F60880
+ 800888078788888878878888888F6800808080878788888878878888888F6088
+ 808087878788888877788888888F0888088087887788888878888888888F0808
+ 0888788878788887788888F888F600000087778777877777777888FFFF866888
+ 8880888888888888888888888886688888880888888888888888888888866800
+ 8880808800088888888888888886688088808808080888888888888888866880
+ 8880080800888888888888888886688088800008080888888888888888866880
+ 8880880880088888888888888886088080808888888888888888888888860000
+ 0080888888888888888888888886688888808888888888888888888888866888
+ 8888088888888888888888888886666666660666666666666666666666660000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000}
+ OldCreateOrder = True
+ Position = poScreenCenter
+ OnCreate = FormCreate
+ OnShow = FormShow
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Panel2: TPanel
+ Left = 0
+ Top = 227
+ Width = 487
+ Height = 24
+ Align = alBottom
+ BevelOuter = bvNone
+ TabOrder = 0
+ object Button1: TButton
+ Left = 319
+ Top = 2
+ Width = 61
+ Height = 21
+ Caption = 'OK'
+ Default = True
+ ModalResult = 1
+ TabOrder = 0
+ end
+ object Button2: TButton
+ Left = 421
+ Top = 2
+ Width = 61
+ Height = 21
+ Anchors = [akTop, akRight]
+ Cancel = True
+ Caption = 'Cancel'
+ ModalResult = 2
+ TabOrder = 1
+ end
+ end
+ object PageControl1: TPageControl
+ Left = 0
+ Top = 0
+ Width = 487
+ Height = 227
+ ActivePage = TabSheet2
+ Align = alClient
+ TabOrder = 1
+ object TabSheet1: TTabSheet
+ Caption = 'General'
+ object Panel1: TPanel
+ Left = 0
+ Top = 0
+ Width = 479
+ Height = 163
+ Align = alTop
+ BevelOuter = bvNone
+ TabOrder = 0
+ object GroupBox1: TGroupBox
+ Left = 0
+ Top = 0
+ Width = 456
+ Height = 163
+ Align = alLeft
+ Caption = 'Personalize'
+ TabOrder = 0
+ object Label4: TLabel
+ Left = 7
+ Top = 75
+ Width = 48
+ Height = 13
+ Caption = 'Language'
+ end
+ object AutoBMPersonal: TCheckBox
+ Left = 7
+ Top = 17
+ Width = 150
+ Height = 14
+ Caption = 'Save Personal Bookmarks'
+ TabOrder = 0
+ end
+ object AutoBMOther: TCheckBox
+ Left = 7
+ Top = 36
+ Width = 137
+ Height = 14
+ Caption = 'Save Other Bookmarks'
+ TabOrder = 1
+ end
+ object HintPopups: TCheckBox
+ Left = 7
+ Top = 55
+ Width = 130
+ Height = 14
+ Caption = 'Show Hint Pop-ups'
+ TabOrder = 2
+ end
+ object localeCB: TComboBox
+ Left = 66
+ Top = 72
+ Width = 140
+ Height = 21
+ Style = csDropDownList
+ ItemHeight = 13
+ TabOrder = 3
+ end
+ object AutoLayout: TCheckBox
+ Left = 225
+ Top = 16
+ Width = 128
+ Height = 17
+ Caption = 'Save Screen Layout'
+ TabOrder = 4
+ end
+ end
+ end
+ end
+ object TabSheet2: TTabSheet
+ Caption = 'Special Modules'
+ ImageIndex = 1
+ object GroupBox3: TGroupBox
+ Left = 0
+ Top = 0
+ Width = 479
+ Height = 105
+ Align = alTop
+ Caption = 'Original Language Support - Default Modules'
+ TabOrder = 0
+ object Label5: TLabel
+ Left = 7
+ Top = 36
+ Width = 29
+ Height = 13
+ Caption = 'Greek'
+ end
+ object Label6: TLabel
+ Left = 7
+ Top = 59
+ Width = 37
+ Height = 13
+ Caption = 'Hebrew'
+ end
+ object Label7: TLabel
+ Left = 59
+ Top = 20
+ Width = 49
+ Height = 13
+ Caption = 'Definitions'
+ end
+ object Label8: TLabel
+ Left = 231
+ Top = 20
+ Width = 35
+ Height = 13
+ Caption = 'Parsing'
+ end
+ object Label10: TLabel
+ Left = 7
+ Top = 81
+ Width = 114
+ Height = 13
+ Caption = 'Strong'#39's Numbered Text'
+ end
+ object hebrewDefCB: TComboBox
+ Left = 59
+ Top = 55
+ Width = 146
+ Height = 21
+ Style = csDropDownList
+ ItemHeight = 13
+ TabOrder = 0
+ end
+ object greekDefCB: TComboBox
+ Left = 59
+ Top = 33
+ Width = 146
+ Height = 21
+ Style = csDropDownList
+ ItemHeight = 13
+ TabOrder = 1
+ end
+ object greekParseCB: TComboBox
+ Left = 231
+ Top = 33
+ Width = 146
+ Height = 21
+ Style = csDropDownList
+ ItemHeight = 13
+ TabOrder = 2
+ end
+ object hebrewParseCB: TComboBox
+ Left = 231
+ Top = 55
+ Width = 146
+ Height = 21
+ Style = csDropDownList
+ ItemHeight = 13
+ TabOrder = 3
+ end
+ object strongsNumsCB: TComboBox
+ Left = 142
+ Top = 78
+ Width = 146
+ Height = 21
+ Style = csDropDownList
+ ItemHeight = 13
+ TabOrder = 4
+ end
+ end
+ object GroupBox4: TGroupBox
+ Left = 0
+ Top = 105
+ Width = 257
+ Height = 94
+ Align = alLeft
+ Caption = 'Daily Devotionals'
+ TabOrder = 1
+ object Label9: TLabel
+ Left = 10
+ Top = 20
+ Width = 95
+ Height = 13
+ AutoSize = False
+ Caption = 'Default Devotional'
+ end
+ object dailyDefaultCB: TComboBox
+ Left = 103
+ Top = 18
+ Width = 146
+ Height = 21
+ Style = csDropDownList
+ ItemHeight = 13
+ TabOrder = 0
+ end
+ object devSplashCB: TCheckBox
+ Left = 9
+ Top = 48
+ Width = 230
+ Height = 14
+ Anchors = [akTop, akRight]
+ Caption = 'Show Devotional Splash Screen on Startup'
+ TabOrder = 1
+ end
+ object devsAsDictsCB: TCheckBox
+ Left = 9
+ Top = 67
+ Width = 186
+ Height = 13
+ Caption = 'Show Devotionals as Dictionaries'
+ TabOrder = 2
+ end
+ end
+ object GroupBox2: TGroupBox
+ Left = 261
+ Top = 105
+ Width = 218
+ Height = 94
+ Align = alRight
+ Caption = 'Glossaries'
+ TabOrder = 2
+ object glosAsDictsCB: TCheckBox
+ Left = 9
+ Top = 19
+ Width = 186
+ Height = 13
+ Caption = 'Show Glossaries as Dictionaries'
+ TabOrder = 0
+ end
+ end
+ end
+ object TabSheet3: TTabSheet
+ Caption = 'Display'
+ ImageIndex = 2
+ object Label1: TLabel
+ Left = 0
+ Top = 184
+ Width = 479
+ Height = 15
+ Align = alBottom
+ Alignment = taCenter
+ AutoSize = False
+ Caption = 'Most attributes are seen after program restart'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -9
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold, fsItalic]
+ ParentFont = False
+ Transparent = True
+ WordWrap = True
+ end
+ object Panel3: TPanel
+ Left = 0
+ Top = 0
+ Width = 479
+ Height = 184
+ Align = alClient
+ Anchors = [akLeft, akTop, akRight]
+ BevelOuter = bvNone
+ Caption = 'Panel3'
+ TabOrder = 0
+ object GroupBox5: TGroupBox
+ Left = 0
+ Top = 0
+ Width = 479
+ Height = 184
+ Align = alClient
+ Caption = 'Display Colors'
+ TabOrder = 0
+ object Label2: TLabel
+ Left = 7
+ Top = 13
+ Width = 38
+ Height = 13
+ Caption = 'Preview'
+ end
+ object Label3: TLabel
+ Left = 228
+ Top = 13
+ Width = 62
+ Height = 13
+ Caption = 'Module Type'
+ end
+ object Label11: TLabel
+ Left = 228
+ Top = 92
+ Width = 45
+ Height = 13
+ Caption = 'Text Font'
+ end
+ object Label13: TLabel
+ Left = 228
+ Top = 115
+ Width = 94
+ Height = 13
+ Caption = 'Verse Number Color'
+ end
+ object CurrentVSColor: TShape
+ Left = 364
+ Top = 137
+ Width = 20
+ Height = 16
+ OnMouseDown = CurrentVSColorMouseDown
+ end
+ object Label14: TLabel
+ Left = 343
+ Top = 13
+ Width = 39
+ Height = 13
+ Caption = 'Scheme'
+ end
+ object Label15: TLabel
+ Left = 228
+ Top = 165
+ Width = 86
+ Height = 13
+ Caption = 'Combo/Edit Fields'
+ end
+ object btnSave: TSpeedButton
+ Left = 452
+ Top = 26
+ Width = 22
+ Height = 22
+ Glyph.Data = {
+ 4E010000424D4E01000000000000760000002800000012000000120000000100
+ 040000000000D800000000000000000000001000000000000000000000000000
+ 8000008000000080800080000000800080008080000080808000C0C0C0000000
+ FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00FFFFFFFFFFFF
+ FFFFFF000000FFFFFFFFFFFFFFFFFF000000FFD0000000000000FF000000FF03
+ 300000088030FF000000FF03300000088030FF000000FF03300000088030FF00
+ 0000FF03300000000030FF000000FF03333333333330FF000000FF0330000000
+ 0330FF000000FF03088888888030FF000000FF03088888888030FF000000FF03
+ 088888888030FF000000FF03088888888030FF000000FF03088888888000FF00
+ 0000FF03088888888080FF000000FF00000000000000FF000000FFFFFFFFFFFF
+ FFFFFF000000FFFFFFFFFFFFFFFFFF000000}
+ OnClick = btnSaveScheme
+ end
+ object btnCurrVerse: TButton
+ Left = 399
+ Top = 134
+ Width = 75
+ Height = 23
+ Anchors = [akTop, akRight]
+ Caption = 'Select Color...'
+ TabOrder = 4
+ OnClick = btnCurrVerseClick
+ end
+ object RTFPreview: TRichEdit
+ Left = 7
+ Top = 26
+ Width = 208
+ Height = 150
+ ScrollBars = ssVertical
+ TabOrder = 0
+ WantReturns = False
+ end
+ object cmbTextSelect: TComboBox
+ Left = 228
+ Top = 26
+ Width = 104
+ Height = 21
+ ItemHeight = 13
+ TabOrder = 1
+ OnChange = cmbTextSelectChange
+ Items.Strings = (
+ 'All Modules'
+ 'Bible Modules'
+ 'Commentary Modules'
+ 'Lexicon/Dictionary Modules'
+ ' ')
+ end
+ object btnFont: TButton
+ Left = 399
+ Top = 86
+ Width = 75
+ Height = 22
+ Anchors = [akTop, akRight]
+ Caption = 'Select Font...'
+ TabOrder = 2
+ OnClick = btnFontClick
+ end
+ object AutoVSColor: TCheckBox
+ Left = 228
+ Top = 140
+ Width = 117
+ Height = 14
+ Caption = 'Current Verse Color'
+ TabOrder = 3
+ end
+ object btnNumClr: TButton
+ Left = 399
+ Top = 110
+ Width = 75
+ Height = 23
+ Anchors = [akTop, akRight]
+ Caption = 'Select Color...'
+ TabOrder = 5
+ OnClick = btnNumClrClick
+ end
+ object cmbSchemeSelect: TComboBox
+ Left = 344
+ Top = 26
+ Width = 105
+ Height = 21
+ ItemHeight = 13
+ TabOrder = 6
+ OnChange = cmbSchemeSelectChange
+ Items.Strings = (
+ 'Default'
+ 'Parchment'
+ 'Midnight')
+ end
+ object btnFieldClr: TButton
+ Left = 399
+ Top = 158
+ Width = 75
+ Height = 23
+ Anchors = [akTop, akRight]
+ Caption = 'Select Color...'
+ TabOrder = 7
+ OnClick = btnFieldClrClick
+ end
+ end
+ end
+ end
+ end
+ object ColorDialog1: TColorDialog
+ Ctl3D = True
+ Color = 3328000
+ Left = 407
+ Top = 65528
+ end
+ object ColorDialogField: TColorDialog
+ Ctl3D = True
+ Left = 435
+ Top = 65528
+ end
+ object ColorDialogVerseNum: TColorDialog
+ Ctl3D = True
+ Left = 460
+ Top = 65528
+ end
+ object SavePopup: TPopupMenu
+ Left = 380
+ Top = 65528
+ object SaveScheme: TMenuItem
+ Caption = '&Save Scheme'
+ OnClick = SaveSchemeClick
+ end
+ object DeleteScheme1: TMenuItem
+ Caption = '&Delete Scheme'
+ OnClick = DeleteClick
+ end
+ object Import: TMenuItem
+ Caption = 'Import Scheme...'
+ OnClick = ImportClick
+ end
+ object Export: TMenuItem
+ Caption = 'E&xport Scheme...'
+ OnClick = ExportClick
+ end
+ end
+ object OpenSchDlg: TOpenDialog
+ DefaultExt = '*.sch'
+ Filter = 'Sword Scheme File (*.sch)|*.sch'
+ Options = [ofHideReadOnly, ofPathMustExist, ofFileMustExist, ofEnableSizing]
+ Title = 'Select Scheme File'
+ Left = 332
+ Top = 65528
+ end
+ object SaveSchDlg: TSaveDialog
+ DefaultExt = '.sch'
+ Filter = 'Sword Scheme File (*.sch)|*.sch'
+ Left = 356
+ Top = 65528
+ end
+end
diff --git a/apps/windoze/CBuilder5/BibleCS/optionfrm.h b/apps/windoze/CBuilder5/BibleCS/optionfrm.h
new file mode 100644
index 0000000..0a16622
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/optionfrm.h
@@ -0,0 +1,118 @@
+//---------------------------------------------------------------------------
+#ifndef optionfrmH
+#define optionfrmH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ExtCtrls.hpp>
+#include <vcl\Dialogs.hpp>
+#include <ComCtrls.hpp>
+
+#include "FontSel.h"
+#include <Buttons.hpp>
+#include <Menus.hpp>
+
+const AnsiString COLOR_DIR = "colors\\";
+const AnsiString COLOR_EXT = ".sch";
+
+//---------------------------------------------------------------------------
+class TOptionsfrm : public TForm
+{
+__published: // IDE-managed Components
+ TColorDialog *ColorDialog1;
+ TPanel *Panel2;
+ TButton *Button1;
+ TButton *Button2;
+ TPageControl *PageControl1;
+ TTabSheet *TabSheet1;
+ TTabSheet *TabSheet2;
+ TPanel *Panel1;
+ TGroupBox *GroupBox1;
+ TCheckBox *AutoBMPersonal;
+ TCheckBox *AutoBMOther;
+ TGroupBox *GroupBox3;
+ TComboBox *hebrewDefCB;
+ TComboBox *greekDefCB;
+ TComboBox *greekParseCB;
+ TComboBox *hebrewParseCB;
+ TLabel *Label5;
+ TLabel *Label6;
+ TLabel *Label7;
+ TLabel *Label8;
+ TGroupBox *GroupBox4;
+ TLabel *Label9;
+ TComboBox *dailyDefaultCB;
+ TCheckBox *devSplashCB;
+ TCheckBox *devsAsDictsCB;
+ TLabel *Label10;
+ TComboBox *strongsNumsCB;
+ TTabSheet *TabSheet3;
+ TLabel *Label1;
+ TCheckBox *HintPopups;
+ TLabel *Label4;
+ TComboBox *localeCB;
+ TPanel *Panel3;
+ TGroupBox *GroupBox5;
+ TLabel *Label2;
+ TLabel *Label3;
+ TRichEdit *RTFPreview;
+ TComboBox *cmbTextSelect;
+ TButton *btnFont;
+ TCheckBox *AutoVSColor;
+ TButton *btnCurrVerse;
+ TButton *btnNumClr;
+ TLabel *Label11;
+ TLabel *Label13;
+ TShape *CurrentVSColor;
+ TLabel *Label14;
+ TComboBox *cmbSchemeSelect;
+ TButton *btnFieldClr;
+ TLabel *Label15;
+ TColorDialog *ColorDialogField;
+ TColorDialog *ColorDialogVerseNum;
+ TPopupMenu *SavePopup;
+ TMenuItem *SaveScheme;
+ TMenuItem *Export;
+ TMenuItem *Import;
+ TSpeedButton *btnSave;
+ TOpenDialog *OpenSchDlg;
+ TSaveDialog *SaveSchDlg;
+ TMenuItem *DeleteScheme1;
+ TCheckBox *AutoLayout;
+ TGroupBox *GroupBox2;
+ TCheckBox *glosAsDictsCB;
+ void __fastcall btnCurrVerseClick(TObject *Sender);
+ void __fastcall FormCreate(TObject *Sender);
+ void __fastcall FormShow(TObject *Sender);
+ void __fastcall btnFontClick(TObject *Sender);
+ void __fastcall CurrentVSColorMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void __fastcall btnNumClrClick(TObject *Sender);
+ void __fastcall btnFieldClrClick(TObject *Sender);
+ void __fastcall cmbTextSelectChange(TObject *Sender);
+ void __fastcall cmbSchemeSelectChange(TObject *Sender);
+ void __fastcall btnSaveScheme(TObject *Sender);
+ void __fastcall SaveSchemeClick(TObject *Sender);
+ void __fastcall ExportClick(TObject *Sender);
+ void __fastcall ImportClick(TObject *Sender);
+ void __fastcall DeleteClick(TObject *Sender);
+
+private: // User declarations
+ static const char *defaultLocaleName;
+ static const char *defaultLocaleDescription;
+ CopyFontDlg(TFontSelFrm* lhs, const TFontSelFrm* rhs);
+ void FindSchemeNames();
+public:
+ TFontSelFrm* FontDialogText;
+ TFontSelFrm* FontDialogComment;
+ TFontSelFrm* FontDialogLD;
+ void UpdatePreview();
+public: // User declarations
+ __fastcall TOptionsfrm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TOptionsfrm *Optionsfrm;
+//---------------------------------------------------------------------------
+#endif
+
diff --git a/apps/windoze/CBuilder5/BibleCS/options.conf b/apps/windoze/CBuilder5/BibleCS/options.conf
new file mode 100644
index 0000000..21b3dd6
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/options.conf
@@ -0,0 +1,48 @@
+
+[Appearance]
+AutoVSColor=1
+CommentBackColor=16771797
+CommentFontColor=8388608
+CommentFontName=MS Sans Serif
+CommentFontSize=16
+CurrentVSColor=8388863
+CurrentVSColorBlue=255
+CurrentVSColorGreen=128
+CurrentVSColorRed=128
+FieldColor=16771797
+FontSize=0
+LDBackColor=16771797
+LDFontColor=8388608
+LDFontName=MS Sans Serif
+LDFontSize=16
+TextBackColor=16771797
+TextFontColor=8388608
+TextFontName=MS Sans Serif
+TextFontSize=16
+VSNumberColor=255
+locale=en_us
+
+[Bookmarks]
+AutoSaveOther=0
+AutoSavePersonal=0
+
+[General]
+DevsAsDicts=false
+Splash=
+TipOfTheDay=Devotional
+
+[Hints]
+On=1
+
+[Layout]
+AutoSaveLayout=0
+
+[ModDefaults]
+DailyDevotion=losung_en_96
+GreekDef=StrongsGreek
+GreekParse=Thayer
+HebrewDef=BDB
+StrongsNumbers=KJV
+
+[System]
+
diff --git a/apps/windoze/CBuilder5/BibleCS/rxlib/Maxmin.obj b/apps/windoze/CBuilder5/BibleCS/rxlib/Maxmin.obj
new file mode 100644
index 0000000..262821c
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/rxlib/Maxmin.obj
Binary files differ
diff --git a/apps/windoze/CBuilder5/BibleCS/rxlib/RXCCONST.R32 b/apps/windoze/CBuilder5/BibleCS/rxlib/RXCCONST.R32
new file mode 100644
index 0000000..f1dd19c
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/rxlib/RXCCONST.R32
Binary files differ
diff --git a/apps/windoze/CBuilder5/BibleCS/rxlib/RXCOMBOS.R32 b/apps/windoze/CBuilder5/BibleCS/rxlib/RXCOMBOS.R32
new file mode 100644
index 0000000..3e2c310
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/rxlib/RXCOMBOS.R32
Binary files differ
diff --git a/apps/windoze/CBuilder5/BibleCS/rxlib/RXCONST.R32 b/apps/windoze/CBuilder5/BibleCS/rxlib/RXCONST.R32
new file mode 100644
index 0000000..0d0bce7
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/rxlib/RXCONST.R32
Binary files differ
diff --git a/apps/windoze/CBuilder5/BibleCS/rxlib/RxRichEd.hpp b/apps/windoze/CBuilder5/BibleCS/rxlib/RxRichEd.hpp
new file mode 100644
index 0000000..3cc62c3
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/rxlib/RxRichEd.hpp
@@ -0,0 +1,624 @@
+// Borland C++ Builder
+// Copyright (c) 1995, 1999 by Borland International
+// All rights reserved
+
+// (DO NOT EDIT: machine generated header) 'RxRichEd.pas' rev: 5.00
+
+#ifndef RxRichEdHPP
+#define RxRichEdHPP
+
+#pragma delphiheader begin
+#pragma option push -w-
+#pragma option push -Vx
+#include <ComCtrls.hpp> // Pascal unit
+#include <Menus.hpp> // Pascal unit
+#include <RichEdit.hpp> // Pascal unit
+#include <Dialogs.hpp> // Pascal unit
+#include <StdCtrls.hpp> // Pascal unit
+#include <Graphics.hpp> // Pascal unit
+#include <Forms.hpp> // Pascal unit
+#include <Controls.hpp> // Pascal unit
+#include <Classes.hpp> // Pascal unit
+#include <SysUtils.hpp> // Pascal unit
+#include <Messages.hpp> // Pascal unit
+#include <Commctrl.hpp> // Pascal unit
+#include <ComObj.hpp> // Pascal unit
+#include <ActiveX.hpp> // Pascal unit
+#include <Windows.hpp> // Pascal unit
+#include <SysInit.hpp> // Pascal unit
+#include <System.hpp> // Pascal unit
+
+//-- user supplied -----------------------------------------------------------
+
+namespace Rxriched
+{
+//-- type declarations -------------------------------------------------------
+typedef Shortint TRichEditVersion;
+
+typedef ::CHARFORMAT2A TCharFormat2;
+
+#pragma option push -b-
+enum TRxAttributeType { atDefaultText, atSelected, atWord };
+#pragma option pop
+
+#pragma option push -b-
+enum TRxConsistentAttribute { caBold, caColor, caFace, caItalic, caSize, caStrikeOut, caUnderline, caProtected,
+ caOffset, caHidden, caLink, caBackColor, caDisabled, caWeight, caSubscript, caRevAuthor };
+#pragma option pop
+
+typedef Set<TRxConsistentAttribute, caBold, caRevAuthor> TRxConsistentAttributes;
+
+#pragma option push -b-
+enum TSubscriptStyle { ssNone, ssSubscript, ssSuperscript };
+#pragma option pop
+
+#pragma option push -b-
+enum TUnderlineType { utNone, utSolid, utWord, utDouble, utDotted, utWave };
+#pragma option pop
+
+class DELPHICLASS TRxTextAttributes;
+class DELPHICLASS TRxCustomRichEdit;
+class DELPHICLASS TRxParaAttributes;
+#pragma option push -b-
+enum TParaAlignment { paLeftJustify, paRightJustify, paCenter, paJustify };
+#pragma option pop
+
+typedef Shortint THeadingStyle;
+
+#pragma option push -b-
+enum TLineSpacingRule { lsSingle, lsOneAndHalf, lsDouble, lsSpecifiedOrMore, lsSpecified, lsMultiple
+ };
+#pragma option pop
+
+#pragma option push -b-
+enum TRxNumbering { nsNone, nsBullet, nsArabicNumbers, nsLoCaseLetter, nsUpCaseLetter, nsLoCaseRoman,
+ nsUpCaseRoman };
+#pragma option pop
+
+#pragma option push -b-
+enum TRxNumberingStyle { nsParenthesis, nsPeriod, nsEnclosed, nsSimple };
+#pragma option pop
+
+#pragma option push -b-
+enum TParaTableStyle { tsNone, tsTableRow, tsTableCellEnd, tsTableCell };
+#pragma option pop
+
+class PASCALIMPLEMENTATION TRxParaAttributes : public Classes::TPersistent
+{
+ typedef Classes::TPersistent inherited;
+
+private:
+ TRxCustomRichEdit* RichEdit;
+ void __fastcall GetAttributes(PARAFORMAT2 &Paragraph);
+ TParaAlignment __fastcall GetAlignment(void);
+ int __fastcall GetFirstIndent(void);
+ THeadingStyle __fastcall GetHeadingStyle(void);
+ int __fastcall GetLeftIndent(void);
+ int __fastcall GetRightIndent(void);
+ int __fastcall GetSpaceAfter(void);
+ int __fastcall GetSpaceBefore(void);
+ int __fastcall GetLineSpacing(void);
+ TLineSpacingRule __fastcall GetLineSpacingRule(void);
+ TRxNumbering __fastcall GetNumbering(void);
+ TRxNumberingStyle __fastcall GetNumberingStyle(void);
+ Word __fastcall GetNumberingTab(void);
+ int __fastcall GetTab(Byte Index);
+ int __fastcall GetTabCount(void);
+ TParaTableStyle __fastcall GetTableStyle(void);
+ void __fastcall SetAlignment(TParaAlignment Value);
+ void __fastcall SetAttributes(PARAFORMAT2 &Paragraph);
+ void __fastcall SetFirstIndent(int Value);
+ void __fastcall SetHeadingStyle(THeadingStyle Value);
+ void __fastcall SetLeftIndent(int Value);
+ void __fastcall SetRightIndent(int Value);
+ void __fastcall SetSpaceAfter(int Value);
+ void __fastcall SetSpaceBefore(int Value);
+ void __fastcall SetLineSpacing(int Value);
+ void __fastcall SetLineSpacingRule(TLineSpacingRule Value);
+ void __fastcall SetNumbering(TRxNumbering Value);
+ void __fastcall SetNumberingStyle(TRxNumberingStyle Value);
+ void __fastcall SetNumberingTab(Word Value);
+ void __fastcall SetTab(Byte Index, int Value);
+ void __fastcall SetTabCount(int Value);
+ void __fastcall SetTableStyle(TParaTableStyle Value);
+
+protected:
+ void __fastcall InitPara(PARAFORMAT2 &Paragraph);
+ virtual void __fastcall AssignTo(Classes::TPersistent* Dest);
+
+public:
+ __fastcall TRxParaAttributes(TRxCustomRichEdit* AOwner);
+ virtual void __fastcall Assign(Classes::TPersistent* Source);
+ __property TParaAlignment Alignment = {read=GetAlignment, write=SetAlignment, nodefault};
+ __property int FirstIndent = {read=GetFirstIndent, write=SetFirstIndent, nodefault};
+ __property THeadingStyle HeadingStyle = {read=GetHeadingStyle, write=SetHeadingStyle, nodefault};
+ __property int LeftIndent = {read=GetLeftIndent, write=SetLeftIndent, nodefault};
+ __property int LineSpacing = {read=GetLineSpacing, write=SetLineSpacing, nodefault};
+ __property TLineSpacingRule LineSpacingRule = {read=GetLineSpacingRule, write=SetLineSpacingRule, nodefault
+ };
+ __property TRxNumbering Numbering = {read=GetNumbering, write=SetNumbering, nodefault};
+ __property TRxNumberingStyle NumberingStyle = {read=GetNumberingStyle, write=SetNumberingStyle, nodefault
+ };
+ __property Word NumberingTab = {read=GetNumberingTab, write=SetNumberingTab, nodefault};
+ __property int RightIndent = {read=GetRightIndent, write=SetRightIndent, nodefault};
+ __property int SpaceAfter = {read=GetSpaceAfter, write=SetSpaceAfter, nodefault};
+ __property int SpaceBefore = {read=GetSpaceBefore, write=SetSpaceBefore, nodefault};
+ __property int Tab[Byte Index] = {read=GetTab, write=SetTab};
+ __property int TabCount = {read=GetTabCount, write=SetTabCount, nodefault};
+ __property TParaTableStyle TableStyle = {read=GetTableStyle, write=SetTableStyle, nodefault};
+public:
+
+ #pragma option push -w-inl
+ /* TPersistent.Destroy */ inline __fastcall virtual ~TRxParaAttributes(void) { }
+ #pragma option pop
+
+};
+
+
+#pragma option push -b-
+enum TRichLangOption { rlAutoKeyboard, rlAutoFont, rlImeCancelComplete, rlImeAlwaysSendNotify };
+#pragma option pop
+
+typedef Set<TRichLangOption, rlAutoKeyboard, rlImeAlwaysSendNotify> TRichLangOptions;
+
+typedef void __fastcall (__closure *TRichEditProtectChangeEx)(System::TObject* Sender, const Messages::TMessage
+ &Message, int StartPos, int EndPos, bool &AllowChange);
+
+typedef void __fastcall (__closure *TRichEditURLClickEvent)(System::TObject* Sender, const AnsiString
+ URLText, Controls::TMouseButton Button);
+
+typedef void __fastcall (__closure *TRichEditFindErrorEvent)(System::TObject* Sender, const AnsiString
+ FindText);
+
+typedef void __fastcall (__closure *TRichEditFindCloseEvent)(System::TObject* Sender, Dialogs::TFindDialog*
+ Dialog);
+
+#pragma option push -b-
+enum TUndoName { unUnknown, unTyping, unDelete, unDragDrop, unCut, unPaste };
+#pragma option pop
+
+#pragma option push -b-
+enum TRichStreamFormat { sfDefault, sfRichText, sfPlainText };
+#pragma option pop
+
+#pragma option push -b-
+enum TRichStreamMode { smSelection, smPlainRtf, smNoObjects, smUnicode };
+#pragma option pop
+
+typedef Set<TRichStreamMode, smSelection, smUnicode> TRichStreamModes;
+
+#pragma option push -b-
+enum TRichSelection { stText, stObject, stMultiChar, stMultiObject };
+#pragma option pop
+
+typedef Set<TRichSelection, stText, stMultiObject> TRichSelectionType;
+
+#pragma option push -b-
+enum TRichSearchType { stWholeWord, stMatchCase, stBackward, stSetSelection };
+#pragma option pop
+
+typedef Set<TRichSearchType, stWholeWord, stSetSelection> TRichSearchTypes;
+
+class PASCALIMPLEMENTATION TRxCustomRichEdit : public Stdctrls::TCustomMemo
+{
+ typedef Stdctrls::TCustomMemo inherited;
+
+private:
+ bool FHideScrollBars;
+ bool FSelectionBar;
+ bool FAutoURLDetect;
+ bool FWordSelection;
+ bool FPlainText;
+ TRxTextAttributes* FSelAttributes;
+ TRxTextAttributes* FDefAttributes;
+ TRxTextAttributes* FWordAttributes;
+ TRxParaAttributes* FParagraph;
+ TParaAlignment FOldParaAlignment;
+ int FScreenLogPixels;
+ int FUndoLimit;
+ Classes::TStrings* FRichEditStrings;
+ Classes::TMemoryStream* FMemStream;
+ bool FHideSelection;
+ TRichLangOptions FLangOptions;
+ bool FModified;
+ bool FLinesUpdating;
+ Windows::TRect FPageRect;
+ _charrange FClickRange;
+ Controls::TMouseButton FClickBtn;
+ Dialogs::TFindDialog* FFindDialog;
+ Dialogs::TReplaceDialog* FReplaceDialog;
+ Dialogs::TFindDialog* FLastFind;
+ bool FAllowObjects;
+ System::TObject* FCallback;
+ _di_IUnknown FRichEditOle;
+ Menus::TPopupMenu* FPopupVerbMenu;
+ AnsiString FTitle;
+ bool FAutoVerbMenu;
+ bool FAllowInPlace;
+ TMetaClass*FDefaultConverter;
+ Classes::TNotifyEvent FOnSelChange;
+ Comctrls::TRichEditResizeEvent FOnResizeRequest;
+ Comctrls::TRichEditProtectChange FOnProtectChange;
+ TRichEditProtectChangeEx FOnProtectChangeEx;
+ Comctrls::TRichEditSaveClipboard FOnSaveClipboard;
+ TRichEditURLClickEvent FOnURLClick;
+ TRichEditFindErrorEvent FOnTextNotFound;
+ TRichEditFindCloseEvent FOnCloseFindDialog;
+ bool __fastcall GetAutoURLDetect(void);
+ bool __fastcall GetWordSelection(void);
+ TRichLangOptions __fastcall GetLangOptions(void);
+ bool __fastcall GetCanRedo(void);
+ bool __fastcall GetCanPaste(void);
+ TUndoName __fastcall GetRedoName(void);
+ TUndoName __fastcall GetUndoName(void);
+ TRichStreamFormat __fastcall GetStreamFormat(void);
+ TRichStreamModes __fastcall GetStreamMode(void);
+ TRichSelectionType __fastcall GetSelectionType(void);
+ void __fastcall PopupVerbClick(System::TObject* Sender);
+ void __fastcall ObjectPropsClick(System::TObject* Sender);
+ void __fastcall CloseObjects(void);
+ void __fastcall UpdateHostNames(void);
+ void __fastcall SetAllowObjects(bool Value);
+ void __fastcall SetStreamFormat(TRichStreamFormat Value);
+ void __fastcall SetStreamMode(TRichStreamModes Value);
+ void __fastcall SetAutoURLDetect(bool Value);
+ void __fastcall SetWordSelection(bool Value);
+ void __fastcall SetHideScrollBars(bool Value);
+ HIDESBASE void __fastcall SetHideSelection(bool Value);
+ void __fastcall SetTitle(const AnsiString Value);
+ void __fastcall SetLangOptions(TRichLangOptions Value);
+ void __fastcall SetRichEditStrings(Classes::TStrings* Value);
+ void __fastcall SetDefAttributes(TRxTextAttributes* Value);
+ void __fastcall SetSelAttributes(TRxTextAttributes* Value);
+ void __fastcall SetWordAttributes(TRxTextAttributes* Value);
+ void __fastcall SetSelectionBar(bool Value);
+ void __fastcall SetUndoLimit(int Value);
+ void __fastcall UpdateTextModes(bool Plain);
+ void __fastcall AdjustFindDialogPosition(Dialogs::TFindDialog* Dialog);
+ void __fastcall SetupFindDialog(Dialogs::TFindDialog* Dialog, const AnsiString SearchStr, const AnsiString
+ ReplaceStr);
+ bool __fastcall FindEditText(Dialogs::TFindDialog* Dialog, bool AdjustPos, bool Events);
+ bool __fastcall GetCanFindNext(void);
+ void __fastcall FindDialogFind(System::TObject* Sender);
+ void __fastcall ReplaceDialogReplace(System::TObject* Sender);
+ void __fastcall FindDialogClose(System::TObject* Sender);
+ void __fastcall SetUIActive(bool Active);
+ MESSAGE void __fastcall CMDocWindowActivate(Messages::TMessage &Message);
+ MESSAGE void __fastcall CMUIDeactivate(Messages::TMessage &Message);
+ HIDESBASE MESSAGE void __fastcall CMBiDiModeChanged(Messages::TMessage &Message);
+ HIDESBASE MESSAGE void __fastcall CMColorChanged(Messages::TMessage &Message);
+ HIDESBASE MESSAGE void __fastcall CMFontChanged(Messages::TMessage &Message);
+ MESSAGE void __fastcall CNNotify(Messages::TWMNotify &Message);
+ MESSAGE void __fastcall EMReplaceSel(Messages::TMessage &Message);
+ HIDESBASE MESSAGE void __fastcall WMDestroy(Messages::TWMNoParams &Msg);
+ HIDESBASE MESSAGE void __fastcall WMMouseMove(Messages::TMessage &Message);
+ HIDESBASE MESSAGE void __fastcall WMPaint(Messages::TWMPaint &Message);
+ HIDESBASE MESSAGE void __fastcall WMSetCursor(Messages::TWMSetCursor &Message);
+ HIDESBASE MESSAGE void __fastcall WMSetFont(Messages::TWMSetFont &Message);
+ HIDESBASE MESSAGE void __fastcall WMRButtonUp(Messages::TMessage &Message);
+
+protected:
+ virtual void __fastcall CreateParams(Controls::TCreateParams &Params);
+ virtual void __fastcall CreateWindowHandle(const Controls::TCreateParams &Params);
+ virtual void __fastcall CreateWnd(void);
+ virtual void __fastcall DestroyWnd(void);
+ DYNAMIC Menus::TPopupMenu* __fastcall GetPopupMenu(void);
+ virtual void __fastcall TextNotFound(Dialogs::TFindDialog* Dialog);
+ virtual void __fastcall RequestSize(const Windows::TRect &Rect);
+ DYNAMIC void __fastcall SelectionChange(void);
+ DYNAMIC bool __fastcall ProtectChange(const Messages::TMessage &Message, int StartPos, int EndPos);
+
+ DYNAMIC bool __fastcall SaveClipboard(int NumObj, int NumChars);
+ DYNAMIC void __fastcall URLClick(const AnsiString URLText, Controls::TMouseButton Button);
+ virtual void __fastcall SetPlainText(bool Value);
+ virtual void __fastcall CloseFindDialog(Dialogs::TFindDialog* Dialog);
+ virtual void __fastcall DoSetMaxLength(int Value);
+ virtual int __fastcall GetSelLength(void);
+ virtual int __fastcall GetSelStart(void);
+ virtual AnsiString __fastcall GetSelText();
+ virtual void __fastcall SetSelLength(int Value);
+ virtual void __fastcall SetSelStart(int Value);
+ __property bool AllowInPlace = {read=FAllowInPlace, write=FAllowInPlace, default=1};
+ __property bool AllowObjects = {read=FAllowObjects, write=SetAllowObjects, default=1};
+ __property bool AutoURLDetect = {read=GetAutoURLDetect, write=SetAutoURLDetect, default=1};
+ __property bool AutoVerbMenu = {read=FAutoVerbMenu, write=FAutoVerbMenu, default=1};
+ __property bool HideSelection = {read=FHideSelection, write=SetHideSelection, default=1};
+ __property bool HideScrollBars = {read=FHideScrollBars, write=SetHideScrollBars, default=1};
+ __property AnsiString Title = {read=FTitle, write=SetTitle};
+ __property TRichLangOptions LangOptions = {read=GetLangOptions, write=SetLangOptions, default=2};
+ __property Classes::TStrings* Lines = {read=FRichEditStrings, write=SetRichEditStrings};
+ __property bool PlainText = {read=FPlainText, write=SetPlainText, default=0};
+ __property bool SelectionBar = {read=FSelectionBar, write=SetSelectionBar, default=1};
+ __property TRichStreamFormat StreamFormat = {read=GetStreamFormat, write=SetStreamFormat, default=0
+ };
+ __property TRichStreamModes StreamMode = {read=GetStreamMode, write=SetStreamMode, default=0};
+ __property int UndoLimit = {read=FUndoLimit, write=SetUndoLimit, default=100};
+ __property bool WordSelection = {read=GetWordSelection, write=SetWordSelection, default=1};
+ __property ScrollBars ;
+ __property TabStop ;
+ __property Comctrls::TRichEditSaveClipboard OnSaveClipboard = {read=FOnSaveClipboard, write=FOnSaveClipboard
+ };
+ __property Classes::TNotifyEvent OnSelectionChange = {read=FOnSelChange, write=FOnSelChange};
+ __property Comctrls::TRichEditProtectChange OnProtectChange = {read=FOnProtectChange, write=FOnProtectChange
+ };
+ __property TRichEditProtectChangeEx OnProtectChangeEx = {read=FOnProtectChangeEx, write=FOnProtectChangeEx
+ };
+ __property Comctrls::TRichEditResizeEvent OnResizeRequest = {read=FOnResizeRequest, write=FOnResizeRequest
+ };
+ __property TRichEditURLClickEvent OnURLClick = {read=FOnURLClick, write=FOnURLClick};
+ __property TRichEditFindErrorEvent OnTextNotFound = {read=FOnTextNotFound, write=FOnTextNotFound};
+ __property TRichEditFindCloseEvent OnCloseFindDialog = {read=FOnCloseFindDialog, write=FOnCloseFindDialog
+ };
+
+public:
+ __fastcall virtual TRxCustomRichEdit(Classes::TComponent* AOwner);
+ __fastcall virtual ~TRxCustomRichEdit(void);
+ virtual void __fastcall Clear(void);
+ void __fastcall SetSelection(int StartPos, int EndPos, bool ScrollCaret);
+ _charrange __fastcall GetSelection();
+ AnsiString __fastcall GetTextRange(int StartPos, int EndPos);
+ int __fastcall LineFromChar(int CharIndex);
+ int __fastcall GetLineIndex(int LineNo);
+ int __fastcall GetLineLength(int CharIndex);
+ AnsiString __fastcall WordAtCursor();
+ int __fastcall FindText(const AnsiString SearchStr, int StartPos, int Length, TRichSearchTypes Options
+ );
+ virtual int __fastcall GetSelTextBuf(char * Buffer, int BufSize);
+ virtual Windows::TPoint __fastcall GetCaretPos();
+ Windows::TPoint __fastcall GetCharPos(int CharIndex);
+ bool __fastcall InsertObjectDialog(void);
+ bool __fastcall ObjectPropertiesDialog(void);
+ bool __fastcall PasteSpecialDialog(void);
+ Dialogs::TFindDialog* __fastcall FindDialog(const AnsiString SearchStr);
+ Dialogs::TReplaceDialog* __fastcall ReplaceDialog(const AnsiString SearchStr, const AnsiString ReplaceStr
+ );
+ bool __fastcall FindNext(void);
+ virtual void __fastcall Print(const AnsiString Caption);
+ /* class method */ static void __fastcall RegisterConversionFormat(TMetaClass* vmt, const AnsiString
+ AExtension, bool APlainText, TMetaClass* AConversionClass);
+ HIDESBASE void __fastcall ClearUndo(void);
+ void __fastcall Redo(void);
+ void __fastcall StopGroupTyping(void);
+ __property bool CanFindNext = {read=GetCanFindNext, nodefault};
+ __property bool CanRedo = {read=GetCanRedo, nodefault};
+ __property bool CanPaste = {read=GetCanPaste, nodefault};
+ __property TUndoName RedoName = {read=GetRedoName, nodefault};
+ __property TUndoName UndoName = {read=GetUndoName, nodefault};
+ __property TMetaClass* DefaultConverter = {read=FDefaultConverter, write=FDefaultConverter};
+ __property TRxTextAttributes* DefAttributes = {read=FDefAttributes, write=SetDefAttributes};
+ __property TRxTextAttributes* SelAttributes = {read=FSelAttributes, write=SetSelAttributes};
+ __property TRxTextAttributes* WordAttributes = {read=FWordAttributes, write=SetWordAttributes};
+ __property Windows::TRect PageRect = {read=FPageRect, write=FPageRect};
+ __property TRxParaAttributes* Paragraph = {read=FParagraph};
+ __property TRichSelectionType SelectionType = {read=GetSelectionType, nodefault};
+public:
+ #pragma option push -w-inl
+ /* TWinControl.CreateParented */ inline __fastcall TRxCustomRichEdit(HWND ParentWindow) : Stdctrls::TCustomMemo(
+ ParentWindow) { }
+ #pragma option pop
+
+};
+
+
+class PASCALIMPLEMENTATION TRxTextAttributes : public Classes::TPersistent
+{
+ typedef Classes::TPersistent inherited;
+
+private:
+ TRxCustomRichEdit* RichEdit;
+ TRxAttributeType FType;
+ void __fastcall AssignFont(Graphics::TFont* Font);
+ void __fastcall GetAttributes(::CHARFORMAT2A &Format);
+ Graphics::TFontCharset __fastcall GetCharset(void);
+ void __fastcall SetCharset(Graphics::TFontCharset Value);
+ TSubscriptStyle __fastcall GetSubscriptStyle(void);
+ void __fastcall SetSubscriptStyle(TSubscriptStyle Value);
+ Graphics::TColor __fastcall GetBackColor(void);
+ Graphics::TColor __fastcall GetColor(void);
+ TRxConsistentAttributes __fastcall GetConsistentAttributes(void);
+ int __fastcall GetHeight(void);
+ bool __fastcall GetHidden(void);
+ bool __fastcall GetDisabled(void);
+ bool __fastcall GetLink(void);
+ AnsiString __fastcall GetName();
+ int __fastcall GetOffset(void);
+ Graphics::TFontPitch __fastcall GetPitch(void);
+ bool __fastcall GetProtected(void);
+ Byte __fastcall GetRevAuthorIndex(void);
+ int __fastcall GetSize(void);
+ Graphics::TFontStyles __fastcall GetStyle(void);
+ TUnderlineType __fastcall GetUnderlineType(void);
+ void __fastcall SetAttributes(::CHARFORMAT2A &Format);
+ void __fastcall SetBackColor(Graphics::TColor Value);
+ void __fastcall SetColor(Graphics::TColor Value);
+ void __fastcall SetDisabled(bool Value);
+ void __fastcall SetHeight(int Value);
+ void __fastcall SetHidden(bool Value);
+ void __fastcall SetLink(bool Value);
+ void __fastcall SetName(AnsiString Value);
+ void __fastcall SetOffset(int Value);
+ void __fastcall SetPitch(Graphics::TFontPitch Value);
+ void __fastcall SetProtected(bool Value);
+ void __fastcall SetRevAuthorIndex(Byte Value);
+ void __fastcall SetSize(int Value);
+ void __fastcall SetStyle(Graphics::TFontStyles Value);
+ void __fastcall SetUnderlineType(TUnderlineType Value);
+
+protected:
+ void __fastcall InitFormat(::CHARFORMAT2A &Format);
+ virtual void __fastcall AssignTo(Classes::TPersistent* Dest);
+
+public:
+ __fastcall TRxTextAttributes(TRxCustomRichEdit* AOwner, TRxAttributeType AttributeType);
+ virtual void __fastcall Assign(Classes::TPersistent* Source);
+ __property Graphics::TFontCharset Charset = {read=GetCharset, write=SetCharset, nodefault};
+ __property Graphics::TColor BackColor = {read=GetBackColor, write=SetBackColor, nodefault};
+ __property Graphics::TColor Color = {read=GetColor, write=SetColor, nodefault};
+ __property TRxConsistentAttributes ConsistentAttributes = {read=GetConsistentAttributes, nodefault}
+ ;
+ __property bool Disabled = {read=GetDisabled, write=SetDisabled, nodefault};
+ __property bool Hidden = {read=GetHidden, write=SetHidden, nodefault};
+ __property bool Link = {read=GetLink, write=SetLink, nodefault};
+ __property AnsiString Name = {read=GetName, write=SetName};
+ __property int Offset = {read=GetOffset, write=SetOffset, nodefault};
+ __property Graphics::TFontPitch Pitch = {read=GetPitch, write=SetPitch, nodefault};
+ __property bool Protected = {read=GetProtected, write=SetProtected, nodefault};
+ __property Byte RevAuthorIndex = {read=GetRevAuthorIndex, write=SetRevAuthorIndex, nodefault};
+ __property TSubscriptStyle SubscriptStyle = {read=GetSubscriptStyle, write=SetSubscriptStyle, nodefault
+ };
+ __property int Size = {read=GetSize, write=SetSize, nodefault};
+ __property Graphics::TFontStyles Style = {read=GetStyle, write=SetStyle, nodefault};
+ __property int Height = {read=GetHeight, write=SetHeight, nodefault};
+ __property TUnderlineType UnderlineType = {read=GetUnderlineType, write=SetUnderlineType, nodefault
+ };
+public:
+ #pragma option push -w-inl
+ /* TPersistent.Destroy */ inline __fastcall virtual ~TRxTextAttributes(void) { }
+ #pragma option pop
+
+};
+
+
+class DELPHICLASS TOEMConversion;
+class PASCALIMPLEMENTATION TOEMConversion : public Comctrls::TConversion
+{
+ typedef Comctrls::TConversion inherited;
+
+public:
+ virtual int __fastcall ConvertReadStream(Classes::TStream* Stream, char * Buffer, int BufSize);
+ virtual int __fastcall ConvertWriteStream(Classes::TStream* Stream, char * Buffer, int BufSize);
+public:
+
+ #pragma option push -w-inl
+ /* TObject.Create */ inline __fastcall TOEMConversion(void) : Comctrls::TConversion() { }
+ #pragma option pop
+ #pragma option push -w-inl
+ /* TObject.Destroy */ inline __fastcall virtual ~TOEMConversion(void) { }
+ #pragma option pop
+
+};
+
+
+struct TRichConversionFormat;
+typedef TRichConversionFormat *PRichConversionFormat;
+
+struct TRichConversionFormat
+{
+ TMetaClass*ConversionClass;
+ AnsiString Extension;
+ bool PlainText;
+ TRichConversionFormat *Next;
+} ;
+
+class DELPHICLASS TRxRichEdit;
+class PASCALIMPLEMENTATION TRxRichEdit : public TRxCustomRichEdit
+{
+ typedef TRxCustomRichEdit inherited;
+
+__published:
+ __property Align ;
+ __property Alignment ;
+ __property AutoURLDetect ;
+ __property AutoVerbMenu ;
+ __property AllowObjects ;
+ __property AllowInPlace ;
+ __property Anchors ;
+ __property BiDiMode ;
+ __property BorderWidth ;
+ __property DragKind ;
+ __property BorderStyle ;
+ __property Color ;
+ __property Ctl3D ;
+ __property DragCursor ;
+ __property DragMode ;
+ __property Enabled ;
+ __property Font ;
+ __property HideSelection ;
+ __property HideScrollBars ;
+ __property Title ;
+ __property ImeMode ;
+ __property ImeName ;
+ __property Constraints ;
+ __property ParentBiDiMode ;
+ __property LangOptions ;
+ __property Lines ;
+ __property MaxLength ;
+ __property ParentColor ;
+ __property ParentCtl3D ;
+ __property ParentFont ;
+ __property ParentShowHint ;
+ __property PlainText ;
+ __property PopupMenu ;
+ __property ReadOnly ;
+ __property ScrollBars ;
+ __property SelectionBar ;
+ __property ShowHint ;
+ __property StreamFormat ;
+ __property StreamMode ;
+ __property TabOrder ;
+ __property TabStop ;
+ __property UndoLimit ;
+ __property Visible ;
+ __property WantTabs ;
+ __property WantReturns ;
+ __property WordSelection ;
+ __property WordWrap ;
+ __property OnChange ;
+ __property OnDblClick ;
+ __property OnDragDrop ;
+ __property OnDragOver ;
+ __property OnContextPopup ;
+ __property OnEndDock ;
+ __property OnStartDock ;
+ __property OnEndDrag ;
+ __property OnEnter ;
+ __property OnExit ;
+ __property OnKeyDown ;
+ __property OnKeyPress ;
+ __property OnKeyUp ;
+ __property OnMouseDown ;
+ __property OnMouseMove ;
+ __property OnMouseUp ;
+ __property OnMouseWheel ;
+ __property OnMouseWheelDown ;
+ __property OnMouseWheelUp ;
+ __property OnProtectChange ;
+ __property OnProtectChangeEx ;
+ __property OnResizeRequest ;
+ __property OnSaveClipboard ;
+ __property OnSelectionChange ;
+ __property OnStartDrag ;
+ __property OnTextNotFound ;
+ __property OnCloseFindDialog ;
+ __property OnURLClick ;
+public:
+ #pragma option push -w-inl
+ /* TRxCustomRichEdit.Create */ inline __fastcall virtual TRxRichEdit(Classes::TComponent* AOwner) :
+ TRxCustomRichEdit(AOwner) { }
+ #pragma option pop
+ #pragma option push -w-inl
+ /* TRxCustomRichEdit.Destroy */ inline __fastcall virtual ~TRxRichEdit(void) { }
+ #pragma option pop
+
+public:
+ #pragma option push -w-inl
+ /* TWinControl.CreateParented */ inline __fastcall TRxRichEdit(HWND ParentWindow) : TRxCustomRichEdit(
+ ParentWindow) { }
+ #pragma option pop
+
+};
+
+
+//-- var, const, procedure ---------------------------------------------------
+extern PACKAGE TRichEditVersion RichEditVersion;
+
+} /* namespace Rxriched */
+#if !defined(NO_IMPLICIT_NAMESPACE_USE)
+using namespace Rxriched;
+#endif
+#pragma option pop // -w-
+#pragma option pop // -Vx
+
+#pragma delphiheader end.
+//-- end unit ----------------------------------------------------------------
+#endif // RxRichEd
diff --git a/apps/windoze/CBuilder5/BibleCS/rxlib/RxRichEd.obj b/apps/windoze/CBuilder5/BibleCS/rxlib/RxRichEd.obj
new file mode 100644
index 0000000..c3f2031
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/rxlib/RxRichEd.obj
Binary files differ
diff --git a/apps/windoze/CBuilder5/BibleCS/rxlib/Rxcconst.obj b/apps/windoze/CBuilder5/BibleCS/rxlib/Rxcconst.obj
new file mode 100644
index 0000000..00a2ff1
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/rxlib/Rxcconst.obj
Binary files differ
diff --git a/apps/windoze/CBuilder5/BibleCS/rxlib/Rxcombos.hpp b/apps/windoze/CBuilder5/BibleCS/rxlib/Rxcombos.hpp
new file mode 100644
index 0000000..8bf3ee7
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/rxlib/Rxcombos.hpp
@@ -0,0 +1,272 @@
+// Borland C++ Builder
+// Copyright (c) 1995, 1999 by Borland International
+// All rights reserved
+
+// (DO NOT EDIT: machine generated header) 'RxCombos.pas' rev: 5.00
+
+#ifndef RxCombosHPP
+#define RxCombosHPP
+
+#pragma delphiheader begin
+#pragma option push -w-
+#pragma option push -Vx
+#include <Menus.hpp> // Pascal unit
+#include <Forms.hpp> // Pascal unit
+#include <StdCtrls.hpp> // Pascal unit
+#include <Graphics.hpp> // Pascal unit
+#include <Controls.hpp> // Pascal unit
+#include <Classes.hpp> // Pascal unit
+#include <Messages.hpp> // Pascal unit
+#include <Windows.hpp> // Pascal unit
+#include <SysInit.hpp> // Pascal unit
+#include <System.hpp> // Pascal unit
+
+//-- user supplied -----------------------------------------------------------
+
+namespace Rxcombos
+{
+//-- type declarations -------------------------------------------------------
+typedef Stdctrls::TComboBoxStyle TOwnerDrawComboStyle;
+
+class DELPHICLASS TOwnerDrawComboBox;
+class PASCALIMPLEMENTATION TOwnerDrawComboBox : public Stdctrls::TCustomComboBox
+{
+ typedef Stdctrls::TCustomComboBox inherited;
+
+private:
+ Stdctrls::TComboBoxStyle FStyle;
+ bool FItemHeightChanging;
+ void __fastcall SetComboStyle(TOwnerDrawComboStyle Value);
+ HIDESBASE MESSAGE void __fastcall CMFontChanged(Messages::TMessage &Message);
+ HIDESBASE MESSAGE void __fastcall CMRecreateWnd(Messages::TMessage &Message);
+
+protected:
+ virtual void __fastcall CreateParams(Controls::TCreateParams &Params);
+ virtual void __fastcall CreateWnd(void);
+ void __fastcall ResetItemHeight(void);
+ virtual int __fastcall MinItemHeight(void);
+ __property TOwnerDrawComboStyle Style = {read=FStyle, write=SetComboStyle, default=2};
+
+public:
+ __fastcall virtual TOwnerDrawComboBox(Classes::TComponent* AOwner);
+public:
+ #pragma option push -w-inl
+ /* TCustomComboBox.Destroy */ inline __fastcall virtual ~TOwnerDrawComboBox(void) { }
+ #pragma option pop
+
+public:
+ #pragma option push -w-inl
+ /* TWinControl.CreateParented */ inline __fastcall TOwnerDrawComboBox(HWND ParentWindow) : Stdctrls::TCustomComboBox(
+ ParentWindow) { }
+ #pragma option pop
+
+};
+
+
+#pragma option push -b-
+enum TColorComboOption { coIncludeDefault, coIncludeNone };
+#pragma option pop
+
+typedef Set<TColorComboOption, coIncludeDefault, coIncludeNone> TColorComboOptions;
+
+class DELPHICLASS TColorComboBox;
+class PASCALIMPLEMENTATION TColorComboBox : public TOwnerDrawComboBox
+{
+ typedef TOwnerDrawComboBox inherited;
+
+private:
+ Graphics::TColor FColorValue;
+ bool FDisplayNames;
+ Classes::TStrings* FColorNames;
+ TColorComboOptions FOptions;
+ Classes::TNotifyEvent FOnChange;
+ Graphics::TColor __fastcall GetColorValue(void);
+ void __fastcall SetColorValue(Graphics::TColor NewValue);
+ void __fastcall SetDisplayNames(bool Value);
+ void __fastcall SetColorNames(Classes::TStrings* Value);
+ void __fastcall SetOptions(TColorComboOptions Value);
+ void __fastcall ColorNamesChanged(System::TObject* Sender);
+
+protected:
+ virtual void __fastcall CreateWnd(void);
+ virtual void __fastcall DrawItem(int Index, const Windows::TRect &Rect, Windows::TOwnerDrawState State
+ );
+ DYNAMIC void __fastcall Click(void);
+ DYNAMIC void __fastcall Change(void);
+ virtual void __fastcall PopulateList(void);
+ DYNAMIC void __fastcall DoChange(void);
+
+public:
+ __fastcall virtual TColorComboBox(Classes::TComponent* AOwner);
+ __fastcall virtual ~TColorComboBox(void);
+ __property Text ;
+
+__published:
+ __property Graphics::TColor ColorValue = {read=GetColorValue, write=SetColorValue, default=0};
+ __property Classes::TStrings* ColorNames = {read=FColorNames, write=SetColorNames};
+ __property bool DisplayNames = {read=FDisplayNames, write=SetDisplayNames, default=1};
+ __property TColorComboOptions Options = {read=FOptions, write=SetOptions, default=0};
+ __property Color ;
+ __property Ctl3D ;
+ __property DragMode ;
+ __property DragCursor ;
+ __property Enabled ;
+ __property Font ;
+ __property Anchors ;
+ __property BiDiMode ;
+ __property Constraints ;
+ __property DragKind ;
+ __property ParentBiDiMode ;
+ __property ImeMode ;
+ __property ImeName ;
+ __property ParentColor ;
+ __property ParentCtl3D ;
+ __property ParentFont ;
+ __property ParentShowHint ;
+ __property PopupMenu ;
+ __property ShowHint ;
+ __property Style ;
+ __property TabOrder ;
+ __property TabStop ;
+ __property Visible ;
+ __property Classes::TNotifyEvent OnChange = {read=FOnChange, write=FOnChange};
+ __property OnClick ;
+ __property OnDblClick ;
+ __property OnDragDrop ;
+ __property OnDragOver ;
+ __property OnDropDown ;
+ __property OnEndDrag ;
+ __property OnEnter ;
+ __property OnExit ;
+ __property OnKeyDown ;
+ __property OnKeyPress ;
+ __property OnKeyUp ;
+ __property OnStartDrag ;
+ __property OnContextPopup ;
+ __property OnEndDock ;
+ __property OnStartDock ;
+public:
+ #pragma option push -w-inl
+ /* TWinControl.CreateParented */ inline __fastcall TColorComboBox(HWND ParentWindow) : TOwnerDrawComboBox(
+ ParentWindow) { }
+ #pragma option pop
+
+};
+
+
+#pragma option push -b-
+enum TFontDevice { fdScreen, fdPrinter, fdBoth };
+#pragma option pop
+
+#pragma option push -b-
+enum TFontListOption { foAnsiOnly, foTrueTypeOnly, foFixedPitchOnly, foNoOEMFonts, foOEMFontsOnly, foScalableOnly,
+ foNoSymbolFonts };
+#pragma option pop
+
+typedef Set<TFontListOption, foAnsiOnly, foNoSymbolFonts> TFontListOptions;
+
+class DELPHICLASS TFontComboBox;
+class PASCALIMPLEMENTATION TFontComboBox : public TOwnerDrawComboBox
+{
+ typedef TOwnerDrawComboBox inherited;
+
+private:
+ Graphics::TBitmap* FTrueTypeBMP;
+ Graphics::TBitmap* FDeviceBMP;
+ Classes::TNotifyEvent FOnChange;
+ TFontDevice FDevice;
+ bool FUpdate;
+ bool FUseFonts;
+ TFontListOptions FOptions;
+ void __fastcall SetFontName(const AnsiString NewFontName);
+ AnsiString __fastcall GetFontName();
+ bool __fastcall GetTrueTypeOnly(void);
+ void __fastcall SetDevice(TFontDevice Value);
+ void __fastcall SetOptions(TFontListOptions Value);
+ void __fastcall SetTrueTypeOnly(bool Value);
+ void __fastcall SetUseFonts(bool Value);
+ void __fastcall Reset(void);
+ HIDESBASE MESSAGE void __fastcall WMFontChange(Messages::TMessage &Message);
+
+protected:
+ virtual void __fastcall PopulateList(void);
+ DYNAMIC void __fastcall Change(void);
+ DYNAMIC void __fastcall Click(void);
+ DYNAMIC void __fastcall DoChange(void);
+ virtual void __fastcall CreateWnd(void);
+ virtual void __fastcall DrawItem(int Index, const Windows::TRect &Rect, Windows::TOwnerDrawState State
+ );
+ virtual int __fastcall MinItemHeight(void);
+
+public:
+ __fastcall virtual TFontComboBox(Classes::TComponent* AOwner);
+ __fastcall virtual ~TFontComboBox(void);
+ __property Text ;
+
+__published:
+ __property TFontDevice Device = {read=FDevice, write=SetDevice, default=0};
+ __property AnsiString FontName = {read=GetFontName, write=SetFontName};
+ __property TFontListOptions Options = {read=FOptions, write=SetOptions, default=0};
+ __property bool TrueTypeOnly = {read=GetTrueTypeOnly, write=SetTrueTypeOnly, stored=false, nodefault
+ };
+ __property bool UseFonts = {read=FUseFonts, write=SetUseFonts, default=0};
+ __property Color ;
+ __property Ctl3D ;
+ __property DragMode ;
+ __property DragCursor ;
+ __property Enabled ;
+ __property Font ;
+ __property Anchors ;
+ __property BiDiMode ;
+ __property Constraints ;
+ __property DragKind ;
+ __property ParentBiDiMode ;
+ __property ImeMode ;
+ __property ImeName ;
+ __property ParentColor ;
+ __property ParentCtl3D ;
+ __property ParentFont ;
+ __property ParentShowHint ;
+ __property PopupMenu ;
+ __property ShowHint ;
+ __property Style ;
+ __property TabOrder ;
+ __property TabStop ;
+ __property Visible ;
+ __property Classes::TNotifyEvent OnChange = {read=FOnChange, write=FOnChange};
+ __property OnClick ;
+ __property OnDblClick ;
+ __property OnDragDrop ;
+ __property OnDragOver ;
+ __property OnDropDown ;
+ __property OnEndDrag ;
+ __property OnEnter ;
+ __property OnExit ;
+ __property OnKeyDown ;
+ __property OnKeyPress ;
+ __property OnKeyUp ;
+ __property OnStartDrag ;
+ __property OnContextPopup ;
+ __property OnEndDock ;
+ __property OnStartDock ;
+public:
+ #pragma option push -w-inl
+ /* TWinControl.CreateParented */ inline __fastcall TFontComboBox(HWND ParentWindow) : TOwnerDrawComboBox(
+ ParentWindow) { }
+ #pragma option pop
+
+};
+
+
+//-- var, const, procedure ---------------------------------------------------
+
+} /* namespace Rxcombos */
+#if !defined(NO_IMPLICIT_NAMESPACE_USE)
+using namespace Rxcombos;
+#endif
+#pragma option pop // -w-
+#pragma option pop // -Vx
+
+#pragma delphiheader end.
+//-- end unit ----------------------------------------------------------------
+#endif // RxCombos
diff --git a/apps/windoze/CBuilder5/BibleCS/rxlib/Rxcombos.obj b/apps/windoze/CBuilder5/BibleCS/rxlib/Rxcombos.obj
new file mode 100644
index 0000000..94a9776
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/rxlib/Rxcombos.obj
Binary files differ
diff --git a/apps/windoze/CBuilder5/BibleCS/rxlib/Rxconst.obj b/apps/windoze/CBuilder5/BibleCS/rxlib/Rxconst.obj
new file mode 100644
index 0000000..8a5f8be
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/rxlib/Rxconst.obj
Binary files differ
diff --git a/apps/windoze/CBuilder5/BibleCS/rxlib/Vclutils.obj b/apps/windoze/CBuilder5/BibleCS/rxlib/Vclutils.obj
new file mode 100644
index 0000000..c921063
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/rxlib/Vclutils.obj
Binary files differ
diff --git a/apps/windoze/CBuilder5/BibleCS/save.bmp b/apps/windoze/CBuilder5/BibleCS/save.bmp
new file mode 100644
index 0000000..0ec6204
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/save.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/BibleCS/schemes.conf b/apps/windoze/CBuilder5/BibleCS/schemes.conf
new file mode 100644
index 0000000..66bd2c0
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/schemes.conf
@@ -0,0 +1,84 @@
+[Default]
+CommentBackColor=16777215
+CommentFontColor=0
+CommentFontName=Times New Roman
+CommentFontSize=12
+CurrentVSColor=16711680
+FieldColor=16776960
+LDBackColor=16777215
+LDFontColor=0
+LDFontName=Times New Roman
+LDFontSize=12
+TextBackColor=16777215
+TextFontColor=0
+TextFontName=Times New Roman
+TextFontSize=12
+VSNumberColor=16711680
+
+[Parchment]
+CommentBackColor=13434879
+CommentFontColor=0
+CommentFontName=Arial
+CommentFontSize=10
+CurrentVSColor=4227327
+FieldColor=16777215
+LDBackColor=13434879
+LDFontColor=0
+LDFontName=Arial
+LDFontSize=10
+TextBackColor=13434879
+TextFontColor=0
+TextFontName=Arial
+TextFontSize=10
+VSNumberColor=4227327
+
+[Midnight]
+CommentBackColor=0
+CommentFontColor=65280
+CommentFontName=Arial
+CommentFontSize=14
+CurrentVSColor=65535
+FieldColor=12632256
+LDBackColor=0
+LDFontColor=65280
+LDFontName=Arial
+LDFontSize=14
+TextBackColor=0
+TextFontColor=65280
+TextFontName=Arial
+TextFontSize=14
+VSNumberColor=8454143
+
+[Light Blues]
+CommentBackColor=16771797
+CommentFontColor=8388608
+CommentFontName=MS Sans Serif
+CommentFontSize=12
+CurrentVSColor=8388863
+FieldColor=16771797
+LDBackColor=16771797
+LDFontColor=8388608
+LDFontName=MS Sans Serif
+LDFontSize=12
+TextBackColor=16771797
+TextFontColor=8388608
+TextFontName=MS Sans Serif
+TextFontSize=12
+VSNumberColor=255
+
+[Lighten Up]
+CommentBackColor=16777215
+CommentFontColor=8421504
+CommentFontName=MS Serif
+CommentFontSize=12
+CurrentVSColor=0
+FieldColor=12632256
+LDBackColor=16777215
+LDFontColor=8421504
+LDFontName=MS Serif
+LDFontSize=12
+TextBackColor=16777215
+TextFontColor=8421504
+TextFontName=MS Serif
+TextFontSize=12
+VSNumberColor=12632256
diff --git a/apps/windoze/CBuilder5/BibleCS/search.bmp b/apps/windoze/CBuilder5/BibleCS/search.bmp
new file mode 100644
index 0000000..ee693be
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/search.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/BibleCS/searchfrm.cpp b/apps/windoze/CBuilder5/BibleCS/searchfrm.cpp
new file mode 100644
index 0000000..66cb8a8
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/searchfrm.cpp
@@ -0,0 +1,241 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "searchfrm.h"
+#include <listkey.h>
+#include "mainfrm.h"
+#include <regex.h>
+#include "RangeMaintFrm.h"
+
+
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TForm2 *Form2;
+//---------------------------------------------------------------------------
+__fastcall TForm2::TForm2(TComponent* Owner)
+ : TForm(Owner) {
+ pvrtf = new SWDispRTF(this);
+
+ pvrtf->Parent = plPreview;
+ pvrtf->Align = alClient;
+ pvrtf->ScrollBars = ssVertical;
+ pvrtf->ReadOnly = true;
+ SearchText->Align = alClient;
+// pvrtf->PopupMenu = PopupMenu2;
+
+// mod->Disp(*displays.insert(displays.begin(), new RTFDisp(newrtf)));
+// mod->SetKey(DefaultVSKey);
+// return 0;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm2::Button1Click(TObject *Sender)
+{
+// ModMap::iterator target;
+ class TWaitCursor {
+ public:
+ TWaitCursor() : oldc(Screen->Cursor) { Screen->Cursor = crHourGlass; }
+ ~TWaitCursor() { Screen->Cursor = oldc; }
+ private:
+ TCursor oldc;
+ } wait; // show hourglass
+
+ if (!SearchText->Text.Length())
+ return;
+
+
+ int index = SearchText->Items->IndexOf(SearchText->Text);
+ SearchText->Items->Insert(0, SearchText->Text);
+
+ if (index >= 0)
+ SearchText->Items->Delete(index+1);
+
+ SearchText->ItemIndex = 0;
+
+ Caption = "";
+
+ targetpc = Form1->PageControl1;
+
+ if ((Form1->ActiveControl == Form1->PageControl2) || (IsChild(Form1->PageControl2->Handle, Form1->ActiveControl->Handle)))
+ targetpc = Form1->PageControl2;
+ if ((Form1->ActiveControl == Form1->PageControl3) || (IsChild(Form1->PageControl3->Handle, Form1->ActiveControl->Handle)))
+ targetpc = Form1->PageControl3;
+
+
+ target = Form1->mainmgr->Modules.find(targetpc->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ Caption = Caption + "Searching [" + (*target).first.c_str() + "]...";
+ resultsLV->Items->Clear();
+ int searchType;
+ switch (searchTypeGroup->ItemIndex) {
+ case 0: searchType = -2; break;
+ case 1: searchType = -1; break;
+ case 2: searchType = 0; break;
+ }
+ int searchOptions = (CheckBox2->Checked) ? 0 : REG_ICASE;
+ Button1->Caption = "Halt";
+ Button1->OnClick = TerminateSearch;
+ SWKey *scope = 0;
+ switch (scopeGroup->ItemIndex) {
+ case 2:
+ if (ComboBox1->ItemIndex < 0)
+ results = VerseKey().ParseVerseList(ComboBox1->Text.c_str(), "", true);
+ else {
+ TCustomRange *rs = (TCustomRange *)ComboBox1->Items->Objects[ComboBox1->ItemIndex];
+ results = VerseKey().ParseVerseList(rs->text.c_str(), "", true);
+ }
+ case 1: scope = &results; break;
+ }
+ searchThread = new TSearchThread(this, SearchText->Text.c_str(), searchType, searchOptions, scope);
+ }
+ else Caption = "Error finding target module";
+}
+
+
+void __fastcall TForm2::TerminateSearch(TObject *Sender)
+{
+ (*target).second->terminateSearch = true;
+}
+
+//---------------------------------------------------------------------------
+void __fastcall TForm2::ListBox1DblClick(TObject *Sender)
+{
+ if (!resultsLV->Items->Count) return; // assert items in list view
+
+ TListItem *focused = resultsLV->ItemFocused;
+ if (focused) {
+ int row = focused->Index;
+ if (targetpc == Form1->PageControl3) {
+ Form1->DictKeyEdit->Text = resultsLV->Items->Item[row]->Caption.c_str();
+ }
+ else {
+ *(Form1->DefaultVSKey) = resultsLV->Items->Item[row]->Caption.c_str();
+ Form1->TextKeyChanged();
+ }
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm2::ListBox1Click(TObject *Sender)
+{
+ if (!resultsLV->Items->Count) return; // assert items in list view
+
+ if (target != Form1->mainmgr->Modules.end()) {
+ SWKey *savekey = (SWKey *)*(*target).second;
+ SWKey saveKeyText;
+ bool pKey = false;
+ if (savekey->Persist()) {
+ pKey = true;
+ }
+ else {
+ saveKeyText = target->second->KeyText();
+ }
+ TListItem *focused = resultsLV->ItemFocused;
+ if (focused) {
+ int row = focused->Index;
+ (*target).second->SetKey(resultsLV->Items->Item[row]->Caption.c_str());
+ pvrtf->Display(*(*target).second);
+ (*target).second->SetKey((pKey)?*savekey:saveKeyText);
+ }
+ }
+}
+
+//---------------------------------------------------------------------------
+
+__fastcall TForm2::TSearchThread::TSearchThread(TForm2 *parent, string searchText, int searchType, int searchOptions, SWKey *scope, bool CreateSuspended)
+ : TThread(CreateSuspended)
+{
+ this->parent = parent;
+ this->searchText = searchText;
+ this->searchType = searchType;
+ this->searchOptions = searchOptions;
+ this->scope = scope;
+ Priority = tpNormal;
+ FreeOnTerminate = true;
+}
+
+
+void __fastcall TForm2::TSearchThread::updateProgressBar(void) {
+ parent->progressBar->Position = parent->status;
+ parent->progressBar->Repaint();
+}
+
+
+void __fastcall TForm2::TSearchThread::updateStatus(void) {
+ Synchronize((TThreadMethod)&updateProgressBar);
+}
+
+
+void TForm2::TSearchThread::searchProgressCallback(char status, void *searchThread) {
+ TForm2::TSearchThread *thread = (TForm2::TSearchThread *)searchThread;
+ thread->parent->status = status;
+ thread->updateStatus();
+}
+
+
+void __fastcall TForm2::TSearchThread::FillListBox(void)
+{
+ TListItem *pItem;
+
+ SWKey *savekey = (SWKey *)*(*parent->target).second;
+ for (results = TOP; !results.Error(); results++) {
+ (*parent->target).second->SetKey(results);
+ pItem = parent->resultsLV->Items->Add();
+ pItem->Caption = (const char *)results;
+ pItem->SubItems->Add((*parent->target).second->StripText());
+// pItem = resultsLV->Items->Add(
+ }
+ (*parent->target).second->SetKey(*savekey);
+// ListBox1->Items->Pack(); // so Count is set correctly (per helpfile)
+ parent->Caption = "";
+ parent->Caption = parent->Caption + "Results from [" + (*(parent->target)).first.c_str() + "] (" + parent->resultsLV->Items->Count + ((parent->resultsLV->Items->Count == 1) ? " match)" : " matches)");
+ parent->Button1->Caption = "Search";
+ parent->Button1->OnClick = parent->Button1Click;
+}
+
+void __fastcall TForm2::TSearchThread::Execute()
+{
+ results = (*(parent->target)).second->Search(searchText.c_str(), searchType, searchOptions, scope, 0, searchProgressCallback, this);
+
+ Synchronize((TThreadMethod)&FillListBox);
+ parent->results = results;
+}
+
+
+
+
+void __fastcall TForm2::scopeGroupClick(TObject *Sender) {
+ bool enabled = (scopeGroup->ItemIndex == 2);
+
+ Button2->Enabled = enabled;
+ ComboBox1->Enabled = enabled;
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm2::Button2Click(TObject *Sender)
+{
+ RangeMaintForm->ShowModal();
+ populateRanges();
+}
+//---------------------------------------------------------------------------
+
+void TForm2::populateRanges() {
+ ConfigEntMap::iterator loop, end;
+ SWConfig config("./options.conf");
+ ComboBox1->Clear();
+ loop = config.Sections["CustomRanges"].begin();
+ end = config.Sections["CustomRanges"].end();
+ while (loop != end) {
+ TCustomRange *rs = new TCustomRange(loop->first.c_str(), loop->second.c_str());
+ ComboBox1->Items->AddObject(rs->name.c_str(), rs);
+ loop++;
+ }
+}
+
+
+void __fastcall TForm2::FormShow(TObject *Sender)
+{
+ populateRanges();
+}
+//---------------------------------------------------------------------------
+
+
diff --git a/apps/windoze/CBuilder5/BibleCS/searchfrm.dfm b/apps/windoze/CBuilder5/BibleCS/searchfrm.dfm
new file mode 100644
index 0000000..7e50714
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/searchfrm.dfm
@@ -0,0 +1,245 @@
+object Form2: TForm2
+ Left = 401
+ Top = 130
+ Width = 390
+ Height = 487
+ Caption = 'Search...'
+ Color = clBtnFace
+ Constraints.MinHeight = 360
+ Constraints.MinWidth = 360
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ Icon.Data = {
+ 0000010001002020100000000000E80200001600000028000000200000004000
+ 0000010004000000000080020000000000000000000000000000000000000000
+ 000000008000008000000080800080000000800080008080000080808000C0C0
+ C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF006666
+ 6666666666666666666666666666688888888888888888088888888888866888
+ 8888888888888880888888888886688888888888888888808888888888866888
+ 8008888088008880800080008800688888088880880808808080808088006888
+ 8808888088080880800880888806688888008880080808880080808088066888
+ 8808080080800800080088008000688888080888888888888888888888066888
+ 8000088888888888888888888806688888888888888888880888888888866008
+ 8808880888877777777878888F86088088088808887888877788888888F60880
+ 800888078788888878878888888F6800808080878788888878878888888F6088
+ 808087878788888877788888888F0888088087887788888878888888888F0808
+ 0888788878788887788888F888F600000087778777877777777888FFFF866888
+ 8880888888888888888888888886688888880888888888888888888888866800
+ 8880808800088888888888888886688088808808080888888888888888866880
+ 8880080800888888888888888886688088800008080888888888888888866880
+ 8880880880088888888888888886088080808888888888888888888888860000
+ 0080888888888888888888888886688888808888888888888888888888866888
+ 8888088888888888888888888886666666660666666666666666666666660000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000}
+ OldCreateOrder = True
+ Position = poScreenCenter
+ Scaled = False
+ OnShow = FormShow
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Panel1: TPanel
+ Left = 0
+ Top = 0
+ Width = 382
+ Height = 93
+ Align = alTop
+ BevelOuter = bvNone
+ TabOrder = 0
+ object Panel3: TPanel
+ Left = 0
+ Top = 0
+ Width = 382
+ Height = 24
+ Align = alTop
+ Caption = 'Panel3'
+ TabOrder = 0
+ object SearchText: TComboBox
+ Left = 4
+ Top = 0
+ Width = 375
+ Height = 21
+ Anchors = [akLeft, akTop, akRight]
+ ItemHeight = 13
+ TabOrder = 0
+ end
+ end
+ object searchTypeGroup: TRadioGroup
+ Left = 0
+ Top = 24
+ Width = 153
+ Height = 69
+ Align = alLeft
+ Caption = 'Search Type'
+ ItemIndex = 0
+ Items.Strings = (
+ 'Mult Word'
+ 'Phrase'
+ 'Regular Expression')
+ TabOrder = 1
+ end
+ object GroupBox1: TGroupBox
+ Left = 153
+ Top = 24
+ Width = 142
+ Height = 69
+ Align = alLeft
+ Anchors = [akLeft, akTop, akRight, akBottom]
+ Caption = 'Search Options'
+ TabOrder = 2
+ object CheckBox2: TCheckBox
+ Left = 8
+ Top = 16
+ Width = 127
+ Height = 17
+ Anchors = [akLeft, akTop, akRight]
+ Caption = 'Case Sensitive'
+ TabOrder = 0
+ end
+ end
+ object Panel4: TPanel
+ Left = 295
+ Top = 24
+ Width = 87
+ Height = 69
+ Align = alClient
+ BevelOuter = bvNone
+ TabOrder = 3
+ object Button1: TButton
+ Left = 0
+ Top = 4
+ Width = 85
+ Height = 25
+ Anchors = [akTop, akRight]
+ Caption = 'Search'
+ Default = True
+ TabOrder = 0
+ OnClick = Button1Click
+ end
+ end
+ end
+ object pnlResult: TPanel
+ Left = 0
+ Top = 165
+ Width = 382
+ Height = 295
+ Align = alClient
+ TabOrder = 1
+ object Splitter1: TSplitter
+ Left = 1
+ Top = 160
+ Width = 380
+ Height = 5
+ Cursor = crVSplit
+ Align = alBottom
+ ResizeStyle = rsUpdate
+ end
+ object plPreview: TPanel
+ Left = 1
+ Top = 165
+ Width = 380
+ Height = 113
+ Align = alBottom
+ TabOrder = 0
+ end
+ object resultsLV: TListView
+ Left = 1
+ Top = 1
+ Width = 380
+ Height = 159
+ Align = alClient
+ Columns = <
+ item
+ Caption = 'Reference'
+ MinWidth = 175
+ Width = 175
+ end
+ item
+ AutoSize = True
+ Caption = 'Preview...'
+ end>
+ TabOrder = 1
+ ViewStyle = vsReport
+ OnClick = ListBox1Click
+ OnDblClick = ListBox1DblClick
+ end
+ object progressBar: TProgressBar
+ Left = 1
+ Top = 278
+ Width = 380
+ Height = 16
+ Align = alBottom
+ Min = 0
+ Max = 100
+ Step = 1
+ TabOrder = 2
+ end
+ end
+ object pnlScope: TPanel
+ Left = 0
+ Top = 93
+ Width = 382
+ Height = 72
+ Align = alTop
+ BevelOuter = bvNone
+ TabOrder = 2
+ object Panel2: TPanel
+ Left = 0
+ Top = 0
+ Width = 382
+ Height = 43
+ Align = alClient
+ BevelOuter = bvNone
+ TabOrder = 0
+ object scopeGroup: TRadioGroup
+ Left = 0
+ Top = 0
+ Width = 382
+ Height = 43
+ Align = alClient
+ Caption = 'Scope'
+ Columns = 3
+ ItemIndex = 0
+ Items.Strings = (
+ 'Entire Module'
+ 'Current Results'
+ 'Custom Range')
+ TabOrder = 0
+ OnClick = scopeGroupClick
+ end
+ end
+ object Panel5: TPanel
+ Left = 0
+ Top = 43
+ Width = 382
+ Height = 29
+ Align = alBottom
+ TabOrder = 1
+ object Button2: TButton
+ Left = 4
+ Top = 4
+ Width = 153
+ Height = 21
+ Caption = 'Define Custom Range'
+ Enabled = False
+ TabOrder = 0
+ OnClick = Button2Click
+ end
+ object ComboBox1: TComboBox
+ Left = 160
+ Top = 4
+ Width = 222
+ Height = 21
+ Anchors = [akLeft, akTop, akRight]
+ Enabled = False
+ ItemHeight = 13
+ TabOrder = 1
+ end
+ end
+ end
+end
diff --git a/apps/windoze/CBuilder5/BibleCS/searchfrm.h b/apps/windoze/CBuilder5/BibleCS/searchfrm.h
new file mode 100644
index 0000000..a66425b
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/searchfrm.h
@@ -0,0 +1,76 @@
+//---------------------------------------------------------------------------
+#ifndef searchH
+#define searchH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ExtCtrls.hpp>
+#include "mainfrm.h"
+#include <swmgr.h>
+#include <ComCtrls.hpp>
+//---------------------------------------------------------------------------
+class TForm2 : public TForm {
+ class TSearchThread;
+ friend class TSearchThread;
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TPanel *pnlResult;
+ TPanel *Panel3;
+ TPanel *plPreview;
+ TRadioGroup *searchTypeGroup;
+ TGroupBox *GroupBox1;
+ TCheckBox *CheckBox2;
+ TPanel *Panel4;
+ TButton *Button1;
+ TSplitter *Splitter1;
+ TPanel *pnlScope;
+ TComboBox *SearchText;
+ TPanel *Panel2;
+ TRadioGroup *scopeGroup;
+ TPanel *Panel5;
+ TButton *Button2;
+ TComboBox *ComboBox1;
+ TListView *resultsLV;
+ TProgressBar *progressBar;
+ void __fastcall Button1Click(TObject *Sender);
+ void __fastcall TerminateSearch(TObject *Sender);
+ void __fastcall ListBox1DblClick(TObject *Sender);
+ void __fastcall ListBox1Click(TObject *Sender);
+ void __fastcall scopeGroupClick(TObject *Sender);
+ void __fastcall Button2Click(TObject *Sender);
+ void __fastcall FormShow(TObject *Sender);
+private: // User declarations
+ class TSearchThread : public TThread {
+ ListKey results;
+ string searchText;
+ int searchType;
+ int searchOptions;
+ SWKey *scope;
+ TForm2 *parent;
+ protected:
+ void __fastcall Execute();
+ public:
+ __fastcall TSearchThread(TForm2 *parent, string searchText, int searchType, int searchOptions, SWKey *scope = 0, bool CreateSuspended = false);
+ void __fastcall FillListBox(void);
+ static void searchProgressCallback(char status, void *searchFrm);
+ void __fastcall updateStatus(void);
+ void __fastcall updateProgressBar(void);
+ } *searchThread;
+ SWDispRTF *pvrtf;
+ ListKey results;
+ void populateRanges();
+public: // User declarations
+ char status;
+ ModMap::iterator target;
+ TPageControl *targetpc;
+// AnsiString CapText;
+
+ __fastcall TForm2(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TForm2 *Form2;
+//---------------------------------------------------------------------------
+#endif
+
diff --git a/apps/windoze/CBuilder5/BibleCS/splashfrm.cpp b/apps/windoze/CBuilder5/BibleCS/splashfrm.cpp
new file mode 100644
index 0000000..dffc53b
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/splashfrm.cpp
@@ -0,0 +1,16 @@
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+
+#include "splashfrm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TsplashForm *splashForm;
+//---------------------------------------------------------------------------
+__fastcall TsplashForm::TsplashForm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder5/BibleCS/splashfrm.dfm b/apps/windoze/CBuilder5/BibleCS/splashfrm.dfm
new file mode 100644
index 0000000..fac531e
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/splashfrm.dfm
@@ -0,0 +1,13590 @@
+object splashForm: TsplashForm
+ Left = 353
+ Top = 335
+ BorderIcons = []
+ BorderStyle = bsSingle
+ Caption = 'The SWORD Project'
+ ClientHeight = 351
+ ClientWidth = 684
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poScreenCenter
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Image1: TImage
+ Left = 0
+ Top = 0
+ Width = 684
+ Height = 238
+ Align = alTop
+ AutoSize = True
+ Center = True
+ Picture.Data = {
+ 07544269746D61703E9C0600424D3E9C06000000000036000000280000005E02
+ 0000EE0000000100180000000000089C0600120B0000120B0000000000000000
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000
+ 00000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000
+ 000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000
+ 00000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000
+ 000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000
+ 00000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000
+ 000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000
+ 0000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE000000000000000000000000000000CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE000000000000000000000000000000CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 0000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000
+ 00000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000
+ 000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000000000
+ 0000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000
+ 000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE000000000000000000000000000000CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE00000000000000000000000000000000000000
+ 0000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE000000000000000000000000000000000000000000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000
+ 00000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE000000000000000000000000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 0000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE00000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE000000000000000000000000000000CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE0000000000000000000000000000000000000000000000000000
+ 00000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000
+ 000000000000000000000000000000000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE000000000000000000000000000000000000
+ 000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000
+ 00000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE000000000000000000000000000000CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE00000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE00000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000
+ 0000000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE000000000000000000000000CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00
+ 0000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000000000000000CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE000000000000000000000000000000000000000000000000000000CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE000000000000000000000000CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000
+ 00000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE000000000000000000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000
+ 00000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE000000000000000000000000000000000000
+ 000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000
+ 00000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000
+ 0000000000000000000000000000CECFCECECFCECECFCECECFCECECFCE000000
+ 000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 000000000000000000000000000000000000CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE000000000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE000000000000000000000000000000000000
+ 000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000
+ 000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE000000000000000000000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000
+ 000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000
+ 00000000000000000000000000000000000000000000CECFCECECFCECECFCECE
+ CFCECECFCECECFCE000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000
+ 00000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE00
+ 0000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 0000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE000000000000000000000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000000000
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE000000000000000000000000000000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000
+ 000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE000000000000000000CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000
+ 000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000
+ 00000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000
+ 00000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE000000000000000000000000000000000000CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE000000000000000000000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00
+ 0000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 0000000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000000000
+ 0000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE000000000000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE000000000000000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000
+ 000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECE000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000
+ 000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 000000000000000000000000000000000000CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE000000000000000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000
+ 00000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE000000000000000000000000000000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000
+ 00000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000000000
+ 00000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE000000000000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE000000000000000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECE000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 0000000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000
+ 00000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000
+ 000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE000000000000000000000000000000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000
+ 000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000CECFCECE
+ CFCECECFCECECFCECECFCE000000000000000000000000000000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE000000000000000000CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE000000000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE000000000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000
+ 00000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000
+ 000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000
+ 0000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE000000000000000000000000000000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE00000000000000000000000000000000
+ 0000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE000000000000CECFCECECFCECECF
+ CECECFCECECFCE000000000000000000000000000000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE000000000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000
+ 000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000
+ 0000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00
+ 0000000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE000000000000000000000000000000000000000000CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE000000000000CECFCECECFCECECFCECECFCE
+ CECFCE000000000000000000000000000000CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000
+ 000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE00000000000000000000000000000000
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000000000
+ 00000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE000000000000000000000000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000
+ 00000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE000000000000000000000000000000000000000000CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE000000000000CECFCECECFCECECFCECECFCE00000000
+ 0000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000
+ 00000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000
+ 0000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000000000000000000000000000000000
+ 00000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE000000000000000000000000000000000000
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE000000000000000000000000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000
+ 000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE000000000000000000000000000000000000000000CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE000000000000CECFCECECFCECECFCECECFCE0000000000000000
+ 00000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000
+ 00000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 0000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE000000000000000000000000000000000000000000000000
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE000000000000000000000000000000000000CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE000000000000000000000000000000000000CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000000000
+ 0000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000
+ 000000000000000000000000000000000000CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000
+ 000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000
+ 000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000
+ 00000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE000000000000000000000000000000000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE000000000000000000000000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE000000000000000000000000000000000000CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000000000
+ 00000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000
+ 0000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE00000000000000000000000000000000
+ 0000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000
+ 000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 000000000000000000000000000000000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE000000000000000000000000000000000000CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000
+ 00000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE000000000000000000000000000000000000000000
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000
+ 00000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE000000000000000000000000000000000000CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE000000000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00
+ 0000000000000000000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000
+ 00000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000
+ 000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE000000000000000000000000000000000000CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000
+ 000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE000000000000000000000000000000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE000000000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000
+ 00000000000000000000000000000000000000000000CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000
+ 000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000
+ 0000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE000000000000000000000000000000000000CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE000000000000000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE000000000000000000000000000000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000
+ 000000000000000000000000000000000000CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000
+ 0000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000
+ 00000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE000000000000000000000000000000000000CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE0000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE000000000000000000000000000000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000000000
+ 0000000000CECFCE000000000000CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000
+ 00000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE000000000000000000000000000000000000
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000
+ 00000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000000000CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00
+ 0000000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 0000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000000000
+ 00CECFCE000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE000000000000000000000000000000000000CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000
+ 000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE000000000000000000000000000000000000CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE000000000000000000000000000000000000000000
+ 000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000
+ 00000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000
+ 00000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 0000000000000000000000CECFCECECFCE000000000000000000000000000000
+ 000000000000000000000000000000000000CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE000000000000000000000000000000000000CECFCE
+ 000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE000000000000000000000000000000CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE000000000000000000000000000000000000CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000
+ 0000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 000000000000000000000000000000000000CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE00000000000000000000000000000000000000
+ 0000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000
+ 000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000
+ 000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000
+ 00000000000000CECFCECECFCE00000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE000000000000000000000000000000000000CECFCECECFCE00
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE000000000000000000000000000000CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE000000000000000000000000000000000000CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000
+ 00000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 0000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE000000000000000000000000000000000000CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE00000000000000000000000000000000
+ 0000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000
+ 000000CECFCECECFCE0000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE000000000000000000000000000000000000CECFCECECFCE0000000000
+ 00000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE000000000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000
+ 00000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE000000000000000000000000000000000000
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000
+ 00000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE000000000000000000000000000000000000CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000
+ 00000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE000000000000000000000000000000000000CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000
+ 000000000000000000000000000000000000CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00
+ 0000000000000000000000000000000000CECFCECECFCE000000000000000000
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000
+ 000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE000000000000000000000000000000000000CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000
+ 000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE000000000000000000000000000000CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE000000000000000000000000000000000000
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE000000000000000000000000000000000000CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE000000000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 0000000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000
+ 00000000000000000000000000CECFCECECFCECECFCE000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000
+ 0000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE000000000000000000000000000000000000CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000000000
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE000000000000000000000000000000CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE000000000000000000000000000000CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE000000000000000000000000000000CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000
+ 00000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000
+ 000000000000000000CECFCECECFCECECFCE000000000000000000000000CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00
+ 0000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000
+ 00000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE000000000000000000000000000000000000CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE000000000000000000000000000000CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE000000000000000000000000000000CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000
+ 000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000000000
+ 0000000000CECFCECECFCECECFCE000000000000000000000000CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000
+ 00000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE000000000000000000000000000000000000
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000
+ 00000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE000000000000000000000000000000000000
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000
+ 00000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE000000000000000000000000CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00
+ 0000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000
+ 0000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000000000
+ 00CECFCECECFCECECFCECECFCE000000000000000000000000000000CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000
+ 000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE000000000000000000000000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000
+ 000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE000000000000000000000000000000000000CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000
+ 000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE000000000000000000000000CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE000000000000000000000000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000
+ 00000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 0000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000
+ 00000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE000000000000000000000000000000000000CECFCE
+ CECFCECECFCECECFCECECFCE000000000000000000000000000000000000CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000
+ 0000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE000000000000000000000000000000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000
+ 0000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE000000000000000000000000000000000000CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000
+ 0000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE000000000000000000000000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000
+ 000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000
+ 00000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000
+ 000000CECFCECECFCECECFCECECFCECECFCE000000000000000000000000CECF
+ CECECFCECECFCE000000000000000000000000000000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCE000000000000000000000000000000000000000000
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 0000000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000
+ 00000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE000000000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE000000000000000000000000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000000000
+ 0000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000
+ 000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCE000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCE000000000000000000000000000000000000000000CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000
+ 00000000000000000000CECFCECECFCECECFCECECFCECECFCE00000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE000000000000000000000000CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000
+ 00000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE000000000000000000000000000000000000CECF
+ CECECFCECECFCECECFCE00000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE000000000000000000000000000000000000CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE000000000000000000000000CECFCECE
+ CFCECECFCECECFCECECFCECECFCE000000000000000000000000000000000000
+ 000000000000CECFCECECFCECECFCECECFCECECFCE0000000000000000000000
+ 00000000000000000000000000000000000000000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE000000000000000000000000000000CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE000000000000000000000000000000CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000
+ 000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCE0000000000
+ 00000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE000000000000000000000000000000CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE000000000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE000000000000000000000000000000000000CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000
+ 00000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE000000000000000000000000000000000000CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000
+ 00000000000000000000000000000000000000000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000
+ 000000000000000000000000000000000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCE
+ 000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 0000000000000000000000000000CECFCECECFCE000000000000000000000000
+ 000000000000000000CECFCECECFCECECFCECECFCECECFCE0000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE000000000000000000000000000000000000CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000
+ 000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00
+ 0000000000000000000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE000000000000000000000000CECFCECECFCECECFCECECFCE00000000000000
+ 0000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000CECFCECECFCECECFCECECFCECECFCE000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 000000000000000000000000000000000000CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE00000000000000000000000000000000
+ 0000000000000000000000000000000000000000CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000
+ 000000000000000000000000CECFCECECFCE0000000000000000000000000000
+ 00000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00CECFCECECFCECECFCECECFCECECFCE00000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 0000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 0000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000000000
+ 00000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE000000000000CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00
+ 0000000000000000000000000000000000000000000000000000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00
+ 0000000000000000000000000000000000000000000000000000CECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 0000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000
+ 00000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCEA5A6A5A5A6A5A5A6A5CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000
+ 00000000000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE000000000000000000CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000
+ 000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000
+ 00000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000
+ 000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCEA5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000000000
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000
+ 000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE000000000000000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCEA5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE000000000000000000000000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEA5A6
+ A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE000000000000000000000000000000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE000000000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00
+ 0000000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCEA5A6A5A5A6A5A5A6A5A5A6A5
+ A5A6A5A5A6A5A5A6A5A5A6A5CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE000000000000000000000000000000000000CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE000000000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000
+ 00000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCEA5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5
+ A6A5A5A6A5CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE000000000000000000000000000000000000CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECE000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000
+ 00000000000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE000000000000000000000000000000000000000000
+ 000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCEA5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE000000000000000000000000000000000000CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECE000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE080808080C08080C08080C08080C08
+ 080C08080C08080C08080C08101010101010101010101010CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000
+ 000000000000000000000000000000CECFCECECFCECECFCE0000000000000000
+ 00000000000000000000000000000000000000000000000000000000CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEA5
+ A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCEBDBABDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBE
+ BDBDBEBDBDBEBDC6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6
+ C7C6C6C7C6C6C7C6C6C7C6CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000
+ 00000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0808080808080808
+ 08080808080808080808080808080C08080C08080C08080C08080C08080C0808
+ 0C08080C08101010101010101010101010101010101010101010101010CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE313031313031313031313031313031313031CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE4245424A494A4A49
+ 4A4A494A4A494ACECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE6365636365636365
+ 636365636B696B6B696B6B696B6B696B6B696B6B696B6B696B6B696B6B6D6B6B
+ 6D6B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B737173737173737173737173
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE00000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEA5A6A5A5A6A5A5A6
+ A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CEB5B6B5B5B6B5B5B6B5B5B6B5B5B6B5BDBABDBDBABDBDBABDBDBABDBDBABDBD
+ BABDBDBABDBDBABDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBD
+ C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C7C6C6C7C6C6C7
+ C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE080808080808080808080808080808080808
+ 080808080808080C08080C08080C08080C08080C08080C08080C08080C081010
+ 1010101010101010101010101010101010101010101010141010141010141010
+ 1410CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE313031313031313031313031313031313031CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE4A494A4A494A4A494A4A494A
+ 4A494ACECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE6365636365636365636365636365636B696B
+ 6B696B6B696B6B696B6B696B6B696B6B696B6B696B6B6D6B6B6D6B6B6D6B6B6D
+ 6B6B6D6B6B6D6B6B6D6B6B6D6B73717373717373717373717373717373717373
+ 7173737173CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE848684848684848684848684848684CECFCECECFCE
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCEA5A6A5A5A6A5A5A6A5A5A6A5A5A6A5
+ A5A6A5A5A6A5A5A6A5CECFCECECFCECECFCECECFCECECFCECECFCECECFCEADAA
+ ADADAEADADAEADADAEADADAEADADAEADCECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCEB5B2B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5
+ B5B6B5B5B6B5B5B6B5BDBABDBDBABDBDBABDBDBABDBDBABDBDBABDBDBABDBDBA
+ BDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDC6C3C6C6C3C6C6
+ C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6
+ C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6CECBCECECBCECECBCECECBCECECBCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE00040000040008080808080808080808080808080808080808080808080808
+ 0C08080C08080C08080C08080C08080C08080C08080C08101010101010101010
+ 1010101010101010101010101010101014101014101014101014101014101014
+ 10CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 313031313031313031313031313031313031CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE4A494A4A494A4A494A4A494A4A494A4A494A4A
+ 494ACECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE6365636365636365636365636365636365636B696B6B696B6B696B6B
+ 696B6B696B6B696B6B696B6B696B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B
+ 6B6D6B6B6D6B7371737371737371737371737371737371737371737371737371
+ 73737573737573CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE8486848486848486848486848486848486848C8A8C8C8A8C8C
+ 8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8E8C8C8E8C8C8E8C8C8E8CCECFCE
+ CECFCECECFCE8C8E8C8C8E8C8C8E8C9492949492949492949492949492949492
+ 94949294949294949694949694949694949694949694CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCEA5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5
+ A6A5CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEADAEADADAEAD
+ ADAEADADAEADADAEADADAEADADAEADADAEADB5B2B5B5B2B5B5B2B5B5B2B5B5B2
+ B5B5B2B5B5B2B5B5B2B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5B5
+ B6B5BDBABDBDBABDBDBABDBDBABDBDBABDBDBABD000000000000000000000000
+ 000000000000BDBEBDBDBEBDBDBEBDBDBEBDC6C3C6C6C3C6C6C3C6C6C3C6C6C3
+ C6C6C3C6C6C3C6C6C3C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6C6
+ C7C6C6C7C6C6C7C6CECBCECECBCECECBCECECBCECECBCECECBCECECBCECECBCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000400000400
+ 080808080808080808080808080808080808080808080808080C08080C08080C
+ 08080C08080C08080C08080C08080C0810101010101010101010101010101010
+ 1010101010101010101410101410101410101410101410101410101410101410
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE31303131303131
+ 3031313031313031313431313431313431CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE4A494A4A494A4A494A4A494A4A494A4A494A4A494ACECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE636563636563
+ 6365636365636365636365636365636B696B6B696B6B696B6B696B6B696B6B69
+ 6B6B696B6B696B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B73
+ 7173737173737173737173737173737173737173737173737173737573737573
+ 737573737573737573737573CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE8486848486848486848486848486848C8A8C8C8A8C8C8A8C8C8A8C8C8A
+ 8C8C8A8C8C8A8C8C8A8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C
+ 8E8C8C8E8C8C8E8C949294949294949294949294949294949294949294949294
+ 949694949694949694949694949694949694CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCEADAEADADAEADADAEADAD
+ AEADADAEADADAEADADAEADB5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B2B5
+ B5B2B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5BDBABDBDBA
+ BDBDBABDBDBABDBDBABDBDBABD00000000000000000000000000000000000000
+ 0000000000BDBEBDBDBEBDC6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6
+ C6C3C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7
+ C6CECBCECECBCECECBCECECBCECECBCECECBCECECBCECECBCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE00040000040000040008080808080808
+ 0808080808080808080808080808080808080C08080C08080C08CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE101410101410101410101410101410101410101410101410181818181818CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE3130313130313130313130
+ 31313431313431313431313431CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE4A494A4A494A4A494A4A494A4A494A4A494A4A4D4ACECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE63656363656363656363656363656363
+ 65636365636365636B696B6B696B6B696B6B696B6B696B6B696B6B696B6B696B
+ 6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B7371737371737371
+ 7373717373717373717373717373717373717373757373757373757373757373
+ 75737375737375737375737B797BCECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE84
+ 86848486848486848486848C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8A8C
+ 8C8A8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E
+ 8C94929494929494929494929494929494929494929494929494969494969494
+ 9694949694949694949694949694CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEA5A6A5A5A6A5A5
+ A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCEADAEADADAEADADAEADADAEADADAE
+ ADADAEADB5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B6B5B5
+ B6B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5BDBABDBDBABDBDBABDBDBABD
+ BDBABDBDBABDBDBABD0000000000000000000000000000000000000000000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCEC6C7C6C6C7C6C6C7C6C6C7C6CECBCECECBCE
+ CECBCECECBCECECBCECECBCECECBCECECBCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0004000004000808080808080808080808080808
+ 08080808080808080808080C08080C08080C08CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE101410101410101410101410101410181818181818181818181818CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE313031313031313031313431313431
+ 313431313431313431CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE4A49
+ 4A4A494A4A494A4A494A4A494A4A494A4A4D4A4A4D4A4A4D4ACECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE6361636361636365636365636365636365636365636365636365636365
+ 636B696B6B696B6B696BCECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE6B6D6B6B6D6B6B6D6B737173737173737173737173737173
+ 7371737371737371737371737375737375737375737375737375737375737375
+ 737375737B797B7B797B7B797B7B797BCECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE8486848486
+ 848486848C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8E8C8C
+ 8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C949294949294
+ 9492949492949492949492949492949492949496949496949496949496949496
+ 94949694949694949694CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCEA5A6A5A5A6A5A5A6A5A5A6A5A5A6
+ A5A5A6A5A5A6A5A5A6A5A5A6A5ADAAADCECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCEADAEADADAEADADAEADADAEADADAEADB5B2B5
+ B5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B6B5B5B6B5B5B6B5B5B6
+ B5B5B6B5B5B6B5B5B6B5B5B6B5BDBABDBDBABDBDBABDBDBABDBDBABDBDBABDBD
+ BABDBDBABD000000000000000000000000000000000000000000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECBCECECBCECECBCECECBCECE
+ CBCECECBCECECBCECECBCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE000400080808080808080808080808080808080808080808
+ 080808080C08080C08080C08CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE101410101410181818181818181818181818181818181818CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE31303131303131343131343131343131343131
+ 3431313431CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE4A494A4A494A
+ 4A494A4A494A4A494A4A4D4A4A4D4A4A4D4A4A4D4ACECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE63616363
+ 61636365636365636365636365636365636365636365636365636B696B6B696B
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE7371737375737375737375737375737375737375737375737375737B797B
+ 7B797B7B797B7B797B7B797B7B797B7B797BCECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE8C8E8C8C8E8C8C8E8C8C8E
+ 8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C94929494929494929494929494
+ 9294949294949294949294949694949694949694949694949694949694949694
+ 9496949C9A9CCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCEA5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5
+ A5A6A5A5A6A5ADAAADCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCEB5B2B5B5B2B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5
+ B5B6B5B5B6B5BDBABDBDBABDBDBABDBDBABDBDBABDBDBABDBDBABDBDBABDBDBE
+ BD000000000000000000000000000000000000000000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECBCECECBCECECBCECECB
+ CECECBCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCED6
+ D3D6CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE080808080808080808080808080808080808080808080808080C0808
+ 0C08080C08CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE181818181818181818181818181818181818181818181818CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE3130313130313134313134313134313134313134313134313134
+ 31313431CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE4A494A4A494A4A494A4A494A4A
+ 494A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4ACECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE6361636361636365636365
+ 636365636365636365636365636365636365636B696BCECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE7375737375737375737375737375737B797B7B797B7B797B7B
+ 797B7B797B7B797B7B797B7B797B7B7D7BCECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE8C8E8C8C8E8C8C8E8C8C8E8C
+ 8C8E8C8C8E8C8C8E8C8C8E8C9492949492949492949492949492949492949492
+ 94949294949694CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCEA5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5AD
+ AAADCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCEB5B6B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5BD
+ BABDBDBABDBDBABDBDBABDBDBABDBDBABDBDBABDBDBABDBDBEBDBDBEBD000000
+ 000000000000000000000000000000000000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECBCECECBCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCED6D3D6D6D3D6D6D3
+ D6CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 080808080808080808080808080808080808080808080C08080C08CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE181818181818181818181818181818181818181C18181C18CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE313031313431313431313431313431313431313431313431313431393839
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE4A494A4A494A4A494A4A494A4A4D4A4A4D
+ 4A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4ACECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE636163636163636563636563636563636563
+ 6365636365636365636365636B696BCECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE7375737B797B7B797B7B797B7B797B7B797B7B79
+ 7B7B797B7B797B7B7D7B7B7D7B7B7D7B7B7D7BCECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE8C8E8C8C8E8C8C8E8C8C8E8C8C
+ 8E8C8C8E8C949294949294949294949294949294949294949294949294CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEA5A6A5
+ A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5ADAAADCECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCEB5B6B5B5B6B5B5B6B5B5B6B5B5B6B5BDBABDBDBABDBDBA
+ BDBDBABDBDBABDBDBABDBDBABDBDBABDBDBEBDBDBEBDBDBEBDCECFCE00000000
+ 0000000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCED6D3D6D6D3D6D6D3D6D6D3D6D6D3D6
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE08080808
+ 0808080808080808080808080808080C08080C08080C08CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE181818181818181818181818181C18181C18181C18181C18CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE3134
+ 31313431313431313431313431313431313431313431393839393839CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE4A494A4A494A4A494A4A4D4A4A4D4A4A4D4A4A4D4A
+ 4A4D4A4A4D4A4A4D4A4A4D4ACECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE63616363616363656363656363656363656363656363656363
+ 65636365636B696BCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE7B797B7B797B7B797B7B797B7B797B7B797B
+ 7B7D7B7B7D7B7B7D7B7B7D7B7B7D7B7B7D7BCECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE8C8E8C8C8E8C8C8E8C8C8E8C9492
+ 94949294949294949294949294949294949294949294CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEA5A6A5A5A6A5A5
+ A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5ADAAADADAAADCECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCEB5B6B5B5B6B5B5B6B5B5B6B5BDBABDBDBABDBDBABDBDBABDBDBABD
+ BDBABDBDBABDBDBABDBDBEBDBDBEBDBDBEBDCECFCECECFCE0000000000000000
+ 00000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCED6D3D6D6D3D6D6D3D6D6D3D6D6D3D6D6D3D6D6D3D6CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0808080808080808
+ 08080808080808080C08080C08080C08CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE1818
+ 18181818181818181C18181C18181C18181C18181C18181C18CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE313431313431313431
+ 313431313431313431313431313431393839393839393839393839CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE4A494A4A494A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A4A
+ 4D4A4A4D4A525152CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 636163636163636563636563636563636563636563636563636563636563CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE7B797B7B797B7B797B7B7D7B7B7D7B7B
+ 7D7B7B7D7B7B7D7B7B7D7B7B7D7B7B7D7BCECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE8C8E8C8C8E8C8C8E8C949294949294949294
+ 949294949294949294949294949294949694CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCEA5A6A5A5A6A5A5A6A5A5A6A5A5A6
+ A5A5A6A5A5A6A5A5A6A5ADAAADADAAADCECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCEB5B6B5B5B6B5BDBABDBDBABDBDBABDBDBABDBDBABDBDBABDBDBABDBD
+ BABDBDBEBDBDBEBDBDBEBDCECFCECECFCECECFCECECFCECECFCE000000000000
+ 000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCED6D3D6D6D3D6D6D3D6D6D3D6D6D3D6D6D3D6D6D3D6D6D3D6D6D7D6CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE080808080808080808080808
+ 080C08080C08080C08080C08CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE181818
+ 181C18181C18181C18181C18181C18181C18181C18181C18CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE31343131343131343131343131
+ 3431313431313431393839393839393839393839393839CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 4A494A4A494A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A5251
+ 52525152CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE63616363616363
+ 6563636563636563636563636563636563636563636563CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE7B797B7B7D7B7B7D7B7B7D7B7B7D7B7B7D
+ 7B7B7D7B7B7D7B7B7D7B848284848284CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE8C8E8C94929494929494929494929494929494929494
+ 9294949294949294949694949694CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCEA5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5
+ A5A6A5ADAAADADAAADCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ B5B6B5BDBABDBDBABDBDBABDBDBABDBDBABDBDBABDBDBABDBDBABDBDBEBDBDBE
+ BDBDBEBDCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCED6D3D6D6
+ D3D6D6D3D6D6D3D6D6D3D6D6D3D6D6D3D6D6D3D6D6D7D6D6D7D6D6D7D6CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE080808080808080808080C08080C0808
+ 0C08080C08CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE181C18181C1818
+ 1C18181C18181C18181C18181C18181C18212021CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE3134313134313134313134313134313134
+ 31393839393839393839393839393839393839CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE4A494A4A
+ 4D4A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A525152525152525152
+ 525152CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE6361636361636361636365636365636365
+ 63636563636563636563636563636563CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE7B7D7B7B7D7B7B7D7B7B7D7B7B7D7B7B7D7B
+ 7B7D7B848284848284848284848284CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE9492949492949492949492949492949492949492949492
+ 94949694949694949694CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCEA5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5ADAAADAD
+ AAADCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEBDBABDBD
+ BABDBDBABDBDBABDBDBABDBDBABDBDBABDBDBABDBDBEBDBDBEBDBDBEBDCECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCED6D3D6D6D3
+ D6D6D3D6D6D3D6D6D3D6D6D3D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE080808080808080C08080C08080C08080C08080C
+ 08CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE181C18181C18181C
+ 18181C18181C18181C18212021212021CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE313431313431313431313431313431313431393839393839
+ 393839393839393839393839393839CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE4A4D4A4A4D4A4A4D
+ 4A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A525152525152525152525152525152CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE636163636163636163636563636563636563636563636563
+ 636563636563636563CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE7B7D7B7B7D7B7B7D7B7B7D7B7B7D7B84828484
+ 8284848284848284848284848284CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE949294949294949294949294949294949294949294949694949694
+ 949694CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEA5A6A5
+ A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5ADAAADADAAADADAAADCECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEBDBABDBDBABDBDBA
+ BDBDBABDBDBABDBDBABDBDBABDBDBEBDBDBEBDBDBEBDBDBEBDCECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCED6D3D6D6D3D6
+ D6D3D6D6D3D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE080808080C08080C08080C08080C08080C08CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE181C18181C18181C18181C18
+ 181C18212021212021212021CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE31343131343131343131343131343139383939383939383939383939
+ 3839393839393839393839393839CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE4A4D4A4A4D4A4A4D4A4A4D4A
+ 4A4D4A4A4D4A4A4D4A525152525152525152525152525152525152CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE63616363616363616363656363656363656363656363656363656363656363
+ 6563CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE7B7D7B7B7D7B7B7D7B8482848482848482848482
+ 84848284848284848284848284CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE949294949294949294949294949294949294949694949694949694949694CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCEA5A6A5A5A6A5A5A6A5A5
+ A6A5A5A6A5A5A6A5A5A6A5ADAAADADAAADADAAADADAAADCECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCEBDBABDBDBABDBDBABDBDBABD
+ BDBABDBDBABDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDCECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCED6D3D6D6D3D6D6
+ D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE080C08080C08080C08080C08080C08080C08CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE181C18181C18181C18181C1821202121
+ 2021212021212021CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 3134313134313134313134313938393938393938393938393938393938393938
+ 39393839393839393839CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A4A
+ 4D4A525152525152525152525152525152525152525152CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE636163636163
+ 636163636563636563636563636563636563636563636563636563CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE7B7D7B848284848284848284848284848284848284
+ 848284848284848684848684CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE949294
+ 949294949294949294949694949694949694949694949694949694CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCEA5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6
+ A5A5A6A5ADAAADADAAADADAAADADAAADCECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCEBDBABDBDBABDBDBABDBDBABDBDBABDBD
+ BEBDBDBEBDBDBEBDBDBEBDBDBEBDCECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCED6D7D6D6D7D6D6D7
+ D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6DEDBDEDEDBDECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 080C08080C08080C08080C08080C08080C08CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE181C18181C18181C182120212120212120212120
+ 21212021CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE31343131343131
+ 3431313431393839393839393839393839393839393839393839393839393839
+ 393839393C39393C39CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A5251525251
+ 52525152525152525152525152525152525152525552CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE63616363616363616363656363
+ 6563636563636563636563636563636563636563CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE84828484828484828484828484828484828484828484
+ 8684848684848684848684CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE94929494929494
+ 9294949694949694949694949694949694949694949694CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCEA5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5ADAAAD
+ ADAAADADAAADADAAADCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCEBDBABDBDBABDBDBABDBDBABDBDBEBDBDBEBDBDBE
+ BDBDBEBDBDBEBDBDBEBDCECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCED6D7D6D6D7D6D6D7D6D6D7D6
+ D6D7D6D6D7D6D6D7D6DEDBDEDEDBDEDEDBDECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE080C0808
+ 0C08080C08080C08080C08080C08CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE181C18181C18212021212021212021212021212021212021
+ 212021CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE3134313134313134313938
+ 39393839393839393839393839393839CECFCE393839393839393839393C3939
+ 3C39393C39CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A525152525152525152525152
+ 525152525152525152525152525552525552CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE6361636361636365636365636365636365
+ 63636563636563636563636563CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE8482848482848482848482848482848486848486848486
+ 84848684848684CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE9492949492949496949496
+ 94949694949694949694949694949694CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCEA5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5ADAAADADAAADADAAADAD
+ AAADCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCEBDBABDBDBABDBDBABDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBD
+ BDBEBDBDBEBDCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCED6D7D6D6D7D6D6D7D6D6D7D6D6
+ D7D6DEDBDEDEDBDEDEDBDEDEDBDEDEDBDECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE080C08080C08080C
+ 08080C08080C08101010CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE181C18212021212021212021212021212021212021212021212021CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE313431313431393839393839393839
+ 393839393839393839393839CECFCE393839393839393C39393C39393C39393C
+ 39CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE4A4D
+ 4A4A4D4A4A4D4A4A4D4A4A4D4A52515252515252515252515252515252515252
+ 5152525152525552525552525552525552CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE636163636163636563636563636563636563636563636563
+ 6365636365636B696BCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE848284848284848284848284848684848684848684848684848684
+ 848684848684CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE949294949694949694949694949694
+ 949694949694949694949694CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEA5A6A5
+ A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5ADAAADADAAADADAAADADAAADADAAADCECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCEBDBABDBDBABDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBD
+ BEBDCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCED6D7D6D6D7D6D6D7D6D6D7D6DEDBDEDEDB
+ DEDEDBDEDEDBDEDEDBDEDEDBDECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE080C08080C08080C08080C08
+ 101010101010CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 212021212021212021212021212021212021212021212021212421CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE31343131343139383939383939383939383939383939
+ 3839393839CECFCECECFCE393839393C39393C39393C39393C39393C39393C39
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE4A4D4A4A4D4A4A4D4A
+ 4A4D4A4A4D4A5251525251525251525251525251525251525251525251525255
+ 52525552525552525552525552CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE6361636365636365636365636365636365636365636365636365636B
+ 696BCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE84828484828484868484868484868484868484868484868484868484
+ 8684CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE94969494969494969494969494969494969494
+ 96949496949C9A9CCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEA5A6A5A5A6A5A5
+ A6A5A5A6A5A5A6A5ADAAADADAAADADAAADADAAADADAAADCECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ BDBABDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDC6C3C6CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCED6D7D6D6D7D6DEDBDEDEDBDEDEDBDEDEDBDE
+ DEDBDEDEDBDEDEDBDEDEDBDECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE080C08080C08080C0810101010101010
+ 1010CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE21202121
+ 2021212021212021212021212021212021212421212421CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE3134313938393938393938393938393938393938393938393938
+ 39CECFCECECFCECECFCE393C39393C39393C39393C39393C39393C39CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE4A4D4A4A4D4A4A4D4A4A4D4A52
+ 5152525152525152525152525152525152525152CECFCE525552525552525552
+ 525552525552525552CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE636163
+ 6365636365636365636365636365636365636365636365636B696B6B696BCECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE8486848486848486848486848486848486848486848486848C8A8C8C8A
+ 8CCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE9496949496949496949496949496949496949496949C9A
+ 9C9C9A9CCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCEA5A6A5A5A6A5A5A6A5A5A6A5A5A6
+ A5ADAAADADAAADADAAADADAAADADAAADADAAADCECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEBDBEBDBD
+ BEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDC6C3C6C6C3C6CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCED6D7D6DEDBDEDEDBDEDEDBDEDEDBDEDEDBDEDEDBDEDE
+ DBDEDEDBDEDEDFDEDEDFDECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE080C08080C08101010101010101010CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE2120212120212120
+ 21212021212021212021212421212421212421CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE393839393839393839393839393839393839393839393839393839CECFCE
+ CECFCECECFCE393C39393C39393C39393C39393C39393C39CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE4A4D4A4A4D4A4A4D4A4A4D4A5251525251525251
+ 52525152525152525152525152525152CECFCE52555252555252555252555252
+ 5552525552525552CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE63616363656363656363
+ 65636365636365636365636365636365636B696B6B696BCECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE84
+ 86848486848486848486848486848486848486848C8A8C8C8A8C8C8A8C8C8A8C
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE9496949496949496949496949496949496949C9A9C9C9A9C9C9A9C
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCEA5A6A5A5A6A5A5A6A5A5A6A5A5A6A5ADAAADADAAAD
+ ADAAADADAAADADAAADADAAADCECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEBDBEBDBDBEBDBDBE
+ BDBDBEBDBDBEBDBDBEBDBDBEBDC6C3C6C6C3C6C6C3C6CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCEDEDBDEDEDBDEDEDBDEDEDBDEDEDBDEDEDBDEDEDBDEDEDF
+ DEDEDFDEDEDFDECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE080C08101010101010101010101010CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE212021212021212021212021
+ 212021212421212421212421212421CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE3938393938
+ 39393839393839393839393839393839393839393839CECFCECECFCECECFCECE
+ CFCE393C39393C39393C39393C39393C39424142424142CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE4A4D4A4A4D4A4A4D4A525152525152525152525152525152
+ 525152525152525152CECFCECECFCE5255525255525255525255525255525255
+ 52525552CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE6365636365636365636365636365
+ 636365636365636365636B696B6B696BCECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE8486
+ 848486848486848486848486848C8A8C8C8A8C8C8A8C8C8A8C8C8A8CCECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE9496949496949496949496949496949C9A9C9C9A9C9C9A9C9C9A9CCECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCEA5A6A5A5A6A5A5A6A5A5A6A5A5A6A5ADAAADADAAADADAAADADAAADAD
+ AAADADAAADCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCEBDBEBDBDBEBDBDBEBDBDBEBD
+ BDBEBDBDBEBDC6C3C6C6C3C6C6C3C6C6C3C6CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCEDEDBDEDEDBDEDEDBDEDEDBDEDEDBDEDEDBDEDEDFDEDEDFDEDEDFDE
+ DEDFDEDEDFDECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE101010101010101010101010101010CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE21202121202121202121202121242121
+ 2421212421212421212421CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE393839393839393839
+ 393839393839393839393839393839393839CECFCECECFCECECFCECECFCECECF
+ CE393C39393C39393C39424142424142424142CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE4A4D4A4A4D4A4A4D4A52515252515252515252515252515252515252515252
+ 5152525552CECFCECECFCECECFCE525552525552525552525552525552525552
+ 5A595ACECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE636563636563636563636563636563636563
+ 6365636B696B6B696B6B696BCECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE848684848684
+ 8486848486848C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8A8CCECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE949694
+ 9496949496949496949C9A9C9C9A9C9C9A9C9C9A9C9C9A9CCECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ A5A6A5A5A6A5A5A6A5A5A6A5ADAAADADAAADADAAADADAAADADAAADADAAADADAA
+ ADCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCEBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDC6
+ C3C6C6C3C6C6C3C6C6C3C6C6C3C6CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CEDEDBDEDEDBDEDEDBDEDEDBDEDEDBDEDEDFDEDEDFDEDEDFDEDEDFDEDEDFDEDE
+ DFDECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 101010101010101010101010101010CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE2120212120212120212120212124212124212124212124
+ 21212421212421CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE39383939383939383939383939383939
+ 3839393839393839393839393C39CECFCECECFCECECFCECECFCECECFCE393C39
+ 393C39424142424142424142424142CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE4A4D4A
+ 4A4D4A5251525251525251525251525251525251525251525251525255525255
+ 52CECFCECECFCECECFCE5255525255525255525255525255525A595A5A595ACE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE6365636365636365636365636365636365636365636B696B6B
+ 696B6B696BCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE8486848486848486848C
+ 8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8A8CCECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE94969494969494
+ 96949C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9CCECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEA5A6A5A5A6A5A5
+ A6A5A5A6A5ADAAADADAAADADAAADADAAADADAAADADAAADADAAADCECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCEBDBEBDBDBEBDBDBEBDBDBEBDC6C3C6C6C3C6C6C3
+ C6C6C3C6C6C3C6C6C3C6CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ DEDBDEDEDBDEDEDBDEDEDFDEDEDFDEDEDFDEDEDFDEDEDFDEDEDFDEDEDFDEDEDF
+ DECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE10101010
+ 1010101010101010101010CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE212021212021212021212421212421212421212421212421212421
+ 212421CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE3938393938393938393938393938393938393938
+ 39393839393C39CECFCECECFCECECFCECECFCECECFCECECFCE393C3942414242
+ 4142424142424142424142CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE4A4D4A52515252
+ 5152525152525152525152525152525152525152525552525552CECFCECECFCE
+ CECFCECECFCE5255525255525255525255525A595A5A595A5A595ACECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE6365636365636365636365636365636365636B696B6B696B6B696BCECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE8486848C8A8C8C8A8C8C8A
+ 8C8C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8E8C8C8E8CCECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE9496949496949C9A9C9C9A
+ 9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9CCECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCEA5A6A5A5A6A5A5A6A5A5A6A5ADAA
+ ADADAAADADAAADADAAADADAAADADAAADADAAADADAAADCECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCEBDBEBDBDBEBDBDBEBDC6C3C6C6C3C6C6C3C6C6C3C6C6C3C6
+ C6C3C6C6C3C6CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEDEDBDEDE
+ DBDEDEDFDEDEDFDEDEDFDEDEDFDEDEDFDEDEDFDEDEDFDEDEDFDEE7E3E7CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE1010101010101010101010
+ 10101010101010CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE2120
+ 21212021212021212421212421212421212421212421212421212421212421CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE393839393839393839393839393839393839393839393C39
+ 393C39CECFCECECFCECECFCECECFCECECFCECECFCECECFCE4241424241424241
+ 42424142424142424142CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE4A4D4A5251525251525251525251
+ 52525152525152525152525152525552525552525552CECFCECECFCECECFCECE
+ CFCECECFCE5255525255525A595A5A595A5A595A5A595A5A595ACECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE63
+ 65636365636365636365636365636B696B6B696B6B696B6B696BCECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE8C8A8C8C8A8C8C8A8C8C8A8C8C8A8C
+ 8C8A8C8C8A8C8C8A8C8C8E8C8C8E8C8C8E8CCECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE9496949C9A9C9C9A9C9C9A9C9C9A9C
+ 9C9A9C9C9A9C9C9A9C9C9A9CCECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCEA5A6A5A5A6A5A5A6A5A5A6A5ADAAADADAAADADAAAD
+ ADAAADADAAADADAAADADAAADADAAADCECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCEBDBEBDBDBEBDC6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6
+ C3C6CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEDEDBDEDEDFDEDEDF
+ DEDEDFDEDEDFDEDEDFDEDEDFDEDEDFDEDEDFDEE7E3E7E7E3E7E7E3E7CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE212021212021
+ 212421212421212421212421212421212421212421212421292829CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE393839393839393839393839393839393839393C39393C39393C39CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE424142424142424142424142
+ 424142424142CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE525152525152525152525152525152525152
+ 525152525152525552525552525552525552CECFCECECFCECECFCECECFCECECF
+ CE5255525A595A5A595A5A595A5A595A5A595A5A595ACECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE6365636365636365
+ 636365636365636B696B6B696B6B696B6B696B6B696BCECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE8C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C
+ 8A8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8CCECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C
+ 9A9C9C9A9C9C9E9CCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCEA5A6A5A5A6A5A5A6A5ADAAADADAAADADAAADADAAADADAAADAD
+ AAADADAAADADAAADCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ BDBEBDC6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C7C6CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEDEDFDEDEDFDEDEDFDE
+ DEDFDEDEDFDEDEDFDEDEDFDEE7E3E7E7E3E7E7E3E7E7E3E7CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE21202121202121242121242121
+ 2421212421212421212421212421212421292829292829CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE393839
+ 393839393839393839393839393839393C39393C39393C39CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE42414242414242414242414242414242
+ 4542CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE52515252515252515252515252515252515252515252
+ 5552525552525552525552CECFCECECFCECECFCECECFCECECFCECECFCE5A595A
+ 5A595A5A595A5A595A5A595A5A595A5A595ACECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE636563636563636563636563
+ 6B696B6B696B6B696B6B696B6B696BCECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE8C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8E8C8C8E
+ 8C8C8E8C8C8E8C8C8E8C8C8E8CCECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9E
+ 9C9C9E9CCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ A5A6A5A5A6A5A5A6A5ADAAADADAAADADAAADADAAADADAAADADAAADADAAADADAA
+ ADADAAADCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEC6C3C6C6
+ C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C7C6C6C7C6CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCEDEDFDEDEDFDEDEDFDEDEDFDEDE
+ DFDEDEDFDEE7E3E7E7E3E7E7E3E7E7E3E7E7E3E7CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE2120212124212124212124212124212124
+ 21212421212421212421292829292829292829CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE39383939383939
+ 3839393839393839393C39393C39393C39393C39CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE424142424142424142424142424542424542CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE5251525251525251525251525251525251525251525255525255525255
+ 52525552525552CECFCECECFCECECFCECECFCECECFCECECFCECECFCE5A595A5A
+ 595A5A595A5A595A5A595A5A595A5A595ACECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE6365636365636365636B696B6B696B6B
+ 696B6B696B6B696B6B696BCECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE8C8A8C8C8A8C8C8A8C8C8A8C8C8E8C8C8E8C8C8E8C8C8E8C
+ 8C8E8C8C8E8C8C8E8CCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9E9C9C9E9C9C9E9C
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEA5A6A5A5A6A5A5
+ A6A5ADAAADADAAADADAAADADAAADADAAADADAAADADAAADADAAADADAAADCECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEC6C3C6C6C3C6C6C3
+ C6C6C3C6C6C3C6C6C3C6C6C3C6C6C7C6C6C7C6C6C7C6CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCEDEDFDEDEDFDEDEDFDEDEDFDEDEDFDEE7E3
+ E7E7E3E7E7E3E7E7E3E7E7E3E7E7E3E7CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE212021212421212421212421212421212421212421212421
+ 212421292829292829292829CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE3938393938393938393938
+ 39393C39393C39393C39393C39393C39CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE424142424142424542424542424542424542CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE52
+ 5152525152525152525152525152525152525552525552525552525552525552
+ 525552CECFCECECFCECECFCECECFCECECFCECECFCECECFCE5A595A5A595A5A59
+ 5A5A595A5A595A5A595A5A5D5ACECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE6365636365636365636B696B6B696B6B696B6B696B6B69
+ 6B6B696B6B696BCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE8C8A8C8C8A8C8C8A8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C
+ 8E8C8C8E8C8C8E8CCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9E9C9C9E9C9C9E9C9C9E9CCECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCEA5A6A5A5A6A5A5A6A5ADAAADADAA
+ ADADAAADADAAADADAAADADAAADADAAADADAAADADAAADCECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCEC6C3C6C6C3C6C6C3C6C6C3C6
+ C6C3C6C6C3C6C6C7C6C6C7C6C6C7C6C6C7C6CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCEDEDFDEDEDFDEDEDFDEDEDFDEE7E3E7E7E3E7E7E3E7
+ E7E3E7E7E3E7E7E3E7E7E3E7E7E3E7CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE21202121242121242121242121242121242121242121242121242129282929
+ 2829292829292829CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE393839393839393839393839393C39393C39
+ 393C39393C39393C39CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE424142424542424542424542424542424542CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE5251525251
+ 52525152525152525152525552525552525552525552525552525552CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE5A595A5A595A5A595A5A595A
+ 5A595A5A5D5A5A5D5ACECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE6365636365636B696B6B696B6B696B6B696B6B696B6B696B6B696B
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE8C8A8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E
+ 8C949294CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE9C9A9C
+ 9C9A9C9C9A9C9C9A9C9C9E9C9C9E9C9C9E9C9C9E9C9C9E9CCECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCEA5A6A5A5A6A5ADAAADADAAADADAAADADAAAD
+ ADAAADADAAADADAAADADAAADADAAADADAEADCECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCEC6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6
+ C7C6C6C7C6C6C7C6C6C7C6C6C7C6CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCEDEDFDEDEDFDEDEDFDEE7E3E7E7E3E7E7E3E7E7E3E7E7E3E7E7
+ E3E7E7E3E7E7E3E7E7E7E7CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE212021212421
+ 2124212124212124212124212124212124212124212928292928292928292928
+ 29CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE393839393839393839393C39393C39393C39393C3939
+ 3C39393C39CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE424542424542424542424542424542424542CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE525152525152525152525152
+ 525152525552525552525552525552525552525552525552CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE5A595A5A595A5A595A5A5D5A5A
+ 5D5A5A5D5A5A5D5ACECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE6365
+ 636365636B696B6B696B6B696B6B696B6B696B6B696B6B696B6B696BCECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE8C
+ 8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C949294949294
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE9C9A9C9C9A9C9C
+ 9A9C9C9E9C9C9E9C9C9E9C9C9E9C9C9E9C9C9E9CCECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCEA5A6A5A5A6A5ADAAADADAAADADAAADADAAADADAAADADAAADAD
+ AAADADAAADADAAADADAEADCECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCEC6C3C6C6C3C6C6C3C6C6C3C6C6C7C6C6C7C6C6C7
+ C6C6C7C6C6C7C6C6C7C6CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCEDEDFDEDEDFDEE7E3E7E7E3E7E7E3E7E7E3E7E7E3E7E7E3E7E7E3E7E7E3
+ E7E7E7E7E7E7E7CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE21202121242121242121242121
+ 2421212421212421212421212421292829292829292829292829292829CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE393839393839393C39393C39393C39393C39393C39393C39CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE424542424542424542424542424542424542CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE52515252515252515252515252555252
+ 5552525552525552525552525552525552525552CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE5A595A5A595A5A5D5A5A5D5A5A5D5A5A5D
+ 5A5A5D5ACECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE6365636B696B
+ 6B696B6B696B6B696B6B696B6B696B6B696B6B696B6B6D6BCECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE8C8E8C8C8E
+ 8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C949294949294949294CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE9C9A9C9C9A9C9C9E9C9C9E
+ 9C9C9E9C9C9E9C9C9E9C9C9E9C9C9E9CCECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ A5A6A5A5A6A5ADAAADADAAADADAAADADAAADADAAADADAAADADAAADADAAADADAA
+ ADADAEADADAEADCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCEC6C3C6C6C3C6C6C3C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6
+ C6C7C6C6C7C6CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCEE7E3E7E7E3E7E7E3E7E7E3E7E7E3E7E7E3E7E7E3E7E7E3E7E7E7E7E7E7E7
+ E7E7E7CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECE000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE2120212120212124212124212124212124212124212124
+ 21212421212421292829292829292829292829292829CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE39
+ 3839393839393C39393C39393C39393C39393C39393C39393C39CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE4245
+ 424245424245424245424245424A494ACECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE5251525251525251525255525255525255525255
+ 52525552525552525552525552CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE5A595A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE6B696B6B696B6B696B6B
+ 696B6B696B6B696B6B696B6B696B6B6D6BCECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE8C8E8C8C8E8C8C8E8C
+ 8C8E8C8C8E8C8C8E8C8C8E8C949294949294949294949294CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE9C9A9C9C9E9C9C9E9C9C9E9C9C9E9C
+ 9C9E9C9C9E9C9C9E9C9C9E9CCECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEA5A6A5A5A6A5AD
+ AAADADAAADADAAADADAAADADAAADADAAADADAAADADAAADADAAADADAEADADAEAD
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCEC6C3C6C6C3C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6C6
+ C7C6CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEE7E3
+ E7E7E3E7E7E3E7E7E3E7E7E3E7E7E3E7E7E3E7E7E7E7E7E7E7E7E7E7E7E7E7CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECE000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE21
+ 2021212021212021212421212421212421212421212421212421212421212421
+ 292829292829292829292829292829CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE393839393C
+ 39393C39393C39393C39393C39393C39393C39393C39CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE424542424542
+ 4245424245424A494A4A494ACECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE525152525152525152525552525552525552525552525552525552
+ 525552525552525552CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5ACECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE6B696B6B696B6B696B6B696B6B696B6B69
+ 6B6B696B6B696B6B6D6B6B6D6BCECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE8C8E8C8C8E8C8C8E8C8C8E8C8C
+ 8E8C8C8E8C949294949294949294949294949294CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE9C9E9C9C9E9C9C9E9C9C9E9C9C9E9C9C9E9C9C
+ 9E9C9C9E9CA5A2A5CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCEA5A6A5ADAAADADAAADADAA
+ ADADAAADADAAADADAAADADAAADADAAADADAAADADAEADADAEADCECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ C6C3C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEE7E3E7E7E3E7
+ E7E3E7E7E3E7E7E3E7E7E3E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE2120212120212120212120
+ 2121242121242121242121242121242121242121242121242129282929282929
+ 2829292829292829292829CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE393C39393C39393C39
+ 393C39393C39393C39393C39393C39CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE4245424245424A
+ 494A4A494A4A494A4A494ACECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE52515252515252555252555252555252555252555252555252555252555252
+ 5552CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A636163CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE6B696B6B696B6B696B6B696B6B696B6B696B6B696B
+ 6B6D6B6B6D6B6B6D6BCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C9492
+ 94949294949294949294949294949294CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE9C9E9C9C9E9C9C9E9C9C9E9C9C9E9C9C9E9C9C9E9CA5A2
+ A5A5A2A5CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCEA5A6A5ADAAADADAAADADAAADADAAADADAAAD
+ ADAAADADAAADADAAADADAAADADAEADADAEADADAEADCECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEC6C7C6C6
+ C7C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCEE7E3E7E7E3E7E7E3E7E7
+ E3E7E7E3E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE212021212021212021212021212021212421212421
+ 2124212124212124212124212124212124212928292928292928292928292928
+ 29292829CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE393C39393C39393C39393C39393C3939
+ 3C39393C39393C39424142CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE4245424A494A4A494A4A49
+ 4A4A494A4A494ACECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE525152
+ 525552525552525552525552525552525552525552525552525552525552CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A636163636163CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE6B696B6B696B6B696B6B696B6B696B6B696B6B696B6B6D6B6B6D6B6B
+ 6D6B6B6D6BCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE8C8E8C8C8E8C8C8E8C8C8E8C949294949294949294
+ 949294949294949294949294CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE9C9E9C9C9E9C9C9E9C9C9E9C9C9E9C9C9E9CA5A2A5A5A2A5A5A2A5
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCEA5A6A5ADAAADADAAADADAAADADAAADADAAADADAAADADAAADAD
+ AAADADAAADADAEADADAEADADAEADCECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEC6C7C6C6C7C6C6C7
+ C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6CECBCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCEE7E3E7E7E3E7E7E3E7E7E3E7E7E7
+ E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE21202121202121202121202121202121202121242121242121242121242121
+ 2421212421212421212421292829292829292829292829292829292829CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE393C39393C39393C39393C39393C39393C39393C
+ 39424142CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE4A494A4A494A4A494A4A494A4A494A
+ 4A494ACECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE52515252555252555252
+ 55525255525255525255525255525255525255525255525A595ACECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE5A5D5A5A5D5A5A5D5A636163636163636163CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 6B696B6B696B6B696B6B696B6B696B6B696B6B6D6B6B6D6B6B6D6B6B6D6B6B6D
+ 6BCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE8C8E8C8C8E8C8C8E8C94929494929494929494929494929494
+ 9294949294949294CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE9C9E9C9C9E9C9C9E9C9C9E9C9C9E9CA5A2A5A5A2A5A5A2A5A5A2A5CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ A5A6A5ADAAADADAAADADAAADADAAADADAAADADAAADADAAADADAAADADAAADADAE
+ ADADAEADADAEADADAEADCECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCEC6C7C6C6C7C6C6C7C6C6C7C6
+ C6C7C6C6C7C6C6C7C6C6C7C6CECBCECECBCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCEE7E3E7E7E3E7E7E3E7E7E7E7E7E7E7E7E7E7
+ E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE212021212021
+ 2120212120212120212120212124212124212124212124212124212124212124
+ 21212421292829292829292829292829292829292829292829CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE393C39393C39393C39393C39393C39393C39393C39424142424142
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE4A494A4A494A4A494A4A494A4A494A4A
+ 494ACECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE5255525255525255525255525255
+ 525255525255525255525255525255525A595ACECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE5A5D5A
+ 5A5D5A636163636163636163636163636163CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE6B696B6B
+ 696B6B696B6B696B6B696B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6BCECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE8C8E8C8C8E8C9492949492949492949492949492949492949492949492
+ 94949694CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE9C9E9C
+ 9C9E9C9C9E9C9C9E9CA5A2A5A5A2A5A5A2A5A5A2A5A5A2A5CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEA5A6A5ADAAADAD
+ AAADADAAADADAAADADAAADADAAADADAAADADAAADADAAADADAEADADAEADADAEAD
+ ADAEADCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCEC6C7C6C6C7C6C6C7C6C6C7C6C6C7C6C6
+ C7C6C6C7C6CECBCECECBCECECBCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCEE7E3E7E7E3E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7
+ E7E7E7E7E7E7E7E7EFEBEFCECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE21202121202121202121202121202121
+ 2021212021212421212421212421212421212421212421212421212421292829
+ 292829292829292829292829292829292829CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE393C39393C39393C39393C39393C39393C39424142424142CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE4A494A4A494A4A494A4A494A4A494A4A4D4ACECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE525552525552525552525552525552525552525552
+ 5255525255525255525A595A5A595ACECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE5A5D5A63616363
+ 6163636163636163636163636163CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE6B696B6B696B6B69
+ 6B6B696B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6BCECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE8C
+ 8E8C949294949294949294949294949294949294949294949294949694949694
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE9C9E9C9C9E9C9C
+ 9E9CA5A2A5A5A2A5A5A2A5A5A2A5A5A2A5A5A2A5CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCEA5A6A5ADAAADADAAADADAAADADAA
+ ADADAAADADAAADADAAADADAAADADAAADADAEADADAEADADAEADADAEADCECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCEC6C7C6C6C7C6C6C7C6C6C7C6C6C7C6C6C7C6CECB
+ CECECBCECECBCECECBCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCEE7E3E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7
+ E7EFEBEFEFEBEFCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE2120212120212120212120212120212120212120212120212124
+ 2121242121242121242121242121242121242121242129282929282929282929
+ 2829292829292829292829CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE393C39393C39
+ 393C39393C39393C39393C39424142424142424142CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE4A494A4A494A4A494A4A494A4A4D4A4A4D4A4A4D4ACECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE52555252555252555252555252555252555252555252555252
+ 55525A595A5A595ACECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE6361636361636361
+ 63636163636163636163CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE6B696B6B696B6B696B6B6D6B
+ 6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6BCECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE9492949492
+ 94949294949294949294949294949294949294949694949694949694CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE9C9E9C9C9E9CA5A2A5A5A2
+ A5A5A2A5A5A2A5A5A2A5A5A2A5A5A2A5A5A2A5A5A6A5A5A6A5A5A6A5A5A6A5A5
+ A6A5A5A6A5A5A6A5A5A6A5A5A6A5ADAAADADAAADADAAADADAAADADAAADADAAAD
+ ADAAADADAAADADAAADADAEADADAEADADAEADADAEADADAEADCECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCEC6C7C6C6C7C6C6C7C6C6C7C6C6C7C6CECBCECECBCECECBCE
+ CECBCECECBCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCEE7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7EFEBEFEFEBEF
+ EFEBEFCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE21
+ 2021212021212021212021212021212021212021212021212421212421212421
+ 2124212124212124212124212124212928292928292928292928292928292928
+ 29292829292829CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE393C39393C39393C3939
+ 3C39393C39424142424142424142424142CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE4A494A4A494A4A494A4A4D4A4A4D4A4A4D4A4A4D4ACECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE5255525255525255525255525255525255525255525255525A595A5A59
+ 5A5A595ACECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE636163636163636163636163
+ 636163636163636563CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE6B696B6B696B6B6D6B6B6D6B6B6D6B6B
+ 6D6B6B6D6B6B6D6B6B6D6B6B6D6B737173CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE949294949294949294
+ 949294949294949294949294949694949694949694949694CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE9C9E9CA5A2A5A5A2A5A5A2A5A5A2A5
+ A5A2A5A5A2A5A5A2A5A5A2A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6
+ A5A5A6A5A5A6A5ADAAADADAAADADAAADADAAADADAAADADAAADADAAADADAAADAD
+ AAADADAEADADAEADADAEADADAEADADAEADCECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCEC6C7C6C6C7C6C6C7C6C6C7C6CECBCECECBCECECBCECECBCECECBCECE
+ CBCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEE7E7
+ E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7EFEBEFEFEBEFEFEBEFEFEBEFCE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE2120212120212120
+ 2121202121202121202121202121202121242121242121242121242121242121
+ 2421212421212421292829292829292829292829292829292829292829292829
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE393C39393C39393C39393C39393C394241
+ 42424142424142424142CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE4A494A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4ACECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE52555252
+ 55525255525255525255525255525255525255525A595A5A595A5A595A5A595A
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE63616363616363616363616363616363
+ 6563636563CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE6B696B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B6B6D
+ 6B6B6D6B6B6D6B737173737173CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE94929494929494929494929494
+ 9294949294949694949694949694949694949694CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCEA5A2A5A5A2A5A5A2A5A5A2A5A5A2A5A5A2A5A5
+ A2A5A5A2A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5
+ ADAAADADAAADADAAADADAAADADAAADADAAADADAAADADAAADADAAADADAEADADAE
+ ADADAEADADAEADADAEADCECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ C6C7C6C6C7C6C6C7C6CECBCECECBCECECBCECECBCECECBCECECBCECECBCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEE7E7E7E7E7E7
+ E7E7E7E7E7E7E7E7E7E7E7E7EFEBEFEFEBEFEFEBEFEFEBEFEFEBEFCECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE181C18212021212021212021212021212021
+ 2120212120212120212124212124212124212124212124212124212124212124
+ 21292829292829292829292829292829292829292829292829CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE393C39393C39393C39393C39424142424142424142
+ 424142424142CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE4A
+ 4D4A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4ACECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE5255525255525255
+ 525255525255525255525255525A595A5A595A5A595A5A595ACECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE6361636361636361636365636365636365
+ 63CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B
+ 737173737173CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE9492949492949492949492949492949496
+ 94949694949694949694949694949694CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCEA5A2A5A5A2A5A5A2A5A5A2A5A5A2A5A5A2A5A5A2A5A5A6
+ A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5ADAAADADAAADAD
+ AAADADAAADADAAADADAAADADAAADADAAADADAAADADAEADADAEADADAEADADAEAD
+ ADAEADADAEADADAEADADAEADCECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEC6C7C6C6
+ C7C6CECBCECECBCECECBCECECBCECECBCECECBCECECBCECECBCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCEE7E7E7E7E7E7E7E7E7E7
+ E7E7E7E7E7EFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFCECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE181C1821202121202121202121202121202121202121202121
+ 2021212421212421212421212421212421212421212421212421292829292829
+ 292829292829292829292829292829292829CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE393C39393C39393C3942414242414242414242414242414242
+ 4142CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE4A4D4A4A4D
+ 4A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4ACECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE525552525552525552525552
+ 5255525255525A595A5A595A5A595A5A595A5A595ACECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE636163636163636563636563636563636563CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B73717373717373
+ 7173CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE949294949294949294949294949694949694949694
+ 949694949694949694949694CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCEA5A2A5A5A2A5A5A2A5A5A2A5A5A2A5A5A2A5A5A6A5A5A6A5A5A6A5
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CEADAAADADAAADADAAADADAAADADAEADADAEADADAEADADAEADADAEADADAEADAD
+ AEADADAEADB5B2B5B5B2B5CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEC6C7C6CECBCECECB
+ CECECBCECECBCECECBCECECBCECECBCECECBCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCEE7E7E7E7E7E7E7E7E7E7E7E7EFEB
+ EFEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFCECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE181C18
+ 181C182120212120212120212120212120212120212120212120212124212124
+ 2121242121242121242121242121242121242129282929282929282929282929
+ 2829292829292829CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 393C39393C39393C39424142424142424142424142424142424142CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE4A4D4A4A4D4A
+ 4A4D4A4A4D4A4A4D4A525152CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE5255525255525255525255525255525255525A
+ 595A5A595A5A595A5A595A5A595ACECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE636163636563636563636563636563636563636563CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B737173737173737173737173CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE94929494929494929494969494969494969494969494969494
+ 9694949694949694CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CEA5A2A5A5A2A5A5A2A5A5A2A5A5A2A5A5A6A5A5A6A5A5A6A5A5A6A5CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCEADAEADADAEADADAEADADAEADADAEADADAEADB5B2
+ B5B5B2B5B5B2B5B5B2B5B5B2B5CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECBCECECBCECECBCECECBCE
+ CECBCECECBCECECBCECECBCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCEE7E7E7E7E7E7E7E7E7E7E7E7EFEBEFEFEBEFEFEBEF
+ EFEBEFEFEBEFEFEBEFEFEBEFEFEBEFCECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE181C1821202121
+ 2021212021212021212021212021212021212021212421212421212421212421
+ 212421212421212421212421292829292829292829292829292829292829CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE393C3939
+ 3C39424142424142424142424142424142424142424142CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE4A4D4A4A4D4A4A4D4A4A
+ 4D4A525152525152525152CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE5255525255525255525255525255525A595A5A595A5A59
+ 5A5A595A5A595A5A595ACECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE636563636563636563636563636563636563CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE6B
+ 6D6B6B6D6B6B6D6B6B6D6B737173737173737173737173737173CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE9492949492949496949496949496949496949496949496949496949496
+ 949C9A9CCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEA5A2A5
+ A5A2A5A5A2A5A5A2A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCEADAEADADAEADB5B2B5B5B2B5B5B2B5
+ B5B2B5B5B2B5B5B2B5B5B2B5CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECBCECECBCECECBCECECBCECECBCECE
+ CBCECECBCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCEE7E7E7E7E7E7E7E7E7EFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEF
+ EBEFEFEBEFEFEBEFEFEFEFCECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE181C182120212120212120212120
+ 2121202121202121202121202121242121242121242121242121242121242121
+ 2421212421292829292829292829292829292829CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE393C394241424241
+ 42424142424142424142424142424142424142CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE4A4D4A4A4D4A4A4D4A5251525251
+ 52525152525152CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE5255525255525255525255525255525A595A5A595A5A595A5A595A5A595A
+ 5A595A5A595ACECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE6365636365636365636365636365636365636B696BCECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE6B6D6B6B6D
+ 6B6B6D6B737173737173737173737173737173737173CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE94929494
+ 92949496949496949496949496949496949496949496949496949C9A9C9C9A9C
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEA5A2A5A5A2A5A5
+ A2A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCEB5B2B5B5B2B5B5B2B5B5B2B5B5
+ B2B5B5B2B5B5B2B5B5B6B5CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECBCECECBCECECBCECECBCECECBCECECBCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCEE7E7E7E7E7E7EFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEB
+ EFEFEFEFEFEFEFCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE181C18212021212021212021212021212021212021
+ 2120212120212124212124212124212124212124212124212124212124212928
+ 29292829292829292829CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE393C39424142424142424142424142
+ 424142424142424142424142CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE4A4D4A525152525152525152525152
+ 525152CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE5255
+ 525255525255525255525A595A5A595A5A595A5A595A5A595A5A595A5A595ACE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE6365
+ 636365636365636365636365636B696B6B696BCECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE6B6D6B6B6D6B737173
+ 737173737173737173737173737173737173CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE9492949496949496
+ 949496949496949496949496949496949496949C9A9C9C9A9C9C9A9CCECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCEA5A2A5A5A2A5A5A6A5A5A6
+ A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCEB5B2B5B5B2B5B5B2B5B5B2B5B5B2
+ B5B5B6B5B5B6B5B5B6B5CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECBCECECBCECECBCECECBCECECBCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEE7
+ E7E7EFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEFEFEFEFEF
+ EFEFEFCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE181C1821202121202121202121202121202121202121202121202121
+ 2421212421212421212421212421212421212421212421292829292829292829
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE42414242414242414242414242414242414242
+ 4142424142424542CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE52515252515252515252515252515252515252
+ 5152CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE525552525552
+ 5255525A595A5A595A5A595A5A595A5A595A5A595A5A595A5A595ACECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE636563
+ 6365636365636B696B6B696B6B696BCECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE6B6D6B73717373717373717373
+ 7173737173737173737173737173737173CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE949694949694949694949694
+ 9496949496949496949496949C9A9C9C9A9C9C9A9C9C9A9CCECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCEA5A2A5A5A6A5A5A6A5A5A6A5A5A6A5
+ A5A6A5A5A6A5A5A6A5A5A6A5CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCEB5B2B5B5B2B5B5B2B5B5B6B5B5B6B5
+ B5B6B5B5B6B5B5B6B5CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECBCECECBCECECBCECECBCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEE7E7E7EFEBEFEFEB
+ EFEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEFEFEFEFEFEFEFEFEFEFEFCE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE181C18
+ 2120212120212120212120212120212120212120212120212124212124212124
+ 21212421212421212421212421212421292829292829CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE4241424241424241424241424241424241424241424245
+ 42CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE525152525152525152525152525152525152525152CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE5255525255525255525A595A5A
+ 595A5A595A5A595A5A595A5A595A5A595A5A595ACECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE6365636365636B
+ 696B6B696B6B696B6B696B6B696BCECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE7371737371737371737371737371737371
+ 73737173737173737173737573CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE94969494969494969494969494969494
+ 96949496949C9A9C9C9A9C9C9A9C9C9A9C9C9A9CCECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCEA5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5
+ A6A5A5A6A5A5A6A5CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCEB5B2B5B5B6B5B5B6B5B5B6B5B5B6B5B5
+ B6B5B5B6B5B5B6B5CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECBCECECBCECECBCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCEEFEBEFEFEBEFEFEBEFEFEBEF
+ EFEBEFEFEBEFEFEBEFEFEBEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFCECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE21202121202121
+ 2021212021212021212021212021212021212421212421212421212421212421
+ 212421212421212421292829CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE424142424142424142424142424142424142424142424542424542CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE525152525152525152525152525152525552CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE5255525255525A595A5A595A5A595A5A59
+ 5A5A595A5A595A5A595A5A595A5A5D5ACECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE6365636B696B6B696B6B69
+ 6B6B696B6B696B6B696BCECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE737173737173737173737173737173737173737173
+ 737173737573737573CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE9496949496949496949496949496949496949C9A
+ 9C9C9A9C9C9A9C9C9A9C9C9A9CCECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCEA5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6
+ A5ADAAADCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCEB5B6B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6
+ B5B5B6B5BDBABDCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECBCECE
+ CBCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCEEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEF
+ EBEFEFEBEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFCECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE2120212120212120212120212120
+ 2121202121202121202121242121242121242121242121242121242121242121
+ 2421CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE4241
+ 42424142424142424142424142424142424542424542424542CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE525152525152525152525152525552525552CECFCECECFCECECFCECE
+ CFCECECFCECECFCE5255525255525A595A5A595A5A595A5A595A5A595A5A595A
+ 5A595A5A595A5A5D5ACECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE6B696B6B696B6B696B6B696B
+ 6B696B6B696BCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE73717373717373717373717373717373717373757373
+ 7573737573CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE9496949496949496949496949496949C9A9C9C9A9C9C9A9C
+ 9C9A9C9C9A9C9C9A9CCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCEA5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5ADAAADADAAAD
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCEB5B6B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5BDBABD
+ BDBABDCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECBCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCEEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEF
+ EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFCECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE212021212021212021212021212021212021
+ 212021212421212421212421212421212421212421212421212421CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE424142424142
+ 424142424142424142424542424542424542CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 525152525152525152525552525552525552525552CECFCECECFCECECFCECECF
+ CECECFCE5255525A595A5A595A5A595A5A595A5A595A5A595A5A595A5A595A5A
+ 5D5A5A5D5ACECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE6B696B6B696B6B696B6B696B6B696B6B
+ 696B6B6D6BCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE7371737371737371737371737371737375737375737375737375
+ 73737573CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE9496949496949496949496949C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C
+ 9A9C9C9A9CCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CEA5A6A5A5A6A5A5A6A5A5A6A5A5A6A5A5A6A5ADAAADADAAADADAAADCECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCEB5B6B5B5B6B5B5B6B5B5B6B5B5B6B5BDBABDBDBABDBDBABDBD
+ BABDCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCED6D3D6CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCEEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEFEFEFEFEFEFEFEF
+ EFEFEFEFEFEFEFEFEFEFEFEFCECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE21202121202121202121202121202121202121202121242121
+ 2421212421212421212421212421212421CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE42414242414242414242414242
+ 4142424542424542424542424542CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE52
+ 5152525552525552525552525552525552CECFCECECFCECECFCECECFCE525552
+ 5A595A5A595A5A595A5A595A5A595A5A595A5A595A5A595A5A5D5A5A5D5A5A5D
+ 5ACECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE6B696B6B696B6B696B6B696B6B696B6B6D6B6B6D
+ 6BCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE737173737173737173737573737573737573737573737573737573
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE949694
+ 9496949496949496949C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9CCECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEA5A6A5
+ A5A6A5A5A6A5A5A6A5A5A6A5ADAAADADAAADADAAADADAAADCECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCEB5B6B5B5B6B5B5B6B5B5B6B5BDBABDBDBABDBDBABDBDBABDBDBABDCECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCED6D3D6D6D3D6CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CEEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF
+ EFEFEFEFEFEFEFEFCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE2120212120212120212120212120212120212124212124212124212124
+ 21212421212421CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE4241424241424241424241424245424245
+ 42424542424542424542CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE5255525255
+ 52525552525552525552525552525552CECFCECECFCECECFCE5A595A5A595A5A
+ 595A5A595A5A595A5A595A5A595A5A595A5A5D5A5A5D5A5A5D5ACECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE6B696B6B696B6B696B6B6D6B6B6D6B6B6D6BCECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE737173737173737573737573737573737573737573737573737573737573CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE94969494969494
+ 96949C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9CCECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEA5A6A5A5A6A5A5
+ A6A5A5A6A5ADAAADADAAADADAAADADAAADADAAADCECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCEB5B6B5B5B6B5BDBABDBDBABDBDBABDBDBABDBDBABDBDBABDBDBABDCECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CED6D3D6D6D3D6D6D3D6CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEEFEBEFEFEBEF
+ EFEBEFEFEBEFEFEBEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF
+ EFF7F3F7CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE21202121
+ 2021212021212021212021212021212421212421212421212421212421212421
+ 212421CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE424142424142424142424142424542424542424542424542
+ 424542CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE525552525552525552
+ 525552525552525552525552CECFCECECFCECECFCE5A595A5A595A5A595A5A59
+ 5A5A595A5A595A5A595A5A5D5A5A5D5A5A5D5A5A5D5ACECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE6B696B6B696B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6BCECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE737173
+ 7375737375737375737375737375737375737375737375737B797BCECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE9496949496949496949C9A9C9C9A
+ 9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9CCECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCEA5A6A5A5A6A5A5A6A5ADAA
+ ADADAAADADAAADADAAADADAAADADAAADCECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEB5B6
+ B5BDBABDBDBABDBDBABDBDBABDBDBABDBDBABDBDBABDBDBABDCECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCED6D3D6D6D3D6
+ D6D3D6D6D3D6CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCEEFEBEFEFEBEFEFEBEFEF
+ EBEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF7F3F7F7F3F7
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE2120212120212120
+ 21212021212021212421212421212421212421212421212421212421CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE424142424142424142424542424542424542424542424542424542CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE52555252555252555252
+ 5552525552525552525552CECFCE5A595A5A595A5A595A5A595A5A595A5A595A
+ 5A595A5A5D5A5A5D5A5A5D5A5A5D5ACECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE6B696B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6BCECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE73757373
+ 75737375737375737375737375737375737B797B7B797B7B797BCECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE9496949496949C9A9C9C9A9C9C9A9C9C9A9C
+ 9C9A9C9C9A9C9C9A9C9C9A9C9C9E9CCECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCEA5A6A5A5A6A5ADAAADADAAADADAAAD
+ ADAAADADAAADADAAADADAAADCECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEBDBABDBDBABD
+ BDBABDBDBABDBDBABDBDBABDBDBABDBDBABDBDBEBDBDBEBDCECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCED6D3D6D6D3D6D6D3D6D6D3D6D6
+ D3D6CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCEEFEBEFEFEBEFEFEBEFEFEBEFEFEFEFEFEF
+ EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF7F3F7F7F3F7CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE212021212021212021212021
+ 212421212421212421212421212421212421212421CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE424142
+ 424142424142424542424542424542424542424542424542424542CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE5255525255525255525255525255
+ 525255525A595ACECFCE5A595A5A595A5A595A5A595A5A595A5A595A5A5D5A5A
+ 5D5A5A5D5A5A5D5A5A5D5ACECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6BCECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE7375737375737375
+ 737375737375737375737B797B7B797B7B797B7B797BCECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE9496949496949C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C
+ 9A9C9C9A9C9C9E9CCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCEA5A6A5ADAAADADAAADADAAADADAAADADAAADAD
+ AAADADAAADADAAADCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCEBDBABDBDBABDBDBABDBD
+ BABDBDBABDBDBABDBDBABDBDBEBDBDBEBDBDBEBDCECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCED6D3D6D6D3D6D6D3D6D6D3D6D6D3D6D6D3D6CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCEEFEBEFEFEBEFEFEBEFEFEFEFEFEFEFEFEFEFEFEFEF
+ EFEFEFEFEFEFEFEFEFEFEFEFF7F3F7F7F3F7F7F3F7CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE21202121202121202121242121242121
+ 2421212421212421212421212421CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE42414242414242
+ 4542424542424542424542424542424542424542CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE5255525255525255525255525255525A595A
+ 5A595A5A595A5A595A5A595A5A595A5A595A5A595A5A5D5A5A5D5A5A5D5A5A5D
+ 5A5A5D5A5A5D5ACECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE6B6D
+ 6B6B6D6B6B6D6B6B6D6B6B6D6B6B6D6B737173CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE737573737573737573737573
+ 7375737B797B7B797B7B797B7B797B7B797B7B797BCECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE9496949C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9E
+ 9C9C9E9CCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCEADAAADADAAADADAAADADAAADADAAADADAAADADAAADADAA
+ ADADAAADCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCEBDBABDBDBABDBDBABDBDBABDBDBA
+ BDBDBABDBDBEBDBDBEBDBDBEBDBDBEBDCECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCED6D3D6D6D3D6D6D3D6D6D3D6D6D3D6D6D3D6D6D3D6CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCEEFEBEFEFEBEFEFEBEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF
+ EFEFEFEFEFF7F3F7F7F3F7F7F3F7CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE2120212120212124212124212124212124212124
+ 21212421212421212421CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE4241424241424245424245424245
+ 42424542424542424542424542424542CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE5255525255525255525A595A5A595A5A595A5A
+ 595A5A595A5A595A5A595A5A595A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE6B6D6B6B6D6B
+ 6B6D6B6B6D6B6B6D6B737173737173CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE7375737375737375737B797B7B
+ 797B7B797B7B797B7B797B7B797B7B797BCECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE9496949C
+ 9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9E9C9C9E9CCECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCEADAAADADAAADADAAADADAAADADAAADADAAADADAAADADAAADADAEAD
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCEBDBABDBDBABDBDBABDBDBABDBDBABDBDBEBD
+ BDBEBDBDBEBDBDBEBDBDBEBDCECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCED6D3
+ D6D6D3D6D6D3D6D6D3D6D6D3D6D6D3D6D6D3D6D6D3D6CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ EFEBEFEFEBEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF7F3
+ F7F7F3F7F7F3F7F7F3F7CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE212021212421212421212421212421212421212421212421
+ 212421CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE424142424542424542424542424542424542
+ 4245424245424245424A494ACECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE5255525255525A595A5A595A5A595A5A595A5A595A5A59
+ 5A5A595A5A595A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5ACECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE6B6D6B6B6D6B6B
+ 6D6B737173737173737173CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE7375737B797B7B797B7B797B7B79
+ 7B7B797B7B797B7B797B7B797BCECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE9C9A9C9C9A9C9C9A
+ 9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9E9C9C9E9C9C9E9CCECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CEADAAADADAAADADAAADADAAADADAAADADAAADADAAADADAEADADAEADCECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCEBDBABDBDBABDBDBABDBDBABDBDBEBDBDBEBDBDBEBDBD
+ BEBDBDBEBDBDBEBDCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCED6D3D6D6D3D6D6D3D6
+ D6D3D6D6D3D6D6D3D6D6D3D6D6D3D6D6D7D6CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEEFEBEFEFEBEFEF
+ EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF7F3F7F7F3F7F7F3F7
+ F7F3F7CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE212421212421212421212421212421212421212421212421292829CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE42454242454242454242454242454242454242454242
+ 45424A494ACECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE5255525A595A5A595A5A595A5A595A5A595A5A595A5A595A5A595A
+ 5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5ACECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE6B6D6B6B6D6B7371737371
+ 73737173737173737173CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE7B797B7B797B7B797B7B797B7B797B7B797B
+ 7B797B7B797B7B7D7B7B7D7BCECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C
+ 9C9A9C9C9A9C9C9A9C9C9E9C9C9E9C9C9E9CCECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEADAAAD
+ ADAAADADAAADADAAADADAAADADAAADADAEADADAEADADAEADCECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCEBDBABDBDBABDBDBABDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBE
+ BDBDBEBDCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCED6D3D6D6D3D6D6D3D6D6D3D6D6D3D6D6
+ D3D6D6D3D6D6D3D6D6D7D6D6D7D6CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCEEFEBEFEFEFEFEFEFEFEFEF
+ EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF7F3F7F7F3F7F7F3F7F7F3F7F7F3F7CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE212421
+ 212421212421212421212421212421212421212421292829CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE4245424245424245424245424245424245424245424A494A4A49
+ 4ACECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE5A595A5A595A5A595A5A595A5A595A5A595A5A595A5A5D5A5A5D5A5A
+ 5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5ACECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE6B6D6B737173737173737173737173
+ 737173737173CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE7B797B7B797B7B797B7B797B7B797B7B797B7B
+ 7D7B7B7D7B7B7D7B7B7D7BCECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C
+ 9A9C9C9E9C9C9E9C9C9E9C9C9E9CCECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEADAAADADAAADAD
+ AAADADAAADADAAADADAEADADAEADADAEADADAEADCECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCEBDBABDBDBABDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBD
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCED6D3D6D6D3D6D6D3D6D6D3D6D6D3D6D6D3D6D6D3
+ D6D6D7D6D6D7D6D6D7D6CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCEEFEBEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF
+ EFEFEFEFEFEFEFEFEFF7F3F7F7F3F7F7F3F7F7F3F7F7F3F7CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE21242121
+ 2421212421212421212421212421292829292829CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE42
+ 45424245424245424245424245424245424245424A494A4A494A4A494ACECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 5A595A5A595A5A595A5A595A5A595A5A595A5A5D5A5A5D5A5A5D5A5A5D5A5A5D
+ 5A5A5D5A5A5D5A5A5D5A636163CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE73717373717373717373717373717373
+ 7173CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE7B797B7B797B7B797B7B797B7B797B7B7D7B7B7D7B7B7D
+ 7B7B7D7B7B7D7B7B7D7BCECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9E9C9C9E
+ 9C9C9E9C9C9E9CCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCEADAAADADAAADADAAADADAA
+ ADADAEADADAEADADAEADADAEADADAEADCECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEBDBA
+ BDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDC6C3C6CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCED6D3D6D6D3D6D6D3D6D6D3D6D6D3D6D6D3D6D6D7D6D6D7D6
+ D6D7D6D6D7D6CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCEEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF
+ EFEFF7F3F7F7F3F7F7F3F7F7F3F7F7F3F7CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE2124212124212124
+ 21212421212421292829292829292829CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE4245424245
+ 424245424245424245424245424A494A4A494A4A494A4A494ACECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE5A595A5A
+ 595A5A595A5A595A5A595A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A
+ 5A5D5A636163CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE7371737371737371737371737371737371737371
+ 73CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE7B797B7B797B7B797B7B7D7B7B7D7B7B7D7B7B7D7B7B7D7B
+ 7B7D7B7B7D7BCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE9C
+ 9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9E9C9C9E9C9C9E9C9C9E9C
+ 9C9E9CCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCEADAAADADAAADADAAADADAEADADAEAD
+ ADAEADADAEADADAEADADAEADCECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEBDBEBDBDBEBD
+ BDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDC6C3C6C6C3C6CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCED6D3D6D6D3D6D6D3D6D6D3D6D6D3D6D6D7D6D6D7D6D6D7D6D6D7D6D6
+ D7D6CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCEEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF7F3F7F7F3
+ F7F7F3F7F7F3F7F7F3F7F7F3F7CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE212421212421212421212421
+ 292829292829292829292829CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE424542424542424542
+ 4245424245424A494A4A494A4A494A4A494A4A494ACECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE5A595A5A595A5A59
+ 5A5A595A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A63616363
+ 6163CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE737173737173737173737173737173737173737573CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE7B797B7B797B7B7D7B7B7D7B7B7D7B7B7D7B7B7D7B7B7D7B7B7D7B7B
+ 7D7B848284CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE9C9A9C9C9A9C9C9A
+ 9C9C9A9C9C9A9C9C9A9C9C9A9C9C9E9C9C9E9C9C9E9C9C9E9C9C9E9CCECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCEADAAADADAAADADAEADADAEADADAEADADAEADAD
+ AEADADAEADADAEADCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCEBDBEBDBDBEBDBDBEBDBDBEBDBD
+ BEBDBDBEBDBDBEBDBDBEBDC6C3C6C6C3C6C6C3C6CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ D6D3D6D6D3D6D6D3D6D6D3D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEEFEFEFEF
+ EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF7F3F7F7F3F7F7F3F7F7F3F7
+ F7F3F7F7F3F7CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE21242121242121242129282929282929
+ 2829292829292829CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE313431313431313431393839393839CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE4245424245424245424245424A
+ 494A4A494A4A494A4A494A4A494ACECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE5A595A5A595A5A5D5A
+ 5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A636163636163CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE737173737173737173737173737573737573CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE7B7D7B7B7D7B7B7D7B7B7D7B7B7D7B7B7D7B7B7D7B7B7D7B8482848482
+ 84848284CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C
+ 9C9A9C9C9A9C9C9E9C9C9E9C9C9E9C9C9E9C9C9E9CCECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCEADAAADADAEADADAEADADAEADADAEADADAEADADAEADADAE
+ ADADAEADCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCEBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBE
+ BDBDBEBDC6C3C6C6C3C6C6C3C6CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCED6D3D6D6
+ D3D6D6D3D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCEEFEFEFEFEFEFEFEFEFEFEF
+ EFEFEFEFEFEFEFEFEFEFEFEFEFF7F3F7F7F3F7F7F3F7F7F3F7F7F3F7F7F3F7CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE2124212124212928292928292928292928292928
+ 29CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE313431313431393839393839393839CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE4245424245424245424245424A494A4A494A4A49
+ 4A4A494A4A494A4A494ACECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE5A595A5A5D5A5A5D5A5A5D5A5A
+ 5D5A5A5D5A5A5D5A5A5D5A5A5D5A636163636163636163CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE737173737173737173737573737573737573737573CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE7B7D7B7B7D7B7B7D7B7B7D7B7B7D7B7B7D7B848284848284848284848284
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C
+ 9E9C9C9E9C9C9E9C9C9E9C9C9E9CCECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCEADAEADADAEADADAEADADAEADADAEADADAEADADAEADADAEADB5B2B5
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCEBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDC6C3C6
+ C6C3C6C6C3C6C6C3C6CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCED6D3D6D6D3D6D6D7
+ D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCEEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF
+ EFEFEFEFEFEFF7F3F7F7F3F7F7F3F7F7F3F7F7F3F7F7F3F7F7F3F7CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECE000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE212421292829292829292829292829292829292829292829
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE313431393839393839393839393839CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE4245424245424245424A494A4A494A4A494A4A494A4A494A
+ 4A494A4A494ACECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D
+ 5A5A5D5A5A5D5A636163636163636163CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE73
+ 7173737173737573737573737573737573737573CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE7B7D7B7B7D7B7B7D7B7B7D7B84828484828484828484828484828484828484
+ 8284CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9E9C9C9E9C9C9E
+ 9C9C9E9C9C9E9CCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CEADAEADADAEADADAEADADAEADADAEADADAEADADAEADB5B2B5B5B2B5CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCEBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDC6C3C6C6C3C6C6C3C6C6
+ C3C6C6C3C6CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCED6D3D6D6D7D6D6D7D6D6D7D6
+ D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6DEDBDECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCEEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF7
+ F3F7F7F3F7F7F3F7F7F3F7F7F3F7F7F3F7F7F3F7CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECE000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE292829292829292829292829292829292829292829CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE393839393839393839393839393839CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE4245424245424245424A494A4A494A4A494A4A494A4A494A4A494A4A494A4A
+ 494ACECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A
+ 636163636163636163636163CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE7371737375
+ 73737573737573737573737573737573CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 7B7D7B7B7D7B8482848482848482848482848482848482848482848482848486
+ 84CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE9C9A9C9C9A9C9C
+ 9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9E9C9C9E9C9C9E9C9C9E9C9C9E9C
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEADAEADADAEAD
+ ADAEADADAEADADAEADADAEADADAEADB5B2B5B5B2B5B5B2B5CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEBDBEBD
+ BDBEBDBDBEBDBDBEBDBDBEBDBDBEBDC6C3C6C6C3C6C6C3C6C6C3C6C6C3C6CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCED6D3D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6
+ D7D6D6D7D6D6D7D6DEDBDEDEDBDECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEEFEBEF
+ EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF7F3F7F7F3F7F7F3
+ F7F7F3F7F7F3F7F7F3F7F7F3F7CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE292829292829292829292829292829292829292C29292C29CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 393839393839393839393839393839CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE424542
+ 4245424A494A4A494A4A494A4A494A4A494A4A494A4A494A4A494ACECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A63616363616363
+ 6163636163636163CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE737573737573737573
+ 737573737573737573737573737573CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE84
+ 8284848284848284848284848284848284848284848284848684848684848684
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE9C9A9C9C9A9C9C9A9C9C9A9C9C9A
+ 9C9C9A9C9C9A9C9C9A9C9C9E9C9C9E9C9C9E9C9C9E9C9C9E9CCECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCEADAEADADAEADADAEADAD
+ AEADADAEADADAEADB5B2B5B5B2B5B5B2B5B5B2B5CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCEBDBEBDBDBEBDBDBEBDBD
+ BEBDBDBEBDBDBEBDC6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCED6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7
+ D6DEDBDEDEDBDEDEDBDECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCEEFEBEFEFEFEFEFEFEFEF
+ EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF7F3F7F7F3F7F7F3F7F7F3F7F7F3F7
+ F7F3F7F7F3F7CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE292829292829292829292829292C29292C29292C29CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000
+ 00000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE39383939383939
+ 3839393839393839393839CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE4245424245424A494A4A
+ 494A4A494A4A494A4A494A4A494A4A494A4A494A4A4D4A4A4D4ACECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A6361636361636361636361636361
+ 63636163CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE73757373757373757373757373
+ 75737375737375737B797B7B797BCECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE8482848482
+ 84848284848284848284848284848284848684848684848684848684848684CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE9496949C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C
+ 9C9A9C9C9E9C9C9E9C9C9E9C9C9E9C9C9E9CCECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCEADAEADADAEADADAEADADAEADADAEADADAE
+ ADB5B2B5B5B2B5B5B2B5B5B2B5B5B2B5CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCEBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBE
+ BDC6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCED6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6DEDBDEDEDBDE
+ DEDBDEDEDBDECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCEEFEBEFEFEBEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF
+ EFEFEFEFEFEFEFEFEFEFF7F3F7F7F3F7F7F3F7F7F3F7F7F3F7F7F3F7F7F3F7CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE2928
+ 29292829292829292C29292C29292C29292C29292C29CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000
+ 000000CECFCECECFCECECFCECECFCECECFCECECFCE3938393938393938393938
+ 39393839393839CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE4245424A494A4A494A4A494A4A49
+ 4A4A494A4A494A4A494A4A494A4A4D4A4A4D4A4A4D4ACECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE5A
+ 5D5A5A5D5A5A5D5A5A5D5A636163636163636163636163636163636163636163
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE7375737375737375737375737375737375
+ 737B797B7B797B7B797BCECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE848284
+ 848284848284848284848684848684848684848684848684848684848684CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE9496949C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9E9C9C
+ 9E9C9C9E9C9C9E9C9C9E9CCECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCEADAEADADAEADADAEADADAEADADAEADB5B2B5B5B2B5
+ B5B2B5B5B2B5B5B2B5B5B2B5CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCEBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDC6C3C6C6C3C6
+ C6C3C6C6C3C6C6C3C6C6C3C6CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CED6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6DEDBDEDEDBDEDEDBDEDEDBDEDE
+ DBDECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCEEFEBEFEFEBEFEFEBEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF
+ EFEFEFF7F3F7F7F3F7F7F3F7F7F3F7F7F3F7F7F3F7F7F3F7CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE292829292829
+ 292C29292C29292C29292C29292C29292C29CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000
+ 0000CECFCECECFCECECFCECECFCE393839393839393839393839393839393839
+ 393839CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE4245424A494A4A494A4A494A4A494A4A494A4A494A
+ 4A494A4A494A4A4D4A4A4D4A4A4D4A4A4D4ACECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE5A5D5A5A5D
+ 5A5A5D5A636163636163636163636163636163636163636163636163CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE7375737375737375737375737375737B797B7B797B
+ 7B797B7B797B7B797BCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE84828484
+ 82848486848486848486848486848486848486848486848486848C8A8C8C8A8C
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE9496949496949C9A9C
+ 9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9E9C9C9E9C9C9E9C9C9E
+ 9C9C9E9CCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCEADAEADADAEADADAEADADAEADADAEADB5B2B5B5B2B5B5B2B5B5B2B5B5
+ B2B5B5B2B5B5B2B5CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEBDBEBDBDBE
+ BDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDC6C3C6C6C3C6C6C3C6C6C3C6C6
+ C3C6C6C3C6CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCED6D7D6D6D7D6
+ D6D7D6D6D7D6D6D7D6D6D7D6DEDBDEDEDBDEDEDBDEDEDBDEDEDBDEDEDBDECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEEFEBEFEFEBEFEFEB
+ EFEFEBEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF7F3F7F7
+ F3F7F7F3F7F7F3F7F7F3F7F7F3F7F7F3F7CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE292C29292C2929
+ 2C29292C29292C29292C29292C29292C29CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000
+ 00CECFCECECFCE393839393839393839393839393839393839393839393839CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE4245424A494A4A494A4A494A4A494A4A494A4A494A4A494A4A494A4A
+ 4D4A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4ACECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE5A5D5A5A5D5A5A5D5A636163
+ 636163636163636163636163636163636163636163636563636563CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE7375737375737375737375737375737B797B7B797B7B797B7B797B7B
+ 797B7B797BCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE8486848486
+ 848486848486848486848486848486848486848C8A8C8C8A8C8C8A8C8C8A8C8C
+ 8A8CCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE9496949496949496949496949C9A9C9C9A9C9C9A9C9C
+ 9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9E9C9C9E9C9C9E9C9C9E9C9C9E9CCECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ ADAEADADAEADADAEADADAEADB5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B2
+ B5B5B2B5CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCEBDBABDBDBABDBDBEBDBDBEBDBDBEBDBDBEBD
+ BDBEBDBDBEBDBDBEBDBDBEBDC6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCED6D7D6D6D7D6D6D7D6D6D7D6D6
+ D7D6D6D7D6DEDBDEDEDBDEDEDBDEDEDBDEDEDBDEDEDBDEDEDBDECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCEEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEFEF
+ EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF7F3F7F7F3F7F7F3F7F7F3
+ F7F7F3F7F7F3F7CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE292C29292C29292C
+ 29292C29292C29292C29313031CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000
+ 393839393839393839393839393839393839393839393839393C39CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE424542424542
+ 4A494A4A494A4A494A4A494A4A494A4A494A4A494A4A494A4A4D4A4A4D4A4A4D
+ 4A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A525152525152CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE5A5D5A5A5D5A5A5D5A63616363616363616363
+ 6163636163636163636163636163636563636563636563CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE737573
+ 7375737375737375737375737B797B7B797B7B797B7B797B7B797B7B797B7B79
+ 7B7B797B7B7D7BCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE848684848684
+ 8486848486848486848486848C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8A
+ 8C8C8A8C8C8E8C8C8E8CCECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE949694
+ 9496949496949496949496949496949C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A
+ 9C9C9A9C9C9A9C9C9E9C9C9E9C9C9E9C9C9E9C9C9E9CCECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEADAEADADAEADAD
+ AEADADAEADB5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B6B5
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEBDBABDBDBABDBDBA
+ BDBDBABDBDBABDBDBABDBDBABDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBD
+ BEBDBDBEBDC6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCED6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6DEDB
+ DEDEDBDEDEDBDEDEDBDEDEDBDEDEDBDEDEDBDEDEDBDECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCEE7E7E7EFEB
+ EFEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEFEFEFEFEFEFEFEFEF
+ EFEFEFEFEFEFEFEFEFEFEFEFEFEFF7F3F7F7F3F7F7F3F7F7F3F7F7F3F7CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE292C29292C29292C29
+ 292C29313031313031313031313031CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000039383939383939
+ 3839393839393839393839393839393839393C39393C39CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE4245424245424245424A494A4A494A4A
+ 494A4A494A4A494A4A494A4A494A4A494A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A
+ 4A4D4A4A4D4A4A4D4A525152525152525152525152525152525152CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE5A5D5A5A5D5A5A5D5A6361636361636361636361636361636361
+ 63636163636163636563636563636563636563636563636563636563636563CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE73717373757373757373757373757373757373757373
+ 75737375737B797B7B797B7B797B7B797B7B797B7B797B7B797B7B797B7B7D7B
+ 7B7D7B7B7D7B7B7D7BCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE84868484868484
+ 86848486848C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8E8C
+ 8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C9492949492949492
+ 9494929494929494929494929494929494969494969494969494969494969494
+ 96949496949496949C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C
+ 9C9E9C9C9E9C9C9E9C9C9E9CCECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCEADAEADADAEADADAEADADAEADADAEADADAEADADAEADB5B2
+ B5B5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B6B5B5B6B5B5B6B5B5
+ B6B5B5B6B5B5B6B5B5B6B5B5B6B5BDBABDBDBABDBDBABDBDBABDBDBABDBDBABD
+ BDBABDBDBABDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDC6C3
+ C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCED6
+ D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6DEDBDEDEDBDEDEDBDE
+ DEDBDEDEDBDEDEDBDEDEDBDEDEDBDEDEDFDEDEDFDEDEDFDEDEDFDEDEDFDEDEDF
+ DEDEDFDEDEDFDEE7E3E7E7E3E7E7E3E7E7E3E7CECFCECECFCECECFCEE7E3E7E7
+ E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7EFEBEFEFEBEFEFEBEF
+ EFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF
+ EFEFEFEFEFEFEFF7F3F7F7F3F7F7F3F7F7F3F7CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE292C29292C2931303131
+ 3031313031313031313031313031313031CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE3938393938393938393938393938
+ 39393839393839393839393C39393C39393C39CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE4245424245424245424245424245424A494A4A494A4A494A4A494A4A49
+ 4A4A494A4A494A4A494A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A4A
+ 4D4A525152525152525152525152525152525152525152525152525552525552
+ 525552CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE5A595A5A595A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A
+ 5D5A5A5D5A5A5D5A636163636163636163636163636163636163636163636163
+ 6365636365636365636365636365636365636365636365636B696B6B696B6B69
+ 6B6B696B6B696B6B696B6B696BCECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE737173737173737173
+ 7371737371737375737375737375737375737375737375737375737375737B79
+ 7B7B797B7B797B7B797B7B797B7B797B7B797B7B797B7B7D7B7B7D7B7B7D7B7B
+ 7D7B7B7D7B7B7D7B7B7D7B7B7D7BCECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE8486848C8A
+ 8C8C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8E8C8C8E8C8C8E8C8C
+ 8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C949294949294949294949294949294
+ 9492949492949492949496949496949496949496949496949496949496949496
+ 949C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9E9C9C9E9C9C
+ 9E9CCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCEADAAADADAAADADAAADAD
+ AEADADAEADADAEADADAEADADAEADADAEADADAEADADAEADB5B2B5B5B2B5B5B2B5
+ B5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6
+ B5B5B6B5B5B6B5BDBABDBDBABDBDBABDBDBABDBDBABDBDBABDBDBABDBDBABDBD
+ BEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDC6C3C6C6C3C6C6C3C6
+ C6C3C6C6C3C6C6C3C6CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCED6D3D6D6D3D6D6D3D6D6D3D6D6D3D6D6D3D6D6D7D6D6D7D6D6D7
+ D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6DEDBDEDEDBDEDEDBDEDEDBDEDEDBDEDE
+ DBDEDEDBDEDEDBDEDEDFDEDEDFDEDEDFDEDEDFDEDEDFDEDEDFDEDEDFDEDEDFDE
+ E7E3E7E7E3E7E7E3E7E7E3E7E7E3E7E7E3E7E7E3E7E7E3E7E7E7E7E7E7E7E7E7
+ E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7EFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEF
+ EBEFEFEBEFEFEBEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF
+ F7F3F7F7F3F7F7F3F7CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE3130313130313130
+ 31313031313031313031313031313431CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE393839393839393839393839393839393839393839393839
+ 393839393C39393C39393C39393C39CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE42
+ 45424245424245424245424A494A4A494A4A494A4A494A4A494A4A494A4A494A
+ 4A494A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A5251525251
+ 52525152525152525152525152525152525152525552525552525552525552CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE5A595A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D
+ 5A63616363616363616363616363616363616363616363616363656363656363
+ 65636365636365636365636365636365636B696B6B696B6B696B6B696B6B696B
+ 6B696B6B696B6B696BCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE73717373717373717373717373
+ 75737375737375737375737375737375737375737375737B797B7B797B7B797B
+ 7B797B7B797B7B797B7B797B7B797B7B7D7B7B7D7B7B7D7B7B7D7B7B7D7B7B7D
+ 7B7B7D7B7B7D7B848284CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE8C8A8C
+ 8C8A8C8C8A8C8C8A8C8C8A8C8C8A8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E
+ 8C8C8E8C8C8E8C8C8E8C94929494929494929494929494929494929494929494
+ 92949496949496949496949496949496949496949496949496949C9A9C9C9A9C
+ 9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9E9C9C9E9CCECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCEADAAADADAAADADAEADADAEADADAE
+ ADADAEADADAEADADAEADADAEADADAEADB5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5
+ B2B5B5B2B5B5B2B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5
+ BDBABDBDBABDBDBABDBDBABDBDBABDBDBABDBDBABDBDBABDBDBEBDBDBEBDBDBE
+ BDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDC6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6
+ C3C6CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCED6D3D6D6D3D6D6D3D6D6D3D6D6D3D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6
+ D6D7D6D6D7D6D6D7D6DEDBDEDEDBDEDEDBDEDEDBDEDEDBDEDEDBDEDEDBDEDEDB
+ DEDEDFDEDEDFDEDEDFDEDEDFDEDEDFDEDEDFDEDEDFDEDEDFDEE7E3E7E7E3E7E7
+ E3E7E7E3E7E7E3E7E7E3E7E7E3E7E7E3E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7
+ E7E7E7E7E7E7E7E7E7EFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEB
+ EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF7F3F7F7F3F7CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE313031313031313031
+ 3130313130313134313134313134313134313134313134313134313134313938
+ 39393839393839393839393839393839393839393839393839393839393C3939
+ 3C39393C39393C39393C39CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE4245424245
+ 424245424A494A4A494A4A494A4A494A4A494A4A494A4A494A4A494A4A4D4A4A
+ 4D4A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A4A4D4A525152525152525152525152
+ 525152525152525152525152525552525552525552525552525552CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A636163636163
+ 6361636361636361636361636361636361636365636365636365636365636365
+ 636365636365636365636B696B6B696B6B696B6B696B6B696B6B696B6B696B6B
+ 696B6B6D6BCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE7371737371737371737375737375737375
+ 737375737375737375737375737375737B797B7B797B7B797B7B797B7B797B7B
+ 797B7B797B7B797B7B7D7B7B7D7B7B7D7B7B7D7B7B7D7B7B7D7B7B7D7B7B7D7B
+ 848284848284CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE8C
+ 8A8C8C8A8C8C8A8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C
+ 8C8E8C9492949492949492949492949492949492949492949492949496949496
+ 949496949496949496949496949496949496949C9A9C9C9A9C9C9A9C9C9A9C9C
+ 9A9C9C9A9C9C9A9C9C9A9CCECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCEADAAADADAEADADAEADADAEADADAEADADAEAD
+ ADAEADADAEADADAEADB5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B2
+ B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5BDBABDBDBABDBD
+ BABDBDBABDBDBABDBDBABDBDBABDBDBABDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBD
+ BDBEBDBDBEBDBDBEBDC6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCED6D3
+ D6D6D3D6D6D3D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6
+ D7D6DEDBDEDEDBDEDEDBDEDEDBDEDEDBDEDEDBDEDEDBDEDEDBDEDEDFDEDEDFDE
+ DEDFDEDEDFDEDEDFDEDEDFDEDEDFDEDEDFDEE7E3E7E7E3E7E7E3E7E7E3E7E7E3
+ E7E7E3E7E7E3E7E7E3E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7
+ E7E7EFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEFEFEFEFEF
+ EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFCECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE31303131303131303131
+ 3431313431313431313431313431313431313431313431393839393839393839
+ 393839393839393839393839393839393839393839393C39393C39393C39393C
+ 39393C39393C39CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE4245424245424A494A
+ 4A494A4A494A4A494A4A494A4A494A4A494A4A494A4A4D4A4A4D4A4A4D4A4A4D
+ 4A4A4D4A4A4D4A4A4D4A4A4D4A52515252515252515252515252515252515252
+ 5152525152525552525552525552525552525552525552CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE5A5D
+ 5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A5A5D5A63616363616363616363616363
+ 6163636163636163636163636563636563636563636563636563636563636563
+ 6365636B696B6B696B6B696B6B696B6B696B6B696B6B696B6B696B6B6D6B6B6D
+ 6BCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE737173737173737573737573737573737573737573
+ 7375737375737375737B797B7B797B7B797B7B797B7B797B7B797B7B797B7B79
+ 7B7B7D7B7B7D7B7B7D7B7B7D7B7B7D7B7B7D7B7B7D7B7B7D7B84828484828484
+ 8284CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE8C8A
+ 8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C8C8E8C94929494
+ 9294949294949294949294949294949294949294949694949694949694949694
+ 9496949496949496949496949C9A9C9C9A9C9C9A9C9C9A9C9C9A9C9C9A9CCECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCEADAEADADAEADADAEADADAEADADAEADADAEADADAEADAD
+ AEADB5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B2B5B5B6B5B5B6B5
+ B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5B5B6B5BDBABDBDBABDBDBABDBDBABDBDBA
+ BDBDBABDBDBABDBDBABDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBDBEBDBD
+ BEBDC6C3C6C6C3C6CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCED6D3D6D6D3D6
+ D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6D6D7D6DEDBDEDEDB
+ DEDEDBDEDEDBDEDEDBDEDEDBDEDEDBDEDEDBDEDEDFDEDEDFDEDEDFDEDEDFDEDE
+ DFDEDEDFDEDEDFDEDEDFDEE7E3E7E7E3E7E7E3E7E7E3E7E7E3E7E7E3E7E7E3E7
+ E7E3E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7EFEBEFEFEB
+ EFEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEBEFEFEFEFEFEFEFEFEFEFEFEFEFCE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE000000000000000000000000000000000000000000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE3134313134
+ 3131343131343131343131343131343139383939383939383939383939383939
+ 3839393839393839393839393839393C39393C39393C39393C39393C39393C39
+ 393C39CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000
+ 0000000000000000000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE737173737573CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE848284848284CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE8C8E8C8C8E8C8C8E8C8C8E8C9492949492949492949492
+ 9494929494929494929494929494969494969494969494969494969494969494
+ 96949496949C9A9C9C9A9C9C9A9C9C9A9CCECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCEBDBEBDBDBEBDBDBEBDBDBEBDCECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCEE7E3E7E7E3E7E7E3E7E7E3E7E7E3E7E7E3E7E7E7E7E7
+ E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7EFEBEFEFEBEFCECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE313431
+ 313431313431313431393839393839393839393839393839393839CECFCECECF
+ CECECFCECECFCECECFCECECFCE000000000000000000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000
+ 00000000000000000000000000000000000000000000000000000000CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE949294949294949294949294949294
+ 9492949492949496949496949496949496949496949496949496949496949C9A
+ 9C9C9A9C9C9A9CCECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE00000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE000000000000000000000000CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE9496949496949496949496949496949496949C9A9CCECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000
+ 00000000000000000000000000000000000000000000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE000000000000000000000000CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE000000000000000000000000000000000000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE000000000000000000CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000
+ 000000000000000000000000000000000000CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 000000000000000000000000000000000000CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE000000000000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000
+ 0000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE000000000000000000000000000000CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE000000000000000000000000000000CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000
+ 0000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE000000000000000000CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000
+ 00000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE000000000000000000000000000000CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000
+ 00000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000
+ 000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE000000000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000
+ 00000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE000000000000000000000000000000000000
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE000000000000000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE000000000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000
+ 000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE000000000000000000000000000000000000CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE000000000000CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE000000000000000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000
+ 000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000
+ 0000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE000000000000000000000000000000000000CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE000000000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000
+ 0000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000
+ 00000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00
+ 0000000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE000000000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000
+ 00000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000
+ 000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000
+ 00000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000
+ 000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000
+ 000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000
+ 000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE00000000000000000000000000000000
+ 0000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000
+ 000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000
+ 0000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE00000000000000000000000000000000000000
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000000000
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000
+ 00000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE0000000000000000000000000000000000000000000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE000000000000000000000000000000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000
+ 000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE000000000000000000000000000000000000000000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE000000000000000000000000000000000000000000CECFCECE
+ CFCECECFCECECFCECECFCE000000000000000000000000000000CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE000000000000000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE000000000000000000000000000000000000000000000000000000CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE000000000000000000000000000000000000CECFCECECFCECECF
+ CECECFCECECFCE000000000000000000000000000000CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE000000000000000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000
+ 000000000000000000000000000000CECFCE000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE000000000000000000000000000000000000CECFCECECFCECECFCECECFCE
+ CECFCE000000000000000000000000000000CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE000000000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 0000000000000000000000CECFCECECFCE000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000
+ 00000000000000000000000000000000000000CECFCECECFCECECFCECECFCE00
+ 0000000000000000000000000000000000000000000000000000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE000000000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000
+ 00000000000000CECFCECECFCE000000000000000000CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000
+ 000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCE0000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000
+ 000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000
+ 000000CECFCECECFCECECFCE000000000000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000
+ 0000000000000000000000CECFCECECFCECECFCECECFCECECFCE000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000
+ 0000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000CE
+ CFCECECFCECECFCE000000000000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000
+ 00000000000000CECFCECECFCECECFCECECFCECECFCE00000000000000000000
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000
+ 000000000000000000000000000000000000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000
+ 00000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE000000000000000000000000000000CECFCECECF
+ CECECFCE000000000000000000000000CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE000000000000000000000000000000000000
+ 000000CECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000
+ 0000000000000000000000000000000000000000CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECE000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000
+ 000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCE000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE000000000000000000000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000
+ 00000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECE000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE000000000000000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCE000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE000000000000000000000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCE000000000000000000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000
+ 000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE000000000000000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECF
+ CE000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE000000000000000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCE000000000000000000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000
+ 0000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE000000000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 0000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCE000000
+ 000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000
+ 00000000000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCE000000000000000000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000
+ 00000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE000000000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000
+ 00000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000
+ 000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE000000000000000000000000CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000
+ 000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000
+ 000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000
+ 0000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE000000000000000000000000000000CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000
+ 0000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000
+ CECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000
+ 00000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 0000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE000000000000000000000000000000CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000
+ 00000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE000000000000000000000000000000000000CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCE000000000000000000000000000000000000
+ 000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000
+ 00000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE000000000000000000000000000000CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000
+ 000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE000000000000000000000000000000CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000CECF
+ CECECFCECECFCECECFCE000000000000000000000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000
+ 000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE000000000000000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE000000000000000000000000000000CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE000000000000000000CECFCECECFCE
+ CECFCE000000000000000000000000000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000000000
+ 0000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000
+ 000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE000000000000000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE000000000000000000000000000000CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE000000000000000000000000CECFCE00
+ 0000000000000000000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000
+ 0000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE000000000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00
+ 0000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000000000
+ 00000000000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE000000000000000000000000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE000000000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000
+ 00000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE000000000000000000000000000000000000
+ 000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE000000000000000000000000CECFCECECFCECE
+ CFCECECFCECECFCE000000000000000000000000000000000000CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000
+ 000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000
+ 000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE00000000000000000000000000000000000000
+ 0000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000
+ 0000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000000000
+ 0000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000000000000000000000000000000000
+ 00000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000
+ 000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000
+ 00000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000CECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000
+ 000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE000000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCE000000000000000000000000000000CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE000000000000000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE000000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCE000000000000000000000000000000CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE000000000000000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE000000000000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCE000000000000000000000000000000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE000000000000000000000000CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE000000000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE000000000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000
+ 000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000
+ 00000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000
+ 00000000000000000000000000000000000000CECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000
+ 000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCE000000000000000000000000000000000000
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCE000000000000000000000000000000000000CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCE000000000000000000000000000000000000CECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE000000000000000000000000000000000000CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000
+ 000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 0000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000
+ 00000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000
+ 000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000CE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCE000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCE000000000000000000000000000000CECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECE000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCE000000000000000000000000000000CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECE000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCE000000000000000000000000000000CECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCE000000000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000
+ 00000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000000000
+ 000000000000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000000000000000
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000000000000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCE000000000000000000000000000000
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCE000000000000000000000000000000CECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCE000000000000000000000000000000000000CECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCE000000000000000000000000000000000000CECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CE000000000000000000000000000000000000000000CECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE000000
+ 000000000000000000000000000000000000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 0000000000000000000000000000000000000000CECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000000000
+ 00000000000000000000000000000000CECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCE0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ 0000000000CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE00000000
+ 00CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCE0000000000CECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECE
+ CFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCE
+ CECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECFCECECF
+ CECECFCECECFCECECFCECECFCECECFCE00000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000CECEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFCECE}
+ Transparent = True
+ end
+ object devotion: TLabel
+ Left = 44
+ Top = 172
+ Width = 341
+ Height = 141
+ Alignment = taCenter
+ AutoSize = False
+ Transparent = True
+ WordWrap = True
+ end
+ object Button1: TButton
+ Left = 304
+ Top = 316
+ Width = 75
+ Height = 25
+ Anchors = [akLeft, akBottom]
+ Caption = '&OK'
+ Default = True
+ ModalResult = 1
+ TabOrder = 0
+ end
+end
diff --git a/apps/windoze/CBuilder5/BibleCS/splashfrm.h b/apps/windoze/CBuilder5/BibleCS/splashfrm.h
new file mode 100644
index 0000000..03be987
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/splashfrm.h
@@ -0,0 +1,26 @@
+//---------------------------------------------------------------------------
+
+#ifndef splashfrmH
+#define splashfrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+#include <Graphics.hpp>
+//---------------------------------------------------------------------------
+class TsplashForm : public TForm
+{
+__published: // IDE-managed Components
+ TImage *Image1;
+ TButton *Button1;
+ TLabel *devotion;
+private: // User declarations
+public: // User declarations
+ __fastcall TsplashForm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TsplashForm *splashForm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/BibleCS/sword.bpr b/apps/windoze/CBuilder5/BibleCS/sword.bpr
new file mode 100644
index 0000000..7c6541c
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/sword.bpr
@@ -0,0 +1,153 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="stage\sword.exe"/>
+ <OBJFILES value="obj\sword.obj obj\mainfrm.obj obj\AboutBoxfrm.obj obj\bookmarkfrm.obj
+ obj\newbmfilefrm.obj obj\optionfrm.obj obj\searchfrm.obj
+ obj\biblecsmgr.obj obj\ModInstForm.obj obj\vrslstfrm.obj
+ obj\editentryfrm.obj obj\versesel.obj obj\RangeMaintFrm.obj
+ obj\ModVisFrm.obj obj\swdisprtfchap.obj obj\swdisprtf.obj
+ rxlib\RxRichEd.obj rxlib\Maxmin.obj obj\DevOfTheDay.obj obj\SplashPage.obj
+ obj\FontSel.obj rxlib\Rxcombos.obj rxlib\Vclutils.obj rxlib\Rxcconst.obj
+ rxlib\Rxconst.obj obj\StudyProfessor.obj"/>
+ <RESFILES value="sword.res"/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES) mainfrm.dfm AboutBoxfrm.dfm bookmarkfrm.dfm newbmfilefrm.dfm
+ optionfrm.dfm searchfrm.dfm ModInstForm.dfm vrslstfrm.dfm editentryfrm.dfm
+ versesel.dfm RangeMaintFrm.dfm ModVisFrm.dfm DevOfTheDay.dfm
+ SplashPage.dfm FontSel.dfm StudyProfessor.dfm"/>
+ <LIBFILES value="swordlib.lib ..\..\..\..\..\icu-sword\as_is\borland\icucommon.lib
+ ..\..\..\..\..\icu-sword\as_is\borland\icudatab.lib
+ ..\..\..\..\..\icu-sword\as_is\borland\icui18n.lib"/>
+ <LIBRARIES value="bcbie50.lib vcljpg50.lib nmfast50.lib vclbde50.lib vcldb50.lib vclx50.lib
+ vcl50.lib"/>
+ <SPARELIBS value="vcl50.lib vclx50.lib vcldb50.lib vclbde50.lib nmfast50.lib vcljpg50.lib
+ bcbie50.lib"/>
+ <PACKAGES value="Vcl50.bpi Vclx50.bpi bcbsmp50.bpi Qrpt50.bpi Vcldb50.bpi Vclbde50.bpi
+ ibsmp50.bpi vcldbx50.bpi TeeUI50.bpi TeeDB50.bpi Tee50.bpi TeeQR50.bpi
+ VCLIB50.bpi bcbie50.bpi vclie50.bpi Inetdb50.bpi Inet50.bpi NMFast50.bpi
+ dclocx50.bpi bcb2kaxserver50.bpi"/>
+ <PATHCPP value=".;..\..\..\windoze;rxlib"/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="ilink32"/>
+ <USERDEFINES value="_ICU_;_DEBUG"/>
+ <SYSDEFINES value="NO_STRICT"/>
+ <MAINSOURCE value="sword.cpp"/>
+ <INCLUDEPATH value="..\..;..\..\..\..\..\icu-sword\source\common;..\..\..\..\..\icu-sword\source\i18n;..\..\..\..\include;$(BCB)\include;$(BCB)\include\vcl;rxlib"/>
+ <LIBPATH value="..\..;..\..\..\..\lib;&quot;C:\Program Files\Borland\CBuilder5\RX\Units\&quot;;$(BCB)\Projects\Lib;RX\Units;rxlib;..\InstallMgr;&quot;C:\program files\borland\cbuilder3\projects\&quot;;C:\borland\cbuilder3\lib\release\;$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par -w-8027 -w-8026"/>
+ <WARNOPTSTR value=""/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\..\..\..\..\icu-sword\source\common
+ -I..\..\..\..\..\icu-sword\source\i18n -I..\..
+ -I&quot;C:\Program Files\Borland\CBuilder5\RX\Units\.&quot; -I..\..\..\..\include
+ -I$(BCB)\include -I$(BCB)\include\vcl -Irxlib -src_suffix cpp -D_ICU_
+ -D_DEBUG"/>
+ <CFLAG1 value="-vGc -vGt -vGd -Od -Vx -Ve -RT- -X- -r- -a8 -4 -b- -k -y -v -vi- -c -tW -tWM"/>
+ <PFLAGS value="-N2obj -N0obj -$Y+ -$W -$O- -v -M -JPHNE"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="-Iobj -D&quot;&quot; -aa -Tpe -GD -s -Gn -v"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0w32.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="cg32.lib $(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=1
+AutoIncBuild=1
+MajorVer=1
+MinorVer=5
+Release=3
+Build=46
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=CrossWire Software &amp; Bible Society
+FileDescription=Windows 32bit User Interface to The SWORD Project
+FileVersion=1.5.3.46
+InternalName=biblecs
+LegalCopyright=(c) 2001 CrossWire Bible Society under the terms of the GNU General Public License
+LegalTrademarks=
+OriginalFilename=
+ProductName=The SWORD Project
+ProductVersion=1.5.3
+Comments=Seek Him and you will find Him
+
+[HistoryLists\hlIncludePath]
+Count=7
+Item0=..\..\..\windoze;..\..\..\..\..\icu-sword\source\common;..\..\..\..\..\icu-sword\source\i18n;..\..\..\..\include;$(BCB)\include;$(BCB)\include\vcl;rxlib
+Item1=..\..;..\..\..\..\..\icu-sword\source\common;..\..\..\..\..\icu-sword\source\i18n;..\..\..\windoze;..\..\..\..\include;$(BCB)\include;$(BCB)\include\vcl;rxlib
+Item2=..\..\..\..\..\icu-sword\source\common;..\..\..\..\..\icu-sword\source\i18n;..\..;..\..\..\..\include;$(BCB)\include;$(BCB)\include\vcl;rxlib
+Item3=..\..\..\..\..\icu-sword\source\common;..\..\..\..\..\icu-sword\source\i18n;..\..\..\windoze;..\..\..\..\include;$(BCB)\include;$(BCB)\include\vcl;rxlib
+Item4=..\..\..\..\..\icu-sword\source\common\;..\..\..\..\..\icu-sword\source\i18n\;..\..;..\..\..\..\include;$(BCB)\include;$(BCB)\include\vcl;rxlib
+Item5=C:\icu-sword\source\common\;C:\icu-sword\source\i18n\;..\..;C:\Program Files\Borland\CBuilder5\RX\Units\;..\..\..\..\include;$(BCB)\include;$(BCB)\include\vcl;rxlib
+Item6=..\..\..\..\..\icu-sword\source\common;..\..\..\..\..\icu-sword\source\i18n;..\..;C:\Program Files\Borland\CBuilder5\RX\Units\;..\..\..\..\include;$(BCB)\include;$(BCB)\include\vcl;rxlib
+
+[HistoryLists\hlLibraryPath]
+Count=5
+Item0=..\..\..\windoze;..\..\..\..\lib;C:\Program Files\Borland\CBuilder5\RX\Units\;$(BCB)\Projects\Lib;RX\Units;rxlib;..\InstallMgr;C:\program files\borland\cbuilder3\projects\;C:\borland\cbuilder3\lib\release\;$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..\..;..\..\..\windoze;..\..\..\..\lib;C:\Program Files\Borland\CBuilder5\RX\Units\;$(BCB)\Projects\Lib;RX\Units;rxlib;..\InstallMgr;C:\program files\borland\cbuilder3\projects\;C:\borland\cbuilder3\lib\release\;$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\..;..\..\..\..\lib;C:\Program Files\Borland\CBuilder5\RX\Units\;$(BCB)\Projects\Lib;RX\Units;rxlib;..\InstallMgr;C:\program files\borland\cbuilder3\projects\;C:\borland\cbuilder3\lib\release\;$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\..;..\..\..\..\lib\;C:\Program Files\Borland\CBuilder5\RX\Units\;$(BCB)\Projects\Lib;RX\Units;rxlib;..\InstallMgr;C:\program files\borland\cbuilder3\projects\;C:\borland\cbuilder3\lib\release\;$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..;C:\Program Files\Borland\CBuilder5\RX\Units\;$(BCB)\Projects\Lib;RX\Units;rxlib;..\InstallMgr;C:\program files\borland\cbuilder3\projects\;C:\borland\cbuilder3\lib\release\;$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_DEBUG
+Item1=_ICU_
+
+[HistoryLists\hlIntOutputDir]
+Count=2
+Item0=obj
+Item1=C:\sword\apps\windoze\CBuilder5\BibleCS\obj
+
+[HistoryLists\hlFinalOutputDir]
+Count=4
+Item0=stage\
+Item1=C:\Documents and Settings\Michelle Trotz\My Documents\My Projects\The Sword Project\Stage_Sword\
+Item2=C:\Documents and Settings\Michelle Trotz\My Documents\My Projects\The Sword Project\Stage_Sword
+Item3=C:\sword\apps\windoze\CBuilder5\BibleCS\stage
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=1
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/BibleCS/sword.cpp b/apps/windoze/CBuilder5/BibleCS/sword.cpp
new file mode 100644
index 0000000..c6774bf
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/sword.cpp
@@ -0,0 +1,146 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+#include "SplashPage.h"
+#include <winreg.h>
+#include <dir.h>
+#include "sword.h"
+
+USERES("sword.res");
+USEFORM("mainfrm.cpp", Form1);
+USEFORM("AboutBoxfrm.cpp", AboutBox);
+USEFORM("bookmarkfrm.cpp", Bookmarksfrm);
+USEFORM("newbmfilefrm.cpp", NewBMfrm);
+USEFORM("optionfrm.cpp", Optionsfrm);
+USEFORM("searchfrm.cpp", Form2);
+USEUNIT("biblecsmgr.cpp");
+USEFORM("ModInstForm.cpp", ModInstFrm);
+USEFORM("vrslstfrm.cpp", VerseListFrm);
+USEFORM("editentryfrm.cpp", EditEntry);
+USEFORM("versesel.cpp", VerseSelFrm);
+USELIB("swordlib.lib");
+USEFORM("RangeMaintFrm.cpp", RangeMaintForm);
+USEFORM("ModVisFrm.cpp", ModVisForm);
+USEUNIT("..\..\swdisprtfchap.cpp");
+USEUNIT("..\..\swdisprtf.cpp");
+USEOBJ("rxlib\RxRichEd.obj");
+USEOBJ("rxlib\Maxmin.obj");
+USEFORM("DevOfTheDay.cpp", DevOfTheDay2);
+USEFORM("SplashPage.cpp", SplashPg);
+USEFORM("FontSel.cpp", FontSelFrm);
+USEOBJ("rxlib\Rxcombos.obj");
+USEOBJ("rxlib\Vclutils.obj");
+USEOBJ("rxlib\Rxcconst.obj");
+USEOBJ("rxlib\Rxconst.obj");
+//---------------------------------------------------------------------------
+USEFORM("StudyProfessor.cpp", Form3);
+USELIB("..\..\..\..\..\icu-sword\as_is\borland\icucommon.lib");
+USELIB("..\..\..\..\..\icu-sword\as_is\borland\icudatab.lib");
+USELIB("..\..\..\..\..\icu-sword\as_is\borland\icui18n.lib");
+//---------------------------------------------------------------------------
+WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
+
+ LONG result;
+
+ result = Application->ExeName.Length();
+ char * dir = new char[result + 1];
+ strcpy (dir, Application->ExeName.c_str());
+ for (;result > 0 && dir[result] != '\\'; result--) {
+ dir[result] = 0;
+ }
+ chdir(dir);
+ delete [] dir;
+
+ try {
+ HKEY hkey;
+ HWND otherInst;
+
+ // see if there's a previous instance running
+ otherInst = ::FindWindow(NULL, "The SWORD Project for Windows");
+ // if so, and we have an argument, send the argument to the other instance
+ if (otherInst && *lpCmdLine) {
+ result = RegCreateKeyEx(HKEY_CLASSES_ROOT, "sword\\OpenVerse", NULL, "", NULL, KEY_READ | KEY_WRITE, NULL, &hkey, NULL);
+ result = RegSetValueEx(hkey, NULL, 0, REG_SZ, lpCmdLine, strlen(lpCmdLine) + 1);
+ result = RegCloseKey(hkey);
+
+ PostMessage(otherInst, WM_VERSE, NULL, NULL);
+ return 0;
+ }
+
+ // adjust the registry for our private protocol using the current path
+ result = RegCreateKeyEx(HKEY_CLASSES_ROOT, "sword", NULL, "", NULL, KEY_READ | KEY_WRITE, NULL, &hkey, NULL);
+ result = RegSetValueEx(hkey, NULL, 0, REG_SZ, "URL:SWORD Protocol", strlen("URL:SWORD Protocol") + 1);
+ result = RegSetValueEx(hkey, "URL Protocol", 0, REG_SZ, "", 1);
+ result = RegCloseKey(hkey);
+ result = RegCreateKeyEx(HKEY_CLASSES_ROOT, "sword\\DefaultIcon", NULL, "", NULL, KEY_READ | KEY_WRITE, NULL, &hkey, NULL);
+ result = RegSetValueEx(hkey, NULL, 0, REG_SZ, Application->ExeName.c_str(), Application->ExeName.Length() + 1);
+ result = RegCloseKey(hkey);
+ AnsiString opencommand = Application->ExeName + " \"%1\"";
+ result = RegCreateKeyEx(HKEY_CLASSES_ROOT, "sword\\shell\\open\\command", NULL, "", NULL, KEY_READ | KEY_WRITE, NULL, &hkey, NULL);
+ result = RegSetValueEx(hkey, NULL, 0, REG_SZ, opencommand.c_str(), opencommand.Length() + 1);
+ result = RegCloseKey(hkey);
+
+ // don't override Logos' setting if it exists
+ result = RegOpenKeyEx(HKEY_CLASSES_ROOT, "libronixdls", 0, KEY_READ | KEY_WRITE, &hkey);
+ if (!result) {
+ char* libStr = new char[32];
+ unsigned long libSize = 32;
+ result = RegQueryValueEx(hkey, NULL, NULL, NULL, libStr, &libSize);
+ if (!result) {
+ if (strstr(libStr, "SWORD")) {
+ result = 1;
+ }
+ }
+ }
+ if (result) {
+ result = RegCreateKeyEx(HKEY_CLASSES_ROOT, "libronixdls", NULL, "", NULL, KEY_READ | KEY_WRITE, NULL, &hkey, NULL);
+ result = RegSetValueEx(hkey, NULL, 0, REG_SZ, "URL:SWORD Protocol", strlen("URL:SWORD Protocol") + 1);
+ result = RegSetValueEx(hkey, "URL Protocol", 0, REG_SZ, "", 1);
+ result = RegCloseKey(hkey);
+ result = RegCreateKeyEx(HKEY_CLASSES_ROOT, "libronixdls\\DefaultIcon", NULL, "", NULL, KEY_READ | KEY_WRITE, NULL, &hkey, NULL);
+ result = RegSetValueEx(hkey, NULL, 0, REG_SZ, Application->ExeName.c_str(), Application->ExeName.Length() + 1);
+ result = RegCloseKey(hkey);
+ AnsiString opencommand = Application->ExeName + " \"%1\"";
+ result = RegCreateKeyEx(HKEY_CLASSES_ROOT, "libronixdls\\shell\\open\\command", NULL, "", NULL, KEY_READ | KEY_WRITE, NULL, &hkey, NULL);
+ result = RegSetValueEx(hkey, NULL, 0, REG_SZ, opencommand.c_str(), opencommand.Length() + 1);
+ result = RegCloseKey(hkey);
+ }
+ }
+
+ catch (Exception &exception) {
+ Application->ShowException(&exception);
+ }
+
+ try {
+ Application->Initialize();
+ Application->Title = "The SWORD Project";
+ SplashPg = new TSplashPg(static_cast<void*>(NULL));
+ SplashPg->Show();
+ Application->ProcessMessages();
+ Application->CreateForm(__classid(TForm1), &Form1);
+
+
+ if (*lpCmdLine)
+ Application->MainForm->Tag = (int)lpCmdLine;
+ Application->CreateForm(__classid(TAboutBox), &AboutBox);
+ Application->CreateForm(__classid(TBookmarksfrm), &Bookmarksfrm);
+ Application->CreateForm(__classid(TNewBMfrm), &NewBMfrm);
+ Application->CreateForm(__classid(TOptionsfrm), &Optionsfrm);
+ Application->CreateForm(__classid(TForm2), &Form2);
+ Application->CreateForm(__classid(TModInstFrm), &ModInstFrm);
+ Application->CreateForm(__classid(TVerseListFrm), &VerseListFrm);
+ Application->CreateForm(__classid(TEditEntry), &EditEntry);
+ Application->CreateForm(__classid(TVerseSelFrm), &VerseSelFrm);
+ Application->CreateForm(__classid(TRangeMaintForm), &RangeMaintForm);
+ Application->CreateForm(__classid(TModVisForm), &ModVisForm);
+ Application->CreateForm(__classid(TDevOfTheDay2), &DevOfTheDay2);
+ Application->CreateForm(__classid(TForm3), &Form3);
+ Application->Run();
+ delete SplashPg;
+ }
+ catch (Exception &exception) {
+ Application->ShowException(&exception);
+ }
+ return 0;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder5/BibleCS/sword.h b/apps/windoze/CBuilder5/BibleCS/sword.h
new file mode 100644
index 0000000..5bfa702
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/sword.h
@@ -0,0 +1 @@
+#define WM_VERSE (WM_APP + 1995)
diff --git a/apps/windoze/CBuilder5/BibleCS/sword.ico b/apps/windoze/CBuilder5/BibleCS/sword.ico
new file mode 100644
index 0000000..694fbb1
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/sword.ico
Binary files differ
diff --git a/apps/windoze/CBuilder5/BibleCS/sword.res b/apps/windoze/CBuilder5/BibleCS/sword.res
new file mode 100644
index 0000000..365eac6
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/sword.res
Binary files differ
diff --git a/apps/windoze/CBuilder5/BibleCS/swordlib.bpr b/apps/windoze/CBuilder5/BibleCS/swordlib.bpr
new file mode 100644
index 0000000..c4e4ae0
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/swordlib.bpr
@@ -0,0 +1,199 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="..\..\..\..\lib\swordlib.lib"/>
+ <OBJFILES value="..\..\..\..\obj\swordlib.obj ..\..\..\..\obj\versekey.obj
+ ..\..\..\..\obj\swkey.obj ..\..\..\..\obj\listkey.obj
+ ..\..\..\..\obj\strkey.obj ..\..\..\..\obj\swmgr.obj
+ ..\..\..\..\obj\swconfig.obj ..\..\..\..\obj\rawcom.obj
+ ..\..\..\..\obj\swcom.obj ..\..\..\..\obj\rawverse.obj
+ ..\..\..\..\obj\rawstr.obj ..\..\..\..\obj\gbfrtf.obj
+ ..\..\..\..\obj\gbfplain.obj ..\..\..\..\obj\rawld.obj
+ ..\..\..\..\obj\swld.obj ..\..\..\..\obj\rawtext.obj
+ ..\..\..\..\obj\swtext.obj ..\..\..\..\obj\swmodule.obj
+ ..\..\..\..\obj\tbdisp.obj ..\..\..\..\obj\swwinlog.obj
+ ..\..\..\..\obj\hrefcom.obj ..\..\..\..\obj\filemgr.obj
+ ..\..\..\..\obj\rawfiles.obj ..\..\..\..\obj\utilstr.obj
+ ..\..\..\..\obj\utilconf.obj ..\..\..\..\obj\Greek2Greek.obj
+ ..\..\..\..\obj\regex.obj ..\..\..\..\obj\swlog.obj
+ ..\..\..\..\obj\swdisp.obj ..\..\..\..\obj\gbfstrongs.obj
+ ..\..\..\..\obj\gbffootnotes.obj ..\..\..\..\obj\cipherfil.obj
+ ..\..\..\..\obj\sapphire.obj ..\..\..\..\obj\swcipher.obj
+ ..\..\..\..\obj\swlocale.obj ..\..\..\..\obj\localemgr.obj
+ ..\..\..\..\obj\lzsscomprs.obj ..\..\..\..\obj\zverse.obj
+ ..\..\..\..\obj\swcomprs.obj ..\..\..\..\obj\ztext.obj
+ ..\..\..\..\obj\thmlrtf.obj ..\..\..\..\obj\gbfhtml.obj
+ ..\..\..\..\obj\gbfthml.obj ..\..\..\..\obj\plainfootnotes.obj
+ ..\..\..\..\obj\plainhtml.obj ..\..\..\..\obj\rtfhtml.obj
+ ..\..\..\..\obj\thmlgbf.obj ..\..\..\..\obj\thmlhtml.obj
+ ..\..\..\..\obj\thmlplain.obj ..\..\..\..\obj\zcom.obj
+ ..\..\..\..\obj\gbfheadings.obj ..\..\..\..\obj\rawstr4.obj
+ ..\..\..\..\obj\rawld4.obj ..\..\..\..\obj\zipcomprs.obj
+ ..\..\..\..\obj\uncompr.obj ..\..\..\..\obj\compress.obj
+ ..\..\..\..\obj\inflate.obj ..\..\..\..\obj\deflate.obj
+ ..\..\..\..\obj\zutil.obj ..\..\..\..\obj\trees.obj
+ ..\..\..\..\obj\maketree.obj ..\..\..\..\obj\infutil.obj
+ ..\..\..\..\obj\inftrees.obj ..\..\..\..\obj\inffast.obj
+ ..\..\..\..\obj\infcodes.obj ..\..\..\..\obj\infblock.obj
+ ..\..\..\..\obj\crc32.obj ..\..\..\..\obj\adler32.obj
+ ..\..\..\..\obj\gzio.obj ..\..\..\..\obj\untgz.obj
+ ..\..\..\..\obj\unicodertf.obj ..\..\..\..\obj\gbfmorph.obj
+ ..\..\..\..\obj\thmlolb.obj ..\..\..\..\obj\roman.obj
+ ..\..\..\..\obj\gbfhtmlhref.obj ..\..\..\..\obj\latin1utf8.obj
+ ..\..\..\..\obj\latin1utf16.obj ..\..\..\..\obj\scsuutf8.obj
+ ..\..\..\..\obj\swbasicfilter.obj ..\..\..\..\obj\thmlhtmlhref.obj
+ ..\..\..\..\obj\utf8cantillation.obj ..\..\..\..\obj\utf8greekaccents.obj
+ ..\..\..\..\obj\utf8hebrewpoints.obj
+ ..\..\..\..\obj\utf8transliterator.obj ..\..\..\..\obj\utf8utf16.obj
+ ..\..\..\..\obj\utf16utf8.obj ..\..\..\..\obj\utf8latin1.obj
+ ..\..\..\..\obj\utf8html.obj ..\..\..\..\obj\thmlscripref.obj
+ ..\..\..\..\obj\thmlheadings.obj ..\..\..\..\obj\thmllemma.obj
+ ..\..\..\..\obj\thmlmorph.obj ..\..\..\..\obj\thmlfootnotes.obj
+ ..\..\..\..\obj\thmlstrongs.obj ..\..\..\..\obj\utf8nfkd.obj
+ ..\..\..\..\obj\utf8nfc.obj ..\..\..\..\obj\utf8bidireorder.obj
+ ..\..\..\..\obj\utf8arshaping.obj ..\..\..\..\obj\markupfiltmgr.obj
+ ..\..\..\..\obj\encfiltmgr.obj ..\..\..\..\obj\swfiltermgr.obj
+ ..\..\..\..\obj\swversion.obj ..\..\..\..\obj\zld.obj
+ ..\..\..\..\obj\zstr.obj ..\..\..\..\obj\entriesblk.obj
+ ..\..\..\..\obj\swgenbook.obj ..\..\..\..\obj\rawgenbook.obj
+ ..\..\..\..\obj\treekey.obj ..\..\..\..\obj\treekeyidx.obj
+ ..\..\..\..\obj\thmlvariants.obj ..\..\..\..\obj\swcacher.obj
+ ..\..\..\..\obj\greeklexattribs.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value=""/>
+ <LIBRARIES value="nmfast50.lib vclx50.lib vcl50.lib"/>
+ <SPARELIBS value="vcl50.lib vclx50.lib nmfast50.lib"/>
+ <PACKAGES value=""/>
+ <PATHCPP value=".;..\..\..\..\src\keys;..\..\..\..\src\mgr;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\common;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts;..\..\..\..\src\modules;..\..\..\windoze;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\utilfuns;..\..\..\..\src\frontend;..\..\..\..\src\modules\texts\ztext;..\..\..\..\src\modules\comments\zcom;..\..\..\..\src\modules\lexdict\rawld4;..\..\..\..\src\utilfuns\zlib;..\..\..\..\src\modules\lexdict\zld;..\..\..\..\src\modules\genbook;..\..\..\..\src\modules\genbook\rawgenbook"/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value=""/>
+ <RELEASELIBPATH value=""/>
+ <LINKER value="TLib"/>
+ <USERDEFINES value="_ICU_;_DEBUG"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="swordlib.cpp"/>
+ <INCLUDEPATH value="..\..;..\..\..\..\src\modules\genbook\rawgenbook;..\..\..\..\src\modules\genbook;..\..\..\..\src\modules\lexdict\zld;..\..\..\..\..\icu-sword\source\common;..\..\..\..\..\icu-sword\source\i18n;..\..\..\..\src\utilfuns\zlib;..\..\..\..\src\modules\lexdict\rawld4;..\..\..\..\src\modules\comments\zcom;..\..\..\..\src\modules\texts\ztext;..\..\..\..\src\frontend;..\..\..;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\..;..\..\..\..\src\modules\genbook\rawgenbook;..\..\..\..\src\modules\genbook;..\..\..\..\src\modules\lexdict\zld;..\..\..\..\src\utilfuns\zlib;..\..\..\..\src\modules\lexdict\rawld4;..\..\..\..\src\modules\comments\zcom;..\..\..\..\src\modules\texts\ztext;..\..\..\..\src\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys"/>
+ <WARNINGS value="-w-par -w-8027 -w-8026"/>
+ <WARNOPTSTR value=""/>
+ <LISTFILE value=""/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\.. -I..\..\..\..\src\modules\genbook\rawgenbook
+ -I..\..\..\..\src\modules\genbook -I..\..\..\..\src\modules\lexdict\zld
+ -I..\..\..\..\..\icu-sword\source\common
+ -I..\..\..\..\..\icu-sword\source\i18n -I..\..\..\..\src\utilfuns\zlib
+ -I..\..\..\..\src\modules\lexdict\rawld4
+ -I..\..\..\..\src\modules\comments\zcom
+ -I..\..\..\..\src\modules\texts\ztext -I..\..\..\..\src\frontend
+ -I..\..\.. -I..\..\..\..\utilfuns -I..\..\..\framework
+ -I..\..\..\..\src\modules\comments\rawfiles
+ -I..\..\..\..\src\modules\comments\hrefcom -I..\..\..\..\include
+ -I..\..\..\..\frontend -I..\..\..\..\src\utilfuns
+ -I..\..\..\..\src\modules -I..\..\..\..\src\modules\texts
+ -I..\..\..\..\src\modules\texts\rawtext
+ -I..\..\..\..\src\modules\texts\rawgbf -I..\..\..\..\src\modules\lexdict
+ -I..\..\..\..\src\modules\lexdict\rawld -I..\..\..\..\src\modules\filters
+ -I..\..\..\..\src\modules\common -I..\..\..\..\src\modules\comments
+ -I..\..\..\..\src\modules\comments\rawcom -I..\..\..\..\src\mgr
+ -I..\..\..\..\src\keys -I$(BCB)\include -I$(BCB)\include\vcl -src_suffix
+ cpp -D_ICU_"/>
+ <CFLAG1 value="-vGc -vGt -vGd -Od -H=c:\PROGRA~1\borland\CBUILD~2\lib\vcl50.csm -Hc -Vx
+ -Ve -RT- -X- -r- -a8 -4 -b- -k -y -v -vi- -c -g0 -tWM"/>
+ <PFLAGS value="-N2..\..\..\..\obj -N0..\..\..\..\obj -$Y+ -$W -$O- -v -M -JPHNE"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="/P512"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="$(OBJFILES)"/>
+ <ALLRES value=""/>
+ <ALLLIB value="cg32.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[HistoryLists\hlIncludePath]
+Count=10
+Item0=..\..\..\windoze;..\..\..\..\src\modules\genbook\rawgenbook;..\..\..\..\src\modules\genbook;..\..\..\..\src\modules\lexdict\zld;..\..\..\..\..\icu-sword\source\common;..\..\..\..\..\icu-sword\source\i18n;..\..\..\..\src\utilfuns\zlib;..\..\..\..\src\modules\lexdict\rawld4;..\..\..\..\src\modules\comments\zcom;..\..\..\..\src\modules\texts\ztext;..\..\..\..\src\frontend;..\..\..\..\apps;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item1=..\..;..\..\..\windoze;..\..\..\..\src\modules\genbook\rawgenbook;..\..\..\..\src\modules\genbook;..\..\..\..\src\modules\lexdict\zld;..\..\..\..\..\icu-sword\source\common;..\..\..\..\..\icu-sword\source\i18n;..\..\..\..\src\utilfuns\zlib;..\..\..\..\src\modules\lexdict\rawld4;..\..\..\..\src\modules\comments\zcom;..\..\..\..\src\modules\texts\ztext;..\..\..\..\src\frontend;..\..\..;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item2=..\..;..\..\..\windoze;..\..\..\..\src\modules\genbook\rawgenbook;..\..\..\..\src\modules\genbook;..\..\..\..\src\modules\lexdict\zld;..\..\..\..\..\icu-sword\source\common;..\..\..\..\..\icu-sword\source\i18n;..\..\..\..\src\utilfuns\zlib;..\..\..\..\src\modules\lexdict\rawld4;..\..\..\..\src\modules\comments\zcom;..\..\..\..\src\modules\texts\ztext;..\..\..\..\src\frontend;..\..\..\..\apps;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item3=..\..;..\..\..\..\src\modules\genbook\rawgenbook;..\..\..\..\src\modules\genbook;..\..\..\..\src\modules\lexdict\zld;..\..\..\..\..\icu-sword\source\common;..\..\..\..\..\icu-sword\source\i18n;..\..\..\..\src\utilfuns\zlib;..\..\..\..\src\modules\lexdict\rawld4;..\..\..\..\src\modules\comments\zcom;..\..\..\..\src\modules\texts\ztext;..\..\..\..\src\frontend;..\..\..;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item4=..\..;..\..\..\..\src\modules\genbook\rawgenbook;..\..\..\..\src\modules\genbook;..\..\..\..\src\modules\lexdict\zld;..\..\..\..\..\icu-sword\source\common;..\..\..\..\..\icu-sword\source\i18n;..\..\..\windoze;..\..\..\..\src\utilfuns\zlib;..\..\..\..\src\modules\lexdict\rawld4;..\..\..\..\src\modules\comments\zcom;..\..\..\..\src\modules\texts\ztext;..\..\..\..\src\frontend;..\..\..\..\apps;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item5=..\..\..\..\src\modules\genbook\rawgenbook;..\..\..\..\src\modules\genbook;..\..\..\..\src\modules\lexdict\zld;..\..\..\..\..\icu-sword\source\common;..\..\..\..\..\icu-sword\source\i18n;..\..;..\..\..\..\src\utilfuns\zlib;..\..\..\..\src\modules\lexdict\rawld4;..\..\..\..\src\modules\comments\zcom;..\..\..\..\src\modules\texts\ztext;..\..\..\..\src\frontend;..\..\..;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item6=..\..\..\..\src\modules\genbook\rawgenbook;..\..\..\..\src\modules\genbook;..\..\..\..\src\modules\lexdict\zld;..\..\..\..\..\icu-sword\source\common;..\..\..\..\..\icu-sword\source\i18n\;..\..;..\..\..\..\src\utilfuns\zlib;..\..\..\..\src\modules\lexdict\rawld4;..\..\..\..\src\modules\comments\zcom;..\..\..\..\src\modules\texts\ztext;..\..\..\..\src\frontend;..\..\..;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item7=..\..\..\..\src\modules\genbook\rawgenbook;..\..\..\..\src\modules\genbook;..\..\..\..\src\modules\lexdict\zld;C:\icu-sword\source\common\;C:\icu-sword\source\i18n\;..\..;..\..\..\..\src\utilfuns\zlib;..\..\..\..\src\modules\lexdict\rawld4;..\..\..\..\src\modules\comments\zcom;..\..\..\..\src\modules\texts\ztext;..\..\..\..\src\frontend;..\..\..;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item8=..\..\..\..\src\modules\lexdict\zld;C:\icu-sword\source\common\;C:\icu-sword\source\i18n\;..\..;..\..\..\..\src\utilfuns\zlib;..\..\..\..\src\modules\lexdict\rawld4;..\..\..\..\src\modules\comments\zcom;..\..\..\..\src\modules\texts\ztext;..\..\..\..\src\frontend;..\..\..;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item9=..\..\..\..\src\modules\lexdict\zld;..\..\..\..\..\icu-sword\source\common\;..\..\..\..\..\icu-sword\source\i18n\;..\..;..\..\..\..\src\utilfuns\zlib;..\..\..\..\src\modules\lexdict\rawld4;..\..\..\..\src\modules\comments\zcom;..\..\..\..\src\modules\texts\ztext;..\..\..\..\src\frontend;..\..\..;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+
+[HistoryLists\hlLibraryPath]
+Count=6
+Item0=..\..\..\windoze;..\..\..\..\src\modules\genbook\rawgenbook;..\..\..\..\src\modules\genbook;..\..\..\..\src\modules\lexdict\zld;..\..\..\..\src\utilfuns\zlib;..\..\..\..\src\modules\lexdict\rawld4;..\..\..\..\src\modules\comments\zcom;..\..\..\..\src\modules\texts\ztext;..\..\..\..\src\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys
+Item1=..\..;..\..\..\windoze;..\..\..\..\src\modules\genbook\rawgenbook;..\..\..\..\src\modules\genbook;..\..\..\..\src\modules\lexdict\zld;..\..\..\..\src\utilfuns\zlib;..\..\..\..\src\modules\lexdict\rawld4;..\..\..\..\src\modules\comments\zcom;..\..\..\..\src\modules\texts\ztext;..\..\..\..\src\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys
+Item2=..\..;..\..\..\..\src\modules\genbook\rawgenbook;..\..\..\..\src\modules\genbook;..\..\..\..\src\modules\lexdict\zld;..\..\..\..\src\utilfuns\zlib;..\..\..\..\src\modules\lexdict\rawld4;..\..\..\..\src\modules\comments\zcom;..\..\..\..\src\modules\texts\ztext;..\..\..\..\src\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys
+Item3=..\..;..\..\..\..\src\modules\genbook\rawgenbook;..\..\..\..\src\modules\genbook;..\..\..\..\src\modules\lexdict\zld;..\..\..\windoze;..\..\..\..\src\utilfuns\zlib;..\..\..\..\src\modules\lexdict\rawld4;..\..\..\..\src\modules\comments\zcom;..\..\..\..\src\modules\texts\ztext;..\..\..\..\src\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys
+Item4=..\..\..\..\src\modules\genbook\rawgenbook;..\..\..\..\src\modules\genbook;..\..\..\..\src\modules\lexdict\zld;..\..;..\..\..\..\src\utilfuns\zlib;..\..\..\..\src\modules\lexdict\rawld4;..\..\..\..\src\modules\comments\zcom;..\..\..\..\src\modules\texts\ztext;..\..\..\..\src\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys
+Item5=..\..\..\..\src\modules\lexdict\zld;..\..;..\..\..\..\src\utilfuns\zlib;..\..\..\..\src\modules\lexdict\rawld4;..\..\..\..\src\modules\comments\zcom;..\..\..\..\src\modules\texts\ztext;..\..\..\..\src\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_ICU_;_DEBUG
+Item1=_ICU_
+
+[HistoryLists\hlIntOutputDir]
+Count=2
+Item0=..\..\..\..\obj
+Item1=C:\sword\obj
+
+[HistoryLists\hlFinalOutputDir]
+Count=2
+Item0=..\..\..\..\lib\
+Item1=C:\sword\lib
+
+[HistoryLists\hlTlibPageSize]
+Count=2
+Item0=0x0200
+Item1=0x0100
+
+[Debugging]
+DebugSourceDirs=
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=1
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/BibleCS/swordlib.cpp b/apps/windoze/CBuilder5/BibleCS/swordlib.cpp
new file mode 100644
index 0000000..162798c
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/swordlib.cpp
@@ -0,0 +1,119 @@
+//---------------------------------------------------------------------------
+#include <condefs.h>
+#pragma hdrstop
+USEUNIT("..\..\..\..\src\keys\versekey.cpp");
+USEUNIT("..\..\..\..\src\keys\swkey.cpp");
+USEUNIT("..\..\..\..\src\keys\listkey.cpp");
+USEUNIT("..\..\..\..\src\keys\strkey.cpp");
+USEUNIT("..\..\..\..\src\mgr\swmgr.cpp");
+USEUNIT("..\..\..\..\src\mgr\swconfig.cpp");
+USEUNIT("..\..\..\..\src\modules\comments\rawcom\rawcom.cpp");
+USEUNIT("..\..\..\..\src\modules\comments\swcom.cpp");
+USEUNIT("..\..\..\..\src\modules\common\rawverse.cpp");
+USEUNIT("..\..\..\..\src\modules\common\rawstr.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\gbfrtf.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\gbfplain.cpp");
+USEUNIT("..\..\..\..\src\modules\lexdict\rawld\rawld.cpp");
+USEUNIT("..\..\..\..\src\modules\lexdict\swld.cpp");
+USEUNIT("..\..\..\..\src\modules\texts\rawtext\rawtext.cpp");
+USEUNIT("..\..\..\..\src\modules\texts\swtext.cpp");
+USEUNIT("..\..\..\..\src\modules\swmodule.cpp");
+USEUNIT("..\..\tbdisp.cpp");
+USEUNIT("..\..\swwinlog.cpp");
+USEUNIT("..\..\..\..\src\modules\comments\hrefcom\hrefcom.cpp");
+USEUNIT("..\..\..\..\src\mgr\filemgr.cpp");
+USEUNIT("..\..\..\..\src\modules\comments\rawfiles\rawfiles.cpp");
+USEUNIT("..\..\..\..\src\utilfuns\utilstr.cpp");
+USEUNIT("..\..\..\..\src\utilfuns\utilconf.cpp");
+USEUNIT("..\..\..\..\src\utilfuns\Greek2Greek.cpp");
+USEUNIT("..\..\..\..\src\utilfuns\regex.c");
+USEUNIT("..\..\..\..\src\frontend\swlog.cpp");
+USEUNIT("..\..\..\..\src\frontend\swdisp.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\gbfstrongs.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\gbffootnotes.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\cipherfil.cpp");
+USEUNIT("..\..\..\..\src\modules\common\sapphire.cpp");
+USEUNIT("..\..\..\..\src\modules\common\swcipher.cpp");
+USEUNIT("..\..\..\..\src\mgr\swlocale.cpp");
+USEUNIT("..\..\..\..\src\mgr\localemgr.cpp");
+USEUNIT("..\..\..\..\src\modules\common\lzsscomprs.cpp");
+USEUNIT("..\..\..\..\src\modules\common\zverse.cpp");
+USEUNIT("..\..\..\..\src\modules\common\swcomprs.cpp");
+USEUNIT("..\..\..\..\src\modules\texts\ztext\ztext.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\thmlrtf.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\gbfhtml.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\gbfthml.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\plainfootnotes.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\plainhtml.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\rtfhtml.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\thmlgbf.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\thmlhtml.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\thmlplain.cpp");
+USEUNIT("..\..\..\..\src\modules\comments\zcom\zcom.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\gbfheadings.cpp");
+USEUNIT("..\..\..\..\src\modules\common\rawstr4.cpp");
+USEUNIT("..\..\..\..\src\modules\lexdict\rawld4\rawld4.cpp");
+USEUNIT("..\..\..\..\src\modules\common\zipcomprs.cpp");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\uncompr.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\compress.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\inflate.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\deflate.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\zutil.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\trees.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\maketree.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\infutil.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\inftrees.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\inffast.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\infcodes.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\infblock.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\crc32.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\adler32.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\gzio.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\untgz.c");
+USEUNIT("..\..\..\..\src\modules\filters\unicodertf.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\gbfmorph.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\thmlolb.cpp");
+USEUNIT("..\..\..\..\src\utilfuns\roman.c");
+USEUNIT("..\..\..\..\src\modules\filters\gbfhtmlhref.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\latin1utf8.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\latin1utf16.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\scsuutf8.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\swbasicfilter.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\thmlhtmlhref.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\utf8cantillation.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\utf8greekaccents.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\utf8hebrewpoints.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\utf8transliterator.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\utf8utf16.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\utf16utf8.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\utf8latin1.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\utf8html.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\thmlscripref.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\thmlheadings.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\thmllemma.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\thmlmorph.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\thmlfootnotes.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\thmlstrongs.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\utf8nfkd.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\utf8nfc.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\utf8bidireorder.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\utf8arshaping.cpp");
+USEUNIT("..\..\..\..\src\mgr\markupfiltmgr.cpp");
+USEUNIT("..\..\..\..\src\mgr\encfiltmgr.cpp");
+USEUNIT("..\..\..\..\src\mgr\swfiltermgr.cpp");
+USEUNIT("..\..\..\..\src\utilfuns\swversion.cpp");
+USEUNIT("..\..\..\..\src\modules\lexdict\zld\zld.cpp");
+USEUNIT("..\..\..\..\src\modules\common\zstr.cpp");
+USEUNIT("..\..\..\..\src\modules\common\entriesblk.cpp");
+USEUNIT("..\..\..\..\src\modules\genbook\swgenbook.cpp");
+USEUNIT("..\..\..\..\src\modules\genbook\rawgenbook\rawgenbook.cpp");
+USEUNIT("..\..\..\..\src\keys\treekey.cpp");
+USEUNIT("..\..\..\..\src\keys\treekeyidx.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\thmlvariants.cpp");
+USEUNIT("..\..\..\..\src\mgr\swcacher.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\greeklexattribs.cpp");
+//---------------------------------------------------------------------------
+#define Library
+
+// To add a file to the library use the Project menu 'Add to Project'.
+
diff --git a/apps/windoze/CBuilder5/BibleCS/swordprj.bpg b/apps/windoze/CBuilder5/BibleCS/swordprj.bpg
new file mode 100644
index 0000000..c5e4dab
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/swordprj.bpg
@@ -0,0 +1,32 @@
+#------------------------------------------------------------------------------
+VERSION = BWS.01
+#------------------------------------------------------------------------------
+!ifndef ROOT
+ROOT = $(MAKEDIR)\..
+!endif
+#------------------------------------------------------------------------------
+MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$**
+DCC = $(ROOT)\bin\dcc32.exe $**
+BRCC = $(ROOT)\bin\brcc32.exe $**
+#------------------------------------------------------------------------------
+PROJECTS = icucommon.lib icui18n.lib swordlib.lib sword.exe
+#------------------------------------------------------------------------------
+default: sword
+#------------------------------------------------------------------------------
+
+
+swordlib.lib: swordlib.bpr
+ $(MAKE)
+
+sword.exe: sword.bpr
+ $(MAKE)
+
+icui18n.lib: ..\..\..\..\..\icu-sword\as_is\borland\i18n.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+icucommon.lib: ..\..\..\..\..\icu-sword\as_is\borland\common.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+
diff --git a/apps/windoze/CBuilder5/BibleCS/versesel.cpp b/apps/windoze/CBuilder5/BibleCS/versesel.cpp
new file mode 100644
index 0000000..8788580
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/versesel.cpp
@@ -0,0 +1,22 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "versesel.h"
+#include <versekey.h>
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TVerseSelFrm *VerseSelFrm;
+//---------------------------------------------------------------------------
+__fastcall TVerseSelFrm::TVerseSelFrm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TVerseSelFrm::Edit1Change(TObject *Sender)
+{
+ VerseKey trykey = Edit1->Text.c_str();
+ Panel2->Caption = (const char *)trykey;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder5/BibleCS/versesel.dfm b/apps/windoze/CBuilder5/BibleCS/versesel.dfm
new file mode 100644
index 0000000..3c50c6e
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/versesel.dfm
@@ -0,0 +1,63 @@
+object VerseSelFrm: TVerseSelFrm
+ Left = 364
+ Top = 378
+ Width = 265
+ Height = 112
+ Caption = 'Type Verse'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = True
+ Position = poScreenCenter
+ Scaled = False
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Edit1: TEdit
+ Left = 0
+ Top = 0
+ Width = 255
+ Height = 21
+ Anchors = [akLeft, akTop, akRight]
+ TabOrder = 0
+ OnChange = Edit1Change
+ end
+ object Panel2: TPanel
+ Left = 0
+ Top = 21
+ Width = 257
+ Height = 28
+ Align = alBottom
+ TabOrder = 1
+ end
+ object Panel1: TPanel
+ Left = 0
+ Top = 49
+ Width = 257
+ Height = 36
+ Align = alBottom
+ TabOrder = 2
+ object Button1: TButton
+ Left = 51
+ Top = 6
+ Width = 75
+ Height = 25
+ Caption = 'OK'
+ Default = True
+ ModalResult = 1
+ TabOrder = 0
+ end
+ object Button2: TButton
+ Left = 135
+ Top = 6
+ Width = 75
+ Height = 25
+ Anchors = [akTop, akRight]
+ Caption = 'Cancel'
+ ModalResult = 2
+ TabOrder = 1
+ end
+ end
+end
diff --git a/apps/windoze/CBuilder5/BibleCS/versesel.h b/apps/windoze/CBuilder5/BibleCS/versesel.h
new file mode 100644
index 0000000..b4c1981
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/versesel.h
@@ -0,0 +1,27 @@
+//---------------------------------------------------------------------------
+#ifndef verseselH
+#define verseselH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+//---------------------------------------------------------------------------
+class TVerseSelFrm : public TForm
+{
+__published: // IDE-managed Components
+ TEdit *Edit1;
+ TPanel *Panel2;
+ TPanel *Panel1;
+ TButton *Button1;
+ TButton *Button2;
+ void __fastcall Edit1Change(TObject *Sender);
+private: // User declarations
+public: // User declarations
+ __fastcall TVerseSelFrm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TVerseSelFrm *VerseSelFrm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/BibleCS/vrslstfrm.cpp b/apps/windoze/CBuilder5/BibleCS/vrslstfrm.cpp
new file mode 100644
index 0000000..64807c5
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/vrslstfrm.cpp
@@ -0,0 +1,48 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "vrslstfrm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TVerseListFrm *VerseListFrm;
+//---------------------------------------------------------------------------
+__fastcall TVerseListFrm::TVerseListFrm(TComponent* Owner, ListKey &iVerseList)
+ : TForm(Owner), verseList(iVerseList) {
+ pvrtf = new SWDispRTF(this);
+
+ pvrtf->Parent = plPreview;
+ pvrtf->Align = alClient;
+ pvrtf->ScrollBars = ssVertical;
+ pvrtf->ReadOnly = true;
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TVerseListFrm::ListBox1Click(TObject *Sender) {
+ ModMap::iterator target;
+ target = Form1->mainmgr->Modules.find(Form1->PageControl1->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ SWKey *savekey = *(*target).second;
+ (*target).second->SetKey(ListBox1->Items->Strings[ListBox1->ItemIndex].c_str());
+ pvrtf->Display(*(*target).second);
+ (*target).second->SetKey(*savekey);
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TVerseListFrm::ListBox1DblClick(TObject *Sender)
+{
+ *(Form1->DefaultVSKey) = ListBox1->Items->Strings[ListBox1->ItemIndex].c_str();
+ Form1->TextKeyChanged();
+}
+//---------------------------------------------------------------------------
+void __fastcall TVerseListFrm::FormShow(TObject *Sender)
+{
+ for (verseList = TOP; (!verseList.Error()); verseList++)
+ ListBox1->Items->Add((const char *)verseList);
+}
+//---------------------------------------------------------------------------
+
+
+
diff --git a/apps/windoze/CBuilder5/BibleCS/vrslstfrm.dfm b/apps/windoze/CBuilder5/BibleCS/vrslstfrm.dfm
new file mode 100644
index 0000000..65b413f
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/vrslstfrm.dfm
@@ -0,0 +1,39 @@
+object VerseListFrm: TVerseListFrm
+ Left = 363
+ Top = 204
+ Width = 256
+ Height = 315
+ Caption = 'Verse List'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ FormStyle = fsStayOnTop
+ OldCreateOrder = True
+ Position = poScreenCenter
+ OnShow = FormShow
+ PixelsPerInch = 96
+ TextHeight = 13
+ object plPreview: TPanel
+ Left = 0
+ Top = 143
+ Width = 248
+ Height = 145
+ Align = alBottom
+ Caption = 'plPreview'
+ TabOrder = 0
+ end
+ object ListBox1: TListBox
+ Left = 0
+ Top = 0
+ Width = 248
+ Height = 143
+ Align = alClient
+ ItemHeight = 13
+ TabOrder = 1
+ OnClick = ListBox1Click
+ OnDblClick = ListBox1DblClick
+ end
+end
diff --git a/apps/windoze/CBuilder5/BibleCS/vrslstfrm.h b/apps/windoze/CBuilder5/BibleCS/vrslstfrm.h
new file mode 100644
index 0000000..7af64b9
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/vrslstfrm.h
@@ -0,0 +1,29 @@
+//---------------------------------------------------------------------------
+#ifndef vrslstfrmH
+#define vrslstfrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+#include "mainfrm.h"
+//---------------------------------------------------------------------------
+class TVerseListFrm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *plPreview;
+ TListBox *ListBox1;
+ void __fastcall ListBox1Click(TObject *Sender);
+ void __fastcall ListBox1DblClick(TObject *Sender);
+ void __fastcall FormShow(TObject *Sender);
+private: // User declarations
+ SWDispRTF *pvrtf;
+ ListKey &verseList;
+public: // User declarations
+ __fastcall TVerseListFrm(TComponent* Owner, ListKey &iVerseList);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TVerseListFrm *VerseListFrm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/BibleCS/wtbsa.conf b/apps/windoze/CBuilder5/BibleCS/wtbsa.conf
new file mode 100644
index 0000000..ff69dc7
--- /dev/null
+++ b/apps/windoze/CBuilder5/BibleCS/wtbsa.conf
@@ -0,0 +1,20 @@
+[ROOT]
+WTBSA=What the Bible Says About...
+
+[WTBSA]
+Mormons=Mormonism
+Calvan=Calvanism
+
+[Mormons]
+Verse=I Peter 2:8
+
+[Calvan]
+Verse=James 1:19
+TotalDep=Total Depravity of Man
+UncondEl=Unconditional Election
+LimAt=Limited Atonement
+IrrGrace=Irresistable Grace
+PersSt=Perseverence of the Saints
+
+[TotalDep]
+Verse=Romans 1:1
diff --git a/apps/windoze/CBuilder5/InstallMgr/FTPDownload.cpp b/apps/windoze/CBuilder5/InstallMgr/FTPDownload.cpp
new file mode 100644
index 0000000..eb74177
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/FTPDownload.cpp
@@ -0,0 +1,29 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "FTPDownload.h"
+#pragma package(smart_init)
+//---------------------------------------------------------------------------
+// Important: Methods and properties of objects in VCL can only be
+// used in a method called using Synchronize, for example:
+//
+// Synchronize(UpdateCaption);
+//
+// where UpdateCaption could look like:
+//
+// void __fastcall FTPDownload::UpdateCaption()
+// {
+// Form1->Caption = "Updated in a thread";
+// }
+//---------------------------------------------------------------------------
+__fastcall FTPDownload::FTPDownload(bool CreateSuspended)
+ : TThread(CreateSuspended)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall FTPDownload::Execute()
+{
+ //---- Place thread code here ----
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder5/InstallMgr/FTPDownload.h b/apps/windoze/CBuilder5/InstallMgr/FTPDownload.h
new file mode 100644
index 0000000..4ad9e01
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/FTPDownload.h
@@ -0,0 +1,16 @@
+//---------------------------------------------------------------------------
+#ifndef FTPDownloadH
+#define FTPDownloadH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+//---------------------------------------------------------------------------
+class FTPDownload : public TThread
+{
+private:
+protected:
+ void __fastcall Execute();
+public:
+ __fastcall FTPDownload(bool CreateSuspended);
+};
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/InstallMgr/InfoFrm.cpp b/apps/windoze/CBuilder5/InstallMgr/InfoFrm.cpp
new file mode 100644
index 0000000..a75b7b2
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/InfoFrm.cpp
@@ -0,0 +1,33 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "InfoFrm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TInfoForm *InfoForm;
+//---------------------------------------------------------------------------
+__fastcall TInfoForm::TInfoForm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TInfoForm::FormShow(TObject *Sender)
+{
+ AnsiString abouttext = "";
+ TMemoryStream *RTFStream = new TMemoryStream();
+
+ abouttext = abouttext + "{\\fs20\\cf0 " + info.c_str() + " }";
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(abouttext.c_str(), abouttext.Length());
+ RTFStream->Position = 0;
+ InfoText->Lines->LoadFromStream(RTFStream);
+ delete RTFStream;
+}
+//---------------------------------------------------------------------------
+void __fastcall TInfoForm::SpeedButton1Click(TObject *Sender)
+{
+ ModalResult = mrOk;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder5/InstallMgr/InfoFrm.dfm b/apps/windoze/CBuilder5/InstallMgr/InfoFrm.dfm
new file mode 100644
index 0000000..ca189d0
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/InfoFrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder5/InstallMgr/InfoFrm.h b/apps/windoze/CBuilder5/InstallMgr/InfoFrm.h
new file mode 100644
index 0000000..9bbeef6
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/InfoFrm.h
@@ -0,0 +1,32 @@
+//---------------------------------------------------------------------------
+#ifndef InfoFrmH
+#define InfoFrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <Buttons.hpp>
+#include <ComCtrls.hpp>
+#include <ExtCtrls.hpp>
+#include <string>
+
+//---------------------------------------------------------------------------
+class TInfoForm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TPanel *Panel2;
+ TRichEdit *InfoText;
+ TSpeedButton *SpeedButton1;
+ void __fastcall FormShow(TObject *Sender);
+ void __fastcall SpeedButton1Click(TObject *Sender);
+private: // User declarations
+public: // User declarations
+ std::string info;
+ __fastcall TInfoForm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TInfoForm *InfoForm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/InstallMgr/InstallMgr.bpg b/apps/windoze/CBuilder5/InstallMgr/InstallMgr.bpg
new file mode 100644
index 0000000..a9241b8
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/InstallMgr.bpg
@@ -0,0 +1,27 @@
+#------------------------------------------------------------------------------
+VERSION = BWS.01
+#------------------------------------------------------------------------------
+!ifndef ROOT
+ROOT = $(MAKEDIR)\..
+!endif
+#------------------------------------------------------------------------------
+MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$**
+DCC = $(ROOT)\bin\dcc32.exe $**
+BRCC = $(ROOT)\bin\brcc32.exe $**
+#------------------------------------------------------------------------------
+PROJECTS = swordlib.lib zlib.lib InstallMgr.exe
+#------------------------------------------------------------------------------
+default: $(PROJECTS)
+#------------------------------------------------------------------------------
+
+InstallMgr.exe: InstallMgr.bpr
+ $(MAKE)
+
+swordlib.lib: ..\BibleCS\swordlib.bpr
+ $(MAKE)
+
+zlib.lib: zlib.bpr
+ $(ROOT)\bin\bpr2mak -t$(ROOT)\bin\deflib.bmk $**
+ $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak
+
+
diff --git a/apps/windoze/CBuilder5/InstallMgr/InstallMgr.bpr b/apps/windoze/CBuilder5/InstallMgr/InstallMgr.bpr
new file mode 100644
index 0000000..1f2e9c8
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/InstallMgr.bpr
@@ -0,0 +1,137 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="InstallMgr.exe"/>
+ <OBJFILES value="InstallMgr.obj MainFrm.obj StatusFrm.obj RemoteMntFrm.obj InfoFrm.obj
+ cipherfrm.obj UninstallFrm.obj"/>
+ <RESFILES value="InstallMgr.res"/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES) MainFrm.dfm StatusFrm.dfm RemoteMntFrm.dfm InfoFrm.dfm
+ cipherfrm.dfm UninstallFrm.dfm"/>
+ <LIBFILES value="zlib.lib ..\..\..\..\lib\swordlib.lib"/>
+ <LIBRARIES value="INDY50.lib nmfast50.lib vclx50.lib vcl50.lib"/>
+ <SPARELIBS value="vcl50.lib vclx50.lib nmfast50.lib INDY50.lib"/>
+ <PACKAGES value="vcl50.bpi vclx50.bpi vcljpg50.bpi bcbsmp50.bpi qrpt50.bpi vcldb50.bpi
+ vclbde50.bpi ibsmp50.bpi vcldbx50.bpi teeui50.bpi teedb50.bpi tee50.bpi
+ nmfast50.bpi dclocx50.bpi"/>
+ <PATHCPP value=".;"/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="ilink32"/>
+ <USERDEFINES value="VCL"/>
+ <SYSDEFINES value="NO_STRICT"/>
+ <MAINSOURCE value="InstallMgr.cpp"/>
+ <INCLUDEPATH value="C:\INDY\C5\;D:\Indy\C5\;..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include"/>
+ <LIBPATH value="C:\INDY\C5\;D:\Indy\C5\;..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par -w-8027 -w-8026"/>
+ <WARNOPTSTR value=""/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-IC:\INDY\C5\. -ID:\Indy\C5\. -I..\BibleCS
+ -I..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr
+ -I$(BCB)\include -I$(BCB)\include\vcl -I..\..\..\..\include -src_suffix
+ cpp -DVCL -boa"/>
+ <CFLAG1 value="-O2 -H=c:\PROGRA~1\borland\CBUILD~2\lib\vcl50.csm -Hc -Vx -Ve -RT- -X- -a8
+ -b- -k- -vi -c -tW -tWM"/>
+ <PFLAGS value="-$Y- -$L- -$D- -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zn"/>
+ <LFLAGS value="-D&quot;&quot; -aa -Tpe -x -Gn"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0w32.obj sysinit.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=1
+AutoIncBuild=0
+MajorVer=1
+MinorVer=5
+Release=3
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=CrossWire Bible Society
+FileDescription=SWORD Installation Manager
+FileVersion=1.5.3.0
+InternalName=InstallMgr
+LegalCopyright=GNU GPL 2001
+LegalTrademarks=
+OriginalFilename=
+ProductName=The SWORD Project
+ProductVersion=1.5.3
+Comments=Seek Jesus who exchanges temporary for eternal
+
+[HistoryLists\hlIncludePath]
+Count=5
+Item0=C:\INDY\C5\;D:\Indy\C5\;..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
+Item1=C:\INDY\C5;D:\Indy\C5\;..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
+Item2=D:\Indy\C5;..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
+Item3=..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
+Item4=..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
+
+[HistoryLists\hlLibraryPath]
+Count=5
+Item0=C:\INDY\C5\;D:\Indy\C5\;..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\lib\obj;$(BCB)\lib
+Item1=C:\INDY\C5;D:\Indy\C5\;..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\lib\obj;$(BCB)\lib
+Item2=D:\Indy\C5;..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=4
+Item0=VCL
+Item1=VCL;_DEBUG
+Item2=_DEBUG;VCL
+Item3=_DEBUG
+
+[HistoryLists\hlRunParameters]
+Count=1
+Item0=-uninstall
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=0
+
+[CORBA]
+AddServerUnit=1
+AddClientUnit=1
+PrecompiledHeaders=1
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/InstallMgr/InstallMgr.cpp b/apps/windoze/CBuilder5/InstallMgr/InstallMgr.cpp
new file mode 100644
index 0000000..d4d9450
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/InstallMgr.cpp
@@ -0,0 +1,34 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+USERES("InstallMgr.res");
+USEFORM("MainFrm.cpp", MainForm);
+USEFORM("StatusFrm.cpp", StatusForm);
+USEFORM("RemoteMntFrm.cpp", RemoteMntForm);
+USEFORM("InfoFrm.cpp", InfoForm);
+USEFORM("cipherfrm.cpp", CipherForm);
+USEFORM("UninstallFrm.cpp", UninstallForm);
+USELIB("zlib.lib");
+USELIB("..\..\..\..\lib\swordlib.lib");
+//---------------------------------------------------------------------------
+WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
+{
+ try
+ {
+ Application->Initialize();
+ Application->Title = "Install Manager";
+ Application->CreateForm(__classid(TMainForm), &MainForm);
+ Application->CreateForm(__classid(TStatusForm), &StatusForm);
+ Application->CreateForm(__classid(TRemoteMntForm), &RemoteMntForm);
+ Application->CreateForm(__classid(TInfoForm), &InfoForm);
+ Application->CreateForm(__classid(TCipherForm), &CipherForm);
+ Application->CreateForm(__classid(TUninstallForm), &UninstallForm);
+ Application->Run();
+ }
+ catch (Exception &exception)
+ {
+ Application->ShowException(&exception);
+ }
+ return 0;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder5/InstallMgr/InstallMgr.res b/apps/windoze/CBuilder5/InstallMgr/InstallMgr.res
new file mode 100644
index 0000000..28a013e
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/InstallMgr.res
Binary files differ
diff --git a/apps/windoze/CBuilder5/InstallMgr/MainFrm.cpp b/apps/windoze/CBuilder5/InstallMgr/MainFrm.cpp
new file mode 100644
index 0000000..42e0500
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/MainFrm.cpp
@@ -0,0 +1,1110 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+extern "C" {
+#include <untgz.h>
+}
+
+#include "MainFrm.h"
+#include "StatusFrm.h"
+#include "RemoteMntFrm.h"
+#include "InfoFrm.h"
+#include "cipherfrm.h"
+#include "UninstallFrm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+
+#include <swwinlog.h>
+#include <shellapi.h>
+#include <dirent.h>
+#include <fcntl.h>
+#include <io.h>
+#include <sys/stat.h>
+#include <dir.h>
+#include <FileCtrl.hpp>
+
+TMainForm *MainForm;
+
+
+VersionInfo::VersionInfo(const char *version) {
+ char *buf = new char[ strlen(version) + 1 ];
+ char *tok;
+ major = minor = minor2 = minor3 = 0;
+
+ strcpy(buf, version);
+ tok = strtok(buf, ".");
+ if (tok)
+ major = atoi(tok);
+ tok = strtok(0, ".");
+ if (tok)
+ minor = atoi(tok);
+ tok = strtok(0, ".");
+ if (tok)
+ minor2 = atoi(tok);
+ tok = strtok(0, ".");
+ if (tok)
+ minor3 = atoi(tok);
+ delete [] buf;
+}
+
+
+int VersionInfo::compare(const VersionInfo &vi) const {
+ if (major == vi.major)
+ if (minor == vi.minor)
+ if (minor2 == vi.minor2)
+ if (minor3 == vi.minor3)
+ return 0;
+ else return minor3 - vi.minor3;
+ else return minor2 - vi.minor2;
+ else return minor - vi.minor;
+ else return major - vi.major;
+}
+
+
+__fastcall InstallSourceTab::InstallSourceTab(TComponent *Owner, const char *confEnt, const char *type) : TControl(Owner) {
+ char *buf = new char [ strlen(confEnt) + 1 ];
+
+ strcpy(buf, confEnt);
+
+ Caption = strtok(buf, "|");
+ Source = strtok(0, "|");
+ Directory = strtok(0, "|");
+ delete [] buf;
+ Type = type;
+ mgr = 0;
+}
+
+__fastcall InstallSourceTab::~InstallSourceTab() {
+ if (mgr)
+ delete mgr;
+}
+
+__fastcall TMainForm::TMainForm(TComponent* Owner)
+ : TForm(Owner)
+{
+ try {
+ manager = new SWMgr();
+ }
+ catch (...) {
+ createPathAndFile("./mods.d/globals.conf");
+ manager = new SWMgr();
+ }
+ installConf = new SWConfig("./InstallMgr.conf");
+ localMgr = 0;
+}
+
+
+__fastcall TMainForm::~TMainForm()
+{
+ delete manager;
+ delete installConf;
+ if (localMgr)
+ delete localMgr;
+}
+
+
+void __fastcall TMainForm::FormCreate(TObject *Sender) {
+
+ refreshPageControl();
+
+ if (SWLog::systemlog)
+ delete SWLog::systemlog;
+ SWLog::systemlog = new SWWinLog(this->Handle); // set the system logger to our MSWindows specific SWLog class
+
+ fillInstallTree();
+ fillSourceTree(getLocalDir(), localTree);
+}
+
+
+void TMainForm::refreshPageControl() {
+ SectionMap::iterator sources;
+ ConfigEntMap::iterator sourceBegin;
+ ConfigEntMap::iterator sourceEnd;
+
+ while (PageControl1->PageCount > 1) {
+ delete PageControl1->Pages[1];
+ }
+
+ sources = installConf->Sections.find("Sources");
+ passive = (!stricmp((*installConf)["General"]["PassiveFTP"].c_str(), "true"));
+
+ if (sources != installConf->Sections.end()) {
+ sourceBegin = sources->second.lower_bound("FTPSource");
+ sourceEnd = sources->second.upper_bound("FTPSource");
+
+ if (sourceBegin != sourceEnd) {
+ while (sourceBegin != sourceEnd) {
+ InstallSourceTab *ist = new InstallSourceTab(this, sourceBegin->second.c_str(), "FTP");
+ addSource(ist);
+ sourceBegin++;
+ }
+ }
+ }
+}
+
+
+void TMainForm::addSource(InstallSourceTab *ist)
+{
+ TTabSheet *newtab = new TTabSheet(this);
+ TTreeView *newtree = new TTreeView(this);
+ TSpeedButton *newbutton = new TSpeedButton(this);
+ TPanel *newpanel = new TPanel(this);
+ char buf[512];
+ SectionMap::iterator sit;
+
+ newtab->Caption = ist->Caption.c_str();
+ newtab->Hint = ist->Source.c_str();
+ newtab->ShowHint = true;
+ newtab->PageControl = PageControl1;
+ ist->Parent = newtab;
+ ist->tree = newtree;
+ newpanel->Parent = newtab;
+ newpanel->Align = alTop;
+ newpanel->BevelOuter = bvNone;
+ newpanel->BevelInner = bvNone;
+ newpanel->Height = 25;
+ newbutton->Parent = newpanel;
+ newbutton->Caption = "Refresh from Remote Source";
+ newbutton->Width = 210;
+ newbutton->OnClick = RefreshRemoteSource;
+ newbutton->Flat = true;
+ newbutton->Glyph = SpeedButton2->Glyph;
+ newtree->Parent = newtab;
+ newtree->Align = alClient;
+ newtree->ReadOnly = true;
+ newtree->OnDblClick = localTreeDblClick;
+ newtree->Images = ImageList1;
+ newtree->StateImages = ImageList2;
+ string parent = "./sources/" + ist->Source + "/file";
+ createParent(parent.c_str());
+ parent = "./sources/" + ist->Source;
+ fillSourceTree(parent.c_str(), newtree);
+}
+
+
+const char *TMainForm::getLocalDir()
+{
+ ConfigEntMap::iterator entry;
+
+ entry = installConf->Sections["Sources"].find("LocalPath");
+ if (entry == installConf->Sections["Sources"].end()) {
+ installConf->Sections["Sources"].insert(ConfigEntMap::value_type("LocalPath", "d:/sword"));
+ entry = installConf->Sections["Sources"].find("LocalPath");
+ }
+ return entry->second.c_str();
+
+}
+
+
+void TMainForm::setLocalDir(const char *idir)
+{
+ installConf->Sections["Sources"].erase("LocalPath"); installConf->Sections["Sources"].insert(ConfigEntMap::value_type("LocalPath", idir));
+}
+
+
+//---------------------------------------------------------------------------
+void __fastcall TMainForm::LocalPath1Click(TObject *Sender)
+{
+ AnsiString Dir = "C:";
+ WideString Root = getLocalDir();
+ SelectDirectory("Select Local Path", Root , Dir);
+
+/*
+ localPathDlg->Title = "Select a file in the directory to choose";
+ localPathDlg->InitialDir = getLocalDir();
+ if (localPathDlg->Execute()) {
+ char *buf = new char [ strlen(localPathDlg->FileName.c_str()) + 1 ];
+
+ strcpy(buf, localPathDlg->FileName.c_str());
+ int end = strlen(buf) - 1;
+ while (end) {
+ if ((buf[end] == '/') || (buf[end] == '\\'))
+ break;
+ end--;
+ }
+ buf[end+1] = 0;
+ setLocalDir(buf);
+ delete [] buf;
+ }
+*/
+
+ setLocalDir(Dir.c_str());
+
+ installConf->Save();
+ fillSourceTree(getLocalDir(), localTree);
+}
+//---------------------------------------------------------------------------
+
+void TMainForm::fillInstallTree()
+{
+ ModMap::iterator mods;
+ TTreeNode *node;
+ string nodeName;
+
+ installTree->Items->Clear();
+
+ if (!manager->configPath)
+ return;
+
+ for (mods = manager->Modules.begin(); mods != manager->Modules.end(); mods++) {
+ for (node = installTree->Items->GetFirstNode(); node; node = node->getNextSibling()) {
+ if (!strcmp(node->Text.c_str(), mods->second->Type())) {
+ break;
+ }
+ }
+ if (!node) { // Add Section
+ if (!strncmp(mods->second->Type(), "Bibl", 4)) // If Bibles, put first in list
+ node = installTree->Items->AddChildFirst(0, mods->second->Type());
+ else node = installTree->Items->AddChild(0, mods->second->Type());
+ }
+ nodeName = "[";
+ nodeName += mods->second->Name();
+ nodeName += "] ";
+ nodeName += mods->second->Description();
+ node = installTree->Items->AddChildObject(node, nodeName.c_str(), mods->second->Name());
+ }
+ for (node = installTree->Items->GetFirstNode(); node; node = node->getNextSibling())
+ node->Expand(true);
+ node = installTree->Items->GetFirstNode();
+ if (node)
+ node->MakeVisible();
+}
+
+
+void TMainForm::fillSourceTree(const char *sourceConf, TTreeView *tree)
+{
+ ModMap::iterator mods;
+ TTreeNode *node;
+ SectionMap::iterator sections, targetSection;
+ ConfigEntMap::iterator entry;
+ string secName;
+ const char * modDesc;
+ string nodeName;
+ string targetVersion;
+ string sourceVersion;
+ bool cipher;
+ bool showLocked = LockedModules1->Checked;
+
+ SWMgr *mgr;
+
+ if (tree == localTree) {
+ if (localMgr)
+ delete localMgr;
+ mgr = localMgr = new SWMgr(sourceConf);
+ }
+ else {
+
+ InstallSourceTab *ist = (InstallSourceTab *) tree->Parent->Controls[0];
+ if (ist->mgr)
+ delete ist->mgr;
+ mgr = ist->mgr = new SWMgr(sourceConf);
+ }
+
+ tree->Items->Clear();
+
+ if (!mgr->configPath)
+ return;
+
+ for (sections = mgr->config->Sections.begin(); sections != mgr->config->Sections.end(); sections++) {
+
+ cipher = false;
+
+ if (!strcmp(sections->first.c_str(), "Globals")) // skip [Globals]
+ continue;
+
+ entry = sections->second.find("CipherKey");
+ if (entry != sections->second.end()) {
+ if (showLocked)
+ cipher = true;
+ else continue;
+ }
+
+ mods = mgr->Modules.find(sections->first.c_str());
+ if (mods != mgr->Modules.end())
+ secName = mods->second->Type();
+ else {
+ secName = "Other";
+ }
+
+ string misc1 = ((entry = sections->second.find("Category")) != sections->second.end()) ? (*entry).second : (string)"";
+ if (misc1.length() > 0)
+ secName = misc1;
+
+ entry = sections->second.find("Description");
+ if (entry != sections->second.end())
+ modDesc = entry->second.c_str();
+ else modDesc = "";
+
+
+ targetVersion = "0.0";
+ sourceVersion = "1.0";
+
+ entry = sections->second.find("Version");
+ if (entry != sections->second.end())
+ sourceVersion = entry->second.c_str();
+
+ targetSection = manager->config->Sections.find(sections->first);
+ if (targetSection != manager->config->Sections.end()) {
+ targetVersion = "1.0";
+ entry = targetSection->second.find("Version");
+ if (entry != targetSection->second.end())
+ targetVersion = entry->second;
+ }
+
+ if (VersionInfo(sourceVersion.c_str()) > VersionInfo(targetVersion.c_str())) {
+ for (node = tree->Items->GetFirstNode(); node; node = node->getNextSibling()) {
+ if (!strcmp(node->Text.c_str(), secName.c_str())) {
+ break;
+ }
+ }
+
+ if (!node) { // Add Section
+ if (!strncmp(secName.c_str(), "Bibl", 4)) // If Bibles, put first in list
+ node = tree->Items->AddChildFirst(0, secName.c_str());
+ else node = tree->Items->AddChild(0, secName.c_str());
+ node->ImageIndex = 0;
+ }
+ nodeName = "[" + sections->first + "] " + modDesc;
+ node = tree->Items->AddChildObject(node, nodeName.c_str(), (void *) sections->first.c_str());
+ if (VersionInfo(targetVersion.c_str()) < VersionInfo("1.0")) {
+ node->ImageIndex = 1;
+ node->SelectedIndex = 1;
+ }
+ else {
+ node->ImageIndex = 2;
+ node->SelectedIndex = 2;
+ }
+ if (cipher) {
+ node->ImageIndex += 2;
+ node->SelectedIndex += 2;
+ }
+ node->StateIndex = 0;
+ }
+ }
+ for (node = tree->Items->GetFirstNode(); node; node = node->getNextSibling())
+ node->Expand(true);
+ node = tree->Items->GetFirstNode();
+ if (node)
+ node->MakeVisible();
+}
+
+
+void __fastcall TMainForm::Button5Click(TObject *Sender)
+{
+ TTreeView *tree;
+ for (int i = 0; i < PageControl1->ActivePage->ControlCount; i++) {
+ if (PageControl1->ActivePage->Controls[i]->ClassNameIs("TTreeView")) {
+ tree = (TTreeView*)(PageControl1->ActivePage->Controls[i]);
+ break;
+ }
+ }
+ TTreeNode *node = tree->Selected;
+ if (node) {
+ if (node->Parent) {
+ if (node->StateIndex == 1)
+ node->StateIndex = 0; //node->StateIndex;
+ else node->StateIndex = 1;
+ tree->Repaint();
+ }
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TMainForm::localTreeDblClick(TObject *Sender)
+{
+ Button5Click(Sender);
+}
+//---------------------------------------------------------------------------
+
+int TMainForm::selectAll(TTreeView *tree, bool sel)
+{
+ TTreeNode *node;
+ TTreeNode *node2;
+ int retCount = 0;
+
+ for (node = tree->Items->GetFirstNode(); node; node = node->getNextSibling()) {
+ for (node2 = node->getFirstChild(); node2; node2 = node2->getNextSibling()) {
+ if (node2->StateIndex == 1) {
+ if (!sel) {
+ node2->StateIndex = 0; //node2->StateIndex;
+ retCount++;
+ }
+ }
+ else {
+ if (sel) {
+ node2->StateIndex = 1;
+ retCount++;
+ }
+ }
+ }
+ }
+ return retCount;
+}
+
+
+void __fastcall TMainForm::Button6Click(TObject *Sender) // SELECT ALL
+{
+ TTreeView *tree;
+ for (int i = 0; i < PageControl1->ActivePage->ControlCount; i++) {
+ if (PageControl1->ActivePage->Controls[i]->ClassNameIs("TTreeView")) {
+ tree = (TTreeView*)(PageControl1->ActivePage->Controls[i]);
+ break;
+ }
+ }
+ if (!selectAll(tree, true))
+ selectAll(tree, false);
+ tree->Repaint();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TMainForm::Image1Click(TObject *Sender)
+{
+ ShellExecute(this->Handle, "open", "http://www.crosswire.org", NULL, NULL, SW_SHOWNORMAL);
+
+}
+//---------------------------------------------------------------------------
+
+int TMainForm::removeModule(const char *modName)
+{
+ SectionMap::iterator module;
+ ConfigEntMap::iterator fileBegin;
+ ConfigEntMap::iterator fileEnd, entry;
+
+ module = manager->config->Sections.find(modName);
+
+ if (module != manager->config->Sections.end()) {
+ entry = module->second.find("CipherKey");
+ if (entry != module->second.end())
+ CipherForm->cipherEdit->Text = entry->second.c_str();
+
+ fileBegin = module->second.lower_bound("File");
+ fileEnd = module->second.upper_bound("File");
+
+ if (fileBegin != fileEnd) { // remove each file
+ while (fileBegin != fileEnd) {
+ //remove file
+ remove(fileBegin->second.c_str());
+ fileBegin++;
+ }
+ }
+ else { //remove all files in DataPath directory
+
+ DIR *dir;
+ struct dirent *ent;
+ ConfigEntMap::iterator entry;
+ string modDir;
+ string modFile;
+
+ entry = module->second.find("DataPath");
+ if (entry != module->second.end()) {
+ modDir = entry->second.c_str();
+ entry = module->second.find("ModDrv");
+ if (entry != module->second.end()) {
+ if (!strcmp(entry->second.c_str(), "RawLD") || !strcmp(entry->second.c_str(), "RawLD4") || !strcmp(entry->second.c_str(), "zLD") || !strcmp(entry->second.c_str(), "RawGenBook") || !strcmp(entry->second.c_str(), "zGenBook")) {
+ char *buf = new char [ strlen(modDir.c_str()) + 1 ];
+
+ strcpy(buf, modDir.c_str());
+ int end = strlen(buf) - 1;
+ while (end) {
+ if (buf[end] == '/')
+ break;
+ end--;
+ }
+ buf[end] = 0;
+ modDir = buf;
+ delete [] buf;
+ }
+ }
+
+ if (dir = opendir(modDir.c_str())) {
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, ".")) && (strcmp(ent->d_name, ".."))) {
+ modFile = modDir;
+ modFile += "/";
+ modFile += ent->d_name;
+ remove(modFile.c_str());
+ }
+ }
+ closedir(dir);
+ }
+ if (dir = opendir(manager->configPath)) { // find and remove .conf file
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, ".")) && (strcmp(ent->d_name, ".."))) {
+ modFile = manager->configPath;
+ modFile += "/";
+ modFile += ent->d_name;
+ SWConfig *config = new SWConfig(modFile.c_str());
+ if (config->Sections.find(modName) != config->Sections.end()) {
+ delete config;
+ remove(modFile.c_str());
+ }
+ else delete config;
+ }
+ }
+ closedir(dir);
+ }
+ }
+ }
+ return 0;
+ }
+ return 1;
+}
+
+
+int TMainForm::createParent(const char *pName)
+{
+ char *buf = new char [ strlen(pName) + 1 ];
+ int retCode = 0;
+
+ strcpy(buf, pName);
+ int end = strlen(buf) - 1;
+ while (end) {
+ if (buf[end] == '/')
+ break;
+ end--;
+ }
+ buf[end] = 0;
+ if (strlen(buf)>0) {
+ if (access(buf, 02)) { // not exists with write access?
+ if ((retCode = mkdir(buf))) {
+ createParent(buf);
+ retCode = mkdir(buf);
+ }
+ }
+ }
+ else retCode = -1;
+ delete [] buf;
+ return retCode;
+}
+
+
+int TMainForm::createPathAndFile(const char *fName)
+{
+ int fd;
+
+ fd = open(fName, O_CREAT|O_WRONLY|O_BINARY, S_IREAD|S_IWRITE);
+ if (fd < 1) {
+ createParent(fName);
+ fd = open(fName, O_CREAT|O_WRONLY|O_BINARY, S_IREAD|S_IWRITE);
+ }
+ return fd;
+}
+
+
+int TMainForm::copyFileToCWD(const char *sourceDir, const char *fName)
+{
+ string sourcePath = sourceDir;
+ sourcePath += fName;
+
+ string dest;
+ dest = manager->prefixPath;
+ if ((manager->prefixPath[strlen(manager->prefixPath)-1] != '\\') && ( manager->prefixPath[strlen(manager->prefixPath)-1] != '/'))
+ dest += "/";
+ dest += fName;
+
+ return copyFile(sourcePath.c_str(), dest.c_str());
+}
+
+
+int TMainForm::copyFile(const char *sourceFile, const char *targetFile)
+{
+ int sfd, dfd, len;
+ char buf[4096];
+
+ if ((sfd = open(sourceFile, O_RDONLY|O_BINARY)) < 1)
+ return -1;
+ if ((dfd = createPathAndFile(targetFile)) < 1)
+ return -1;
+
+ do {
+ len = read(sfd, buf, 4096);
+ write(dfd, buf, len);
+ }
+ while(len == 4096);
+ close(dfd);
+ close(sfd);
+
+ return 0;
+}
+
+
+int TMainForm::installModule(const char *modName, InstallSourceTab *ist)
+{
+ SectionMap::iterator module, section;
+ ConfigEntMap::iterator fileBegin;
+ ConfigEntMap::iterator fileEnd;
+ ConfigEntMap::iterator entry;
+ string sourceDir;
+ string buffer;
+ bool aborted = false;
+ bool cipher = false;
+
+ if (ist)
+ sourceDir = "./sources/" + ist->Source;
+ else sourceDir = getLocalDir();
+
+ SWMgr mgr(sourceDir.c_str());
+
+ module = mgr.config->Sections.find(modName);
+
+ if (module != mgr.config->Sections.end()) {
+
+ entry = module->second.find("CipherKey");
+ if (entry != module->second.end())
+ cipher = true;
+
+ fileEnd = module->second.upper_bound("File");
+ fileBegin = module->second.lower_bound("File");
+
+ if (fileBegin != fileEnd) { // copy each file
+ if (ist) {
+ while (fileBegin != fileEnd) { // ftp each file first
+ buffer = sourceDir + "/" + fileBegin->second;
+ if (FTPCopy(ist, fileBegin->second.c_str(), buffer.c_str())) {
+ aborted = true;
+ break; // user aborted
+ }
+ fileBegin++;
+ }
+ fileBegin = module->second.lower_bound("File");
+ }
+
+ if (!aborted) {
+ // DO THE INSTALL
+ while (fileBegin != fileEnd) {
+ copyFileToCWD(sourceDir.c_str(), fileBegin->second.c_str());
+ fileBegin++;
+ }
+ }
+ //---------------
+
+ if (ist) {
+ fileBegin = module->second.lower_bound("File");
+ while (fileBegin != fileEnd) { // delete each tmp ftp file
+ buffer = sourceDir + "/" + fileBegin->second;
+ remove(buffer.c_str());
+ fileBegin++;
+ }
+ }
+ }
+ else { //copy all files in DataPath directory
+ DIR *dir;
+ struct dirent *ent;
+ ConfigEntMap::iterator entry;
+ string modDir;
+ string modFile;
+ string sourceOrig = sourceDir;
+
+ entry = module->second.find("DataPath");
+ if (entry != module->second.end()) {
+ modDir = entry->second.c_str();
+ entry = module->second.find("ModDrv");
+ if (entry != module->second.end()) {
+ if (!strcmp(entry->second.c_str(), "RawLD") || !strcmp(entry->second.c_str(), "RawLD4") || !strcmp(entry->second.c_str(), "zLD") || !strcmp(entry->second.c_str(), "RawGenBook") || !strcmp(entry->second.c_str(), "zGenBook")) {
+ char *buf = new char [ strlen(modDir.c_str()) + 1 ];
+
+ strcpy(buf, modDir.c_str());
+ int end = strlen(buf) - 1;
+ while (end) {
+ if (buf[end] == '/')
+ break;
+ end--;
+ }
+ buf[end] = 0;
+ modDir = buf;
+ delete [] buf;
+ }
+ }
+
+ if (ist) {
+ buffer = sourceDir + "/" + modDir;
+ if (FTPCopy(ist, modDir.c_str(), buffer.c_str(), true)) {
+ aborted = true; // user aborted
+ }
+ }
+ sourceDir += "/";
+ sourceDir += modDir;
+ if (!aborted) {
+ if (dir = opendir(sourceDir.c_str())) {
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, ".")) && (strcmp(ent->d_name, ".."))) {
+ modFile = modDir;
+ modFile += "/";
+ modFile += ent->d_name;
+ copyFileToCWD(sourceOrig.c_str(), modFile.c_str());
+ }
+ }
+ closedir(dir);
+ }
+ }
+ if (ist) { // delete tmp ftp files
+ if (dir = opendir(sourceDir.c_str())) {
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, ".")) && (strcmp(ent->d_name, ".."))) {
+ modFile = sourceOrig + "/" + modDir;
+ modFile += "/";
+ modFile += ent->d_name;
+ remove(modFile.c_str());
+ }
+ }
+ closedir(dir);
+ }
+ }
+ sourceDir = sourceOrig;
+ sourceDir += "/mods.d/";
+ if (!aborted) {
+ if (dir = opendir(sourceDir.c_str())) { // find and copy .conf file
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, ".")) && (strcmp(ent->d_name, ".."))) {
+ modFile = sourceDir;
+ modFile += ent->d_name;
+ SWConfig *config = new SWConfig(modFile.c_str());
+ if (config->Sections.find(modName) != config->Sections.end()) {
+ delete config;
+ string targetFile = manager->configPath; //"./mods.d/";
+ targetFile += "/";
+ targetFile += ent->d_name;
+ copyFile(modFile.c_str(), targetFile.c_str());
+ if (cipher) {
+ CipherForm->modName = modName;
+ CipherForm->confFile = targetFile;
+ if (CipherForm->ShowModal() == mrCancel) {
+ removeModule(modName);
+ aborted = true;
+ }
+ }
+ }
+ else delete config;
+ }
+ }
+ closedir(dir);
+ }
+ }
+ }
+ }
+ return (aborted) ? -1 : 0;
+ }
+ return 1;
+}
+
+
+void TMainForm::fillAllSourceTrees()
+{
+ fillSourceTree(getLocalDir(), localTree);
+ for (int i = 1; i < PageControl1->PageCount; i++) {
+ InstallSourceTab *ist = (InstallSourceTab *) MainForm->PageControl1->Pages[i]->Controls[0];
+ string parent = "./sources/" + ist->Source;
+ fillSourceTree(parent.c_str(), ist->tree);
+ }
+}
+
+
+void __fastcall TMainForm::Button4Click(TObject *Sender) // REMOVE MODULE
+{
+ TTreeNode *node = installTree->Selected;
+ if (node) {
+ if (node->Parent) {
+ removeModule((const char *)node->Data);
+ delete manager;
+ manager = new SWMgr();
+ fillInstallTree();
+ fillAllSourceTrees();
+ }
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TMainForm::Button2Click(TObject *Sender) // INSTALL
+{
+ TTreeNode *node;
+ int count = 0;
+ int abort = 0;
+
+ class TWaitCursor {
+ public:
+ TWaitCursor() : oldc(Screen->Cursor) { Screen->Cursor = crHourGlass; }
+ ~TWaitCursor() { Screen->Cursor = oldc; }
+ private:
+ TCursor oldc;
+ } wait; // show hourglass
+
+ TTreeView *tree;
+ for (int i = 0; i < PageControl1->ActivePage->ControlCount; i++) {
+ if (PageControl1->ActivePage->Controls[i]->ClassNameIs("TTreeView")) {
+ tree = (TTreeView*)(PageControl1->ActivePage->Controls[i]);
+ break;
+ }
+ }
+
+ for (node = tree->Items->GetFirstNode(); node; node = node->GetNext()) {
+ if (node->StateIndex == 1)
+ count++;
+ } // do true progress bar
+
+ if (!count) {
+ MessageBox(this->WindowHandle, "Please first choose which modules you would like to install by double-clicking a module in the 'Available' tree.", "Please select modules first.", MB_OK);
+ return; // if nothing is selected, do nothing
+ }
+
+ progressBar->Max = count;
+ progressBar->Position = 0;
+
+ for (node = tree->Items->GetFirstNode(); node; node = node->GetNext()) {
+ if (node->StateIndex == 1) { // if selected for install
+ CipherForm->cipherEdit->Text = "";
+ if ((node->ImageIndex == 2) || (node->ImageIndex == 4)) { // if this is an upgrade
+ removeModule((const char *)node->Data);
+ }
+ // install module
+ statusBar->Caption = "Installing: " + node->Text + "...";
+ statusBar->Repaint();
+ if (tree == localTree)
+ abort = installModule((const char *)node->Data);
+ else abort = installModule((const char *)node->Data, (InstallSourceTab *) PageControl1->ActivePage->Controls[0]);
+ if (abort)
+ break;
+ progressBar->Position++;
+ }
+ }
+ delete manager;
+ manager = new SWMgr();
+ fillInstallTree();
+ fillAllSourceTrees();
+ statusBar->Caption = "";
+ progressBar->Position = 0;
+}
+
+
+int TMainForm::FTPCopy(InstallSourceTab *ist, const char *src, const char *dest, bool dirTransfer, const char *suffix)
+{
+ StatusForm->ist = ist;
+ StatusForm->src = src;
+ StatusForm->dest = dest;
+ StatusForm->suffix = suffix;
+ StatusForm->dirTransfer = dirTransfer;
+ StatusForm->passive = passive;
+ Application->ProcessMessages();
+ if (StatusForm->ShowModal() == mrCancel)
+ return -1;
+ else return 0;
+}
+
+
+void __fastcall TMainForm::RefreshRemoteSource(TObject *Sender)
+{
+ InstallSourceTab *ist = (InstallSourceTab *) MainForm->PageControl1->ActivePage->Controls[0];
+ DIR *dir;
+ struct dirent *ent;
+ ConfigEntMap::iterator entry;
+ string modDir;
+ string modFile;
+ string root = "./sources/";
+ root += ist->Source.c_str();
+ string target = root + "/mods.d";
+
+ if (dir = opendir(target.c_str())) {
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, ".")) && (strcmp(ent->d_name, ".."))) {
+ modFile = target;
+ modFile += "/";
+ modFile += ent->d_name;
+ remove(modFile.c_str());
+ }
+ }
+ closedir(dir);
+ }
+
+
+ string archive = root + "/mods.d.tar.gz";
+ if (!FTPCopy(ist, "mods.d.tar.gz", archive.c_str(), false)) {
+ int fd = open(archive.c_str(), O_RDONLY|O_BINARY);
+ untargz(fd, root.c_str());
+ close(fd);
+ }
+ else FTPCopy(ist, "mods.d", target.c_str(), true, ".conf");
+
+ target = "./sources/";
+ target += ist->Source.c_str();
+
+ fillSourceTree(target.c_str(), ist->tree);
+}
+
+
+
+void __fastcall TMainForm::SpeedButton1Click(TObject *Sender)
+{
+ InfoForm->Caption = "W A R N I N G";
+ InfoForm->info = "\\qc {\\b \\fs20 -=+* WARNING *+=- -=+* WARNING *+=-}\\par\\par\\pard ";
+ InfoForm->info += "Although Install Manager provides a convenient way for installing and upgrading SWORD components, it also uses a systematic method for accessing sites which gives packet sniffers a target to lock into for singling out users. \\par\\par ";
+ InfoForm->info += "\\b\\qc IF YOU LIVE IN A PERSECUTED COUNTRY AND DO NOT WISH TO RISK DETECTION, YOU SHOULD *NOT* USE INSTALL MANAGER'S REMOTE SOURCE FEATURES.";
+ InfoForm->ShowModal();
+ if (RemoteMntForm->ShowModal() == mrOk) {
+ delete installConf;
+ installConf = new SWConfig("./InstallMgr.conf");
+
+ refreshPageControl();
+ }
+}
+
+void __fastcall TMainForm::SpeedButton5Click(TObject *Sender)
+{
+ TTreeView *tree;
+ InstallSourceTab *ist = 0;
+ SectionMap::iterator module;
+ ConfigEntMap::iterator entry, entryEnd;
+ string sourceDir;
+
+ if (PageControl1->ActivePage != PageControl1->Pages[0]) {
+ ist = (InstallSourceTab *) PageControl1->ActivePage->Controls[0];
+ tree = ist->tree;
+ }
+ else tree = localTree;
+
+ TTreeNode *node = tree->Selected;
+ if (node) {
+ if (node->Parent) {
+ if (ist)
+ sourceDir = "./sources/" + ist->Source;
+ else sourceDir = getLocalDir();
+ SWMgr *mgr = new SWMgr(sourceDir.c_str());
+
+ module = mgr->config->Sections.find((const char *)node->Data);
+
+ if (module != mgr->config->Sections.end()) {
+ string targetVersion = "0.0";
+ string sourceVersion = "1.0";
+ SectionMap::iterator targetSection;
+
+ entry = module->second.find("Version");
+ if (entry != module->second.end())
+ sourceVersion = entry->second.c_str();
+
+ targetSection = manager->config->Sections.find(module->first);
+ if (targetSection != manager->config->Sections.end()) {
+ targetVersion = "1.0";
+ entry = targetSection->second.find("Version");
+ if (entry != targetSection->second.end())
+ targetVersion = entry->second;
+ }
+ if (VersionInfo(targetVersion.c_str()) < VersionInfo("1.0")) {
+ InfoForm->info = "\\pard{\\b * Additional Module Available for Install. } \\par ";
+ }
+ else {
+ InfoForm->info = "\\pard{\\b + Upgraded Module Available for Install.}\\par\\tab Current Version: \\tab " + targetVersion + " \\par\\tab Upgrade Version:\\tab " + sourceVersion + " \\par ";
+ bool changes = false;
+ for (entry = module->second.begin(); entry != module->second.end(); entry++) {
+ if (!strncmp(entry->first.c_str(), "History_", 8)) {
+ if (VersionInfo(&entry->first.c_str()[8]) > VersionInfo(targetVersion.c_str())) {
+ if (!changes) {
+ changes = true;
+ InfoForm->info += "\\par{\\b Changes: }\\par ";
+ }
+ InfoForm->info += "\\tab ";
+ InfoForm->info += entry->second.c_str();
+ InfoForm->info += "\\par ";
+ }
+ }
+ }
+ }
+
+ entry = module->second.find("About");
+ if (entry != module->second.end()) {
+ InfoForm->info += "\\par{\\b About: } \\par\\par ";
+ InfoForm->info += entry->second.c_str();
+ }
+ InfoForm->Caption = "Module Information";
+ InfoForm->ShowModal();
+ }
+ delete mgr;
+ }
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TMainForm::Exit1Click(TObject *Sender)
+{
+ Close();
+}
+//---------------------------------------------------------------------------
+
+
+void TMainForm::deleteAllModules() {
+
+ SWMgr *mgr = new SWMgr();
+
+
+ int count = mgr->Modules.size();
+
+ if (!count)
+ return;
+
+ UninstallForm->Show();
+ UninstallForm->ProgressBar1->Max = count;
+ UninstallForm->ProgressBar1->Position = 0;
+
+ ModMap::iterator it;
+ for (it = mgr->Modules.begin(); it != mgr->Modules.end(); it++) {
+ string label = "Uninstalling: [";
+ label += it->second->Name();
+ label += "] ";
+ label += it->second->Description();
+ UninstallForm->Label1->Caption = label.c_str();
+ UninstallForm->Label1->Repaint();
+ removeModule(it->second->Name());
+ UninstallForm->ProgressBar1->Position = UninstallForm->ProgressBar1->Position + 1;
+ UninstallForm->ProgressBar1->Repaint();
+ }
+ delete mgr;
+ UninstallForm->Hide();
+ return;
+}
+void __fastcall TMainForm::FormShow(TObject *Sender)
+{
+ for (int i=0;i<=ParamCount();i++) {
+ if (LowerCase(ParamStr(i)) == "-uninstall") {
+ deleteAllModules();
+ Application->Terminate();
+ }
+ }
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TMainForm::LockedModules1Click(TObject *Sender) {
+ LockedModules1->Checked = !(LockedModules1->Checked);
+
+ if (LockedModules1->Checked) {
+ InfoForm->Caption = "About Locked Modules";
+ InfoForm->info = "\\qc {\\b \\fs20 About Locked Modules}\\par\\par\\pard ";
+
+ InfoForm->info += "Unfortunately, we are unable to legally provide these modules to the general public at this time. We are making attempts to gain permission from the copyright holders, but until such an agreement is arranged, these modules are only available to our developers and testers. We hope to be able to provide some of these to you soon. \\par\\par\\pard ";
+ InfoForm->info += "If you would like to contribute to the project by contacting a publisher seeking distribution permission for CrossWire, your efforts would be very appreciated-- especially in regard to non-English texts. Please subscribe to our developers' forum per instructions on our website, following the [Mailing Lists] link, and post a message stating how you would like to help. Thank you. \\par\\par\\pard ";
+ InfoForm->info += "\t-CrossWire Bible Society. ";
+ InfoForm->ShowModal();
+ }
+ fillAllSourceTrees();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TMainForm::Contents1Click(TObject *Sender)
+{
+ SWConfig optionsconf("options.conf");
+ string helpDir;
+ ConfigEntMap::iterator it = optionsconf.Sections["Help"].find("Directory");
+ if (it != optionsconf.Sections["Help"].end())
+ helpDir = (*it).second;
+ else helpDir = ".\\help";
+
+ string helpExe = helpDir + "\\Sword.chm::modulesh.html#instmgr";
+ ShellExecute(this->Handle, "open", "hh", helpExe.c_str(), NULL, SW_SHOWNORMAL);
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder5/InstallMgr/MainFrm.dfm b/apps/windoze/CBuilder5/InstallMgr/MainFrm.dfm
new file mode 100644
index 0000000..97c9de9
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/MainFrm.dfm
@@ -0,0 +1,2224 @@
+object MainForm: TMainForm
+ Left = 361
+ Top = 228
+ Width = 597
+ Height = 475
+ Caption = 'Install Manager'
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ Menu = MainMenu1
+ OldCreateOrder = False
+ Position = poScreenCenter
+ Scaled = False
+ OnCreate = FormCreate
+ OnShow = FormShow
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Splitter1: TSplitter
+ Left = 281
+ Top = 81
+ Width = 3
+ Height = 326
+ Cursor = crHSplit
+ end
+ object Panel1: TPanel
+ Left = 0
+ Top = 0
+ Width = 589
+ Height = 81
+ Align = alTop
+ AutoSize = True
+ BorderStyle = bsSingle
+ TabOrder = 0
+ object Image1: TImage
+ Left = 1
+ Top = 1
+ Width = 583
+ Height = 75
+ Hint = 'http://www.crosswire.org'
+ Align = alClient
+ AutoSize = True
+ Center = True
+ ParentShowHint = False
+ Picture.Data = {
+ 07544269746D6170E69A0000424DE69A0000000000003600000028000000AF00
+ 00004B0000000100180000000000B09A0000120B0000120B0000000000000000
+ 0000403B3B817E7E8077768177777D74738076767D73737C7271766C6C796F6F
+ 746B6A726867756B6A736969726867756A6A726868776C6C736868726767766B
+ 6B736968716766766C6B746968726867746A69736968746A6A726767766B6A72
+ 6766726767716665726766736868746868716665706564766B6A766A6A796C6C
+ 776B6A776B6B766A69786B6A776A69766968766868766968776A697367667669
+ 69776969776A6A766A69786B6A756767776968776969786A6977696879696977
+ 6867776867776867796A69796969796A69776767766666756564726161776666
+ 7867667866667968677767667766657968677765647563627462617665647866
+ 647764637766657464637A68677A68677866657A69687A6A6976676675646375
+ 6463766463776564746261756463746463776766756463736261756564756362
+ 7665647666657565647464637766657767667667667768677565647968687969
+ 687C6D6C796A6A7567667567667769687A6C6B796B6A76686875686773666677
+ 6B6A786C6B7A6D6D756969756969766A6A756A69746968726666776C6C786D6D
+ 786E6D766B6B776C6C766C6C736968746B6A786E6E776D6D756B6B786E6E7A70
+ 6F7A6F6F796F6E796F6E766C6C786F6F776D6D756B6A7B7170786E6E776D6D7B
+ 7271766D6C7A7070786F6F786E6E7C72727A7170776D6D756C6C776F6F78706F
+ 736B6A776E6E756D6D8077763A3535000000817776FFF9F7F0DCDAFEEAE8FDE8
+ E7FFEEEDF9E4E3FFECEAF2DDDCFCE8E7F9E4E3F5E1E0F7E2E1F9E4E3FAE5E4FC
+ E6E5F7E1E0F7E1E0FCE6E5F9E4E2FAE4E3F9E3E2F9E2E1FFE8E7FEE7E6F9E2E0
+ FBE4E3FDE8E6FCE7E6F9E3E2FAE3E2FBE4E3F5DEDCF3DBDAF9E2E0FDE5E3FDE4
+ E4FCE2E2F7DEDDFAE0DEF6DDDBFDE3E2FFE6E5FFE7E6FFE4E3FFE6E4FFE7E5FF
+ E5E4FFE5E4F5D8D7F8DCDBFFE8E7FFE9E8FFE4E3FFE2E1FDE2E0FFE5E4FBE0DF
+ FBDEDDFFE0E0FFE0DFFEDEDDF5D4D4FBDAD9FFDFDCFFE0DEFFE4E2FFE4E2FFE2
+ E1FFDFDEFEDEDCFFDEDDFAD7D6FDDAD9FFDCDBFCD7D6F7D1CFFCD8D6FFDBDAFF
+ DEDCFFD8D6FED5D3FFDBD9FFDDDBFFD9D6FFD8D7FFDEDCFCD8D6FFDDDBFCD4D2
+ F3CDCBF8D3D1FFDEDCFFDEDDFCD7D6FFDDDBFED8D6FFD8D6FFD9D6FED8D7F9D5
+ D4FFDCDBFBD7D5F8D4D3FAD7D4FCD8D6F9D6D4FCDAD8FCDAD8FCD9D7FFDFDCFF
+ E5E3FFE4E2FFE1DFFFDDDBFFE2E0FFE0DEFFE4E2FFE7E5FFE2E1FCDDDCF9DBD9
+ FEDFDDFEE0DEFEE0DEFFE2E1FFE3E2FFE7E5FEE2E0FFECEBFFEAEAFFE8E7FFE9
+ E8FFECEAFFE7E6FDE5E4FFEAEAFFE8E8FFEBEAFFE9E9FCE6E6FEEAE9FCE7E6FD
+ E8E7FFF1F0FEE8E7F8E2E1FFEBEAFFF0EEFFEAE9FFEDECFEE9E9FDE8E8FFEEEE
+ FFECEBFFEFEEFFF2F0FFEAE9F5E0DFFFEFEEF8E4E2FFECEBFFEDECFFEAE9FFF1
+ F0FFF2F1FFEFEEFFEFEEFFEFEEFFF2F1FCE9E8FFF3F2FFF1F0FFFFFF80787700
+ 00007C7272FCEFEDCBB8B7E6D3D1E8D5D4E5D3D1E3D0CFEFDBDADBC7C6E2CFCE
+ E9D6D5E3D1D0E1CECDE0CDCCE3CFCEDDC8C7DFCBCAE8D4D3E7D3D2E9D4D3EDD9
+ D8EDD8D7E5D0CFE6D1D0E2CDCCEAD5D4E3CECCE7D2D1EFDBDAEEDAD9E9D4D3F0
+ DCDBEBD6D4DEC8C7E6CFCEE4CDCCE6CFCEE3CBCBE0C8C7E5CDCCEBD3D2E8D0CF
+ E5CCCBE5CCCBE8CECDE9D0CEEBD0CFEDD3D3F1D6D5E2C7C5DFC5C4EED5D4F1D9
+ D8F0D7D6E7CBCAECD0D0EBD1D0EBD2D1F1D6D5EDD1D0EBCDCCECCFCDDCBEBDE7
+ C8C6F1D1CFF5D4D2EDCECCE5C5C3F1D1D0EFD1D0EDCECDEFCFCDECCBCAEAC9C7
+ EBCAC8ECC9C8E0BCBAEAC7C5EECBC9EAC8C6EEC9C7EDC6C4F1CBC9ECCAC9EECB
+ CAF2CCCAEECAC8E7C4C2F2CCCBECC5C3E9C5C2DEBAB8EBC9C7F2D2D0E9C6C4EE
+ CAC8EECAC8ECC6C4EEC8C7ECC9C8E7C6C4ECCBC9E9C7C5E8C7C5E8C6C4EBC9C8
+ E4C4C3E3C3C2E3C2C0E9C6C5E8C8C5ECCDCBEECDCBF0D0CEEDCECCEECECCE8CA
+ C9E3C5C3EFD1D0F1D4D3ECD0CEEACECDEFD3D2F0D4D2F3D8D6ECD0CFEAD0CEEC
+ D0CFE5CBC8F2D9D7E9D0CFECD3D1F1D9D8F2DADAECD4D4EAD3D3E7D1D0ECD6D6
+ E9D5D5EBD8D8ECDADAEEDDDCF0DDDCE8D3D3EDD8D7F1DCDBF0DADAE3CDCDEBD7
+ D6E9D5D5ECDAD9EEDDDCE6D5D5E7D6D6E7D5D4EDD9D9E8D4D3EFDBDAE6D2D0ED
+ D9D8E6D3D2E4D0CFF2DDDBEFDCDBF3E1E0F5E3E2ECDAD9F0DEDDF2E0DFF5E3E1
+ EBD9D8F2E0DFE9D8D7FEF1F07971700000007D7372FFF3F1CDBAB9ECD8D7DECC
+ CBDCC9C8E7D3D1F3DFDED0BDBCDDCAC9E3D0CFD6C2C1E3D0CFE4D0CFD7C3C2DA
+ C6C5DBC6C5E3CFCED8C4C4D6C2C1E7D3D2E7D3D1DCC7C7DFCACAD7C2C1E5CFCE
+ D5C0BFE5D0CFEDD9D8EFDAD9EDD8D7EED9D8F0DBDAEAD4D3DCC6C4DDC7C6DAC3
+ C2DAC1C1D9C1C0DBC2C1E4CBCAD9C1BFDDC4C3DABFBEDFC5C4DFC6C4DAC0C0E2
+ C9C9DFC6C5E3C9C8DEC4C3E2C8C6E3C9C8E9D1D0DEC5C4EACECDE0C3C2DCC2C1
+ E6CCCBE5C9C8E0C3C1EED0CFDEBEBDE9C9C8E9C7C6EDCAC8D8B8B68F7B7AD3B4
+ B2F0D1CFF8D8D6F4D1D0E3C1C0EAC7C6E7C4C3E9C6C5E2BDBCECC7C6E1BEBCE3
+ BFBDE8C2C0EBC4C1E9C1BFE9C6C4E6C2C0EAC4C2E9C3C1EBC5C3EAC4C2F4CBC8
+ E2BEBCEBC5C3F3D0CEFCDAD7EDC8C5E8C2BFEDC6C4EDC4C2F0C9C7E1BEBCE4C2
+ C0E9C6C4E9C8C6E7C4C2E3C0C0F2CFCEEDCBC9E0BEBDE1BFBDE0BFBCDBBAB8E2
+ C0BED8B7B5E9C8C6E5C4C2DDBCBBDFC0BEDDBEBDE6C8C6EFD2D0D8BCBADFC3C1
+ ECD1D0ECD1D0E8CCCBD9BDBBE3C7C5D4B8B6E2C7C5DEC3C3E0C6C5DAC2C1EBD4
+ D2E2CAC9DEC6C5E5CDCCDAC5C4DFCACAE0CDCDDFCDCDEAD8D8E9D7D7DFCBCBDF
+ CBCBDDC8C8EDD8D7E4CFCFDBC7C7DBC8C6E1CECEEDDADAECDBDBDFCECDE4D3D3
+ EAD9D8E6D3D2D0BCBBECD7D7F6E2E1E8D5D4D3C0BFD7C3C2DDCAC9F5E3E2F6E3
+ E2DECCCBDBCAC9D9C7C6E4D2D1DECCCCDDCCCCDBC9C9D8C6C5EAD7D670686700
+ 0000786F6EEFDBD9D6C3C2DCC9C8D9C6C5E1CDCDF7E4E2EDD9D8D6C2C0DAC6C5
+ E1CCCCD7C4C3E4D1D0DBC7C6DAC7C6E8D4D4DAC7C6DAC7C6E1CECDE4D0CFDDC9
+ C8DECACAE1CCCCE4D0CFE1CCCBE8D4D3D8C4C3E9D5D5E9D5D4ECD7D6E7D2D1ED
+ D7D5EBD6D4E4CECED4BEBDEDD7D6E2CBCADFC8C6DFC7C6E3CBCAE9D0D0DDC4C3
+ E7CECDE1C8C6EED4D3EBD2D0DDC4C3E0C6C6E5CBCAE2C9C7E3C9C8ECD2D0DFC4
+ C3E5CAC9E3CAC9E4CAC9E5C8C8EACCCBE0C5C4E9CFCEE5C8C7F0D1D0DDBDBBEE
+ CDCCEDCBC8E8C4C3E9C4C3A18B8AA9908EECCBC9A28C8B9C8686E3C1C0D2B3B3
+ C0A3A1F2CCCBE2BCBBECC6C5E4BFBDEEC9C8AB8F8DE6BEBBB79795D1B2B0E8C3
+ C1EAC2C0BFA09EBFA19FD5B0ADAE8E8DE2BDBBB19694C9ABA9A68E8DB4989699
+ 7F7ECAA7A59B807FA88C8BE5C1BFDDBDBB957E7DD7B7B6A08685E5C2C0B99E9C
+ AD9391C7A8A6EDCAC8EACAC8DBBBB9E9C7C5DDBCB9F2D0CEE5C4C2E6C7C5E5C6
+ C4E2C3C1F1D3D1EDD0CEDDC0BEDDC1C0EFD4D3F2D7D6DFC4C2DEC2C1F7DBD9D9
+ BDBCE5C9C8D7BDBBF1D9D7E1CAC9E5CECDE0C9C8E6CFCEE2CCCBE1CCCCE8D5D5
+ E8D6D5DECCCBEDDAD9E5D2D1DAC6C5ECD7D6DEC9C9E5D0D0DFCBCAEDD9D8E3CF
+ CEDECBCAEDDBDBE5D3D3DAC9C8E9D7D7E6D4D4EBD9D9D7C3C2F3DEDEF1DDDCDD
+ CAC9D6C2C1E9D6D4D2BFBEEBD8D7F1DFDED3C0BFEFDCDBE5D3D2DBC9C9DECCCC
+ E5D4D3D4C2C1EAD8D7F1DFDE6F67670000006A6160DFCBC9EEDBD9D4C1C0D4C1
+ C0D2BFBEDDC9C8D5C1C1E1CDCBDCC7C6D9C4C4D7C4C3D9C4C3E2CECCD9C5C4DF
+ CCCBD9C7C6DBC8C7DFCBCBE4D0D0D9C5C4E4D0CFDDC8C8DAC6C5DFCBC9E1CDCB
+ D6C2C1E8D4D4E8D5D4EDD9D8E3CFCDECD6D6EBD5D4ECD5D4DCC6C4E0C9C8DDC7
+ C6E1C9C9DDC5C4DCC4C2E2CAC8D9C1C0E0C7C5DAC1C0DEC5C4E4CAC9DDC4C3DE
+ C4C3DEC5C4E6CCCBDDC4C3DFC5C3E1C5C4E1C6C5E5CAC9E4CAC9E3C7C6E8CACA
+ DFC1C0E5C9C7E0C5C3EACBC9DBBCBBEBCAC9ECC9C7ECC9C7E3BEBCAD92909F88
+ 87A18987877473947F7E8E7878C4A6A5897372F4CCCAE3BCBBEDC5C3E7C0BEDA
+ B6B4403534BE9C9A62504F7F6B69F2CBC9EEC4C29379788B7472CCA7A57B6463
+ CAA8A5786462796564C4A5A48D7574866E6C786261977B7A816B6AA48B8A9B83
+ 827864638772717F6968D0AFADC5A8A69C84827B6766EBC7C5E1C1BEDCBAB8E5
+ C3C1DAB8B7E6C3C1DFBEBDE2C2C0E4C4C2DBBCBADEC0BEDCBEBCE5C8C6DFC3C2
+ E8CDCCF3D8D7E6CAC9DABDBBE5C9C8DBBFBEE8CECCD9C0BFECD3D3DEC6C5E6CE
+ CDDFC8C7E1CBCBE4D0CFDDCACAEBD8D8DFCCCCE1CDCCEDD9D9E7D2D1DCC7C6DE
+ CAC8D8C4C3E0CBCADCC7C6EBD8D7DECAC9E0CDCCEDDBDAE6D4D4DBCAC9E0CFCE
+ DECCCCE4D2D3DAC8C7F2E0DFF3E0DFE9D7D5D8C5C5E0CDCDDAC8C7EBD9D8EDDB
+ DBDBC9C9E1CFCFE1D0CFE1D0CFD7C6C5E6D5D4E0CFCEDFCECEECDAD9766D6D00
+ 00006D6363F4E0DFF1DEDDECD9D8DBC8C7E0CDCCF2DEDCECD9D7EFDBD9EAD5D4
+ E3CECDECD8D7E3CECDF0DBDAE5D1D0E7D4D3E7D3D3DAC6C5E1CECDE7D3D3D7C3
+ C2EDD8D7E5D2D1E1CCCBE9D4D3EAD5D5E8D3D3EAD6D6E2CECDE8D5D4E6D1D0E9
+ D4D3E9D4D4E9D3D2EAD4D2E5CECDE6D0CFE9D2D1E3CCCBE7D0CFE6CECDE3CBC9
+ E5CBCBE0C7C6E3CAC8E8CECDE9D0CFE8CECDE3C8C7EFD5D4E8CFCEE8CECDEFD3
+ D2ECD0CFEED1D0E4C8C7E2C7C6E9CECCDEBFBDEACAC8EACDCBE9CDCAEBCDCBEE
+ CCCAEECDCAF2CFCDF0CBC9CCACAA9E8887B19896907B7AE0C0BF5A4D4CC6A7A6
+ 816C6BFAD0CFEBC4C2EDC4C2F6CDCBB19493796463A28785625050B89897D0B0
+ AFFACFCDBA9A99A38786ECC2C07E6766CFADAB8F7877A68C8BCBABA9CAA8A595
+ 7A78967B7AA88A88BA9B9A665655806C6A9E8483A38986917978DCB9B7BB9E9C
+ 5C4D4CC4A5A4EFCCCAE9C6C4EBC7C5EFCCCAEAC8C6EFCDCAEAC9C7EACAC8EFCF
+ CDECCDCBEBCCCAE8CAC8EDCFCEECCFCEF0D4D3F1D4D3F0D3D2ECCFCEE9CDCBEB
+ D1CFE7CECDEAD1D0EDD3D2EAD1D0EDD5D4EAD4D3EBD6D6EDDADAE8D4D4ECD7D7
+ E7D3D2ECD7D7EED8D9F0DAD9ECD6D5E3CECDE5CFCFEAD5D4EBD6D6F1DDDCE9D6
+ D5EBD9D8F1DEDEEDDBDAE9D7D7E7D6D6E5D5D4E6D5D5E5D3D2EBDAD9E7D5D5F0
+ DEDDE6D3D2E7D5D4ECD9D8F3E1E0F4E3E2E6D5D4E7D5D5EDDCDBECDADAE9D8D7
+ EEDDDCE6D5D4EBDAD9F9E7E6786F6E000000736969FFEDECEAD7D6F3E1DFE4D2
+ D0E5D1D0F5E2E1F5E2E0F0DCDAF2DEDCE7D3D1F3DFDDE4CFCEECD7D6EDD9D8EF
+ DBDBEDD9D8DFCBCAD9C5C5DBC7C7DAC6C5EAD7D6EBD6D5E8D3D2E9D4D3E7D3D2
+ EDD8D9EED9D9E8D2D2E8D3D3E0CBCBE4CFCDE1CCCBE4CECEE8D2D1E8D1CFE9D2
+ D1EAD4D2E9D2D0EBD4D2EDD5D4EBD2D1EAD1CFEAD0CFE5CCCAEAD0CFECD1D0ED
+ D2D1EFD3D3F1D6D4E9CECDE9CECEEDD2D1EBCFCDEFD2D1EACCCBDDBFBEDEC2C0
+ E0C3C2EAC9C8EECCCAEBCDCBEBCCCAEECCCAEDCBC9F2CFCCF6D1CFAF94935C4E
+ 4DCAADAC96807FAB91909C8483A08786816C6BAB8E8DF4CAC8EBC1BEF8CBC988
+ 7170AC8E8DB19290715B5BF4C8C6A68B89F6CBC9C09F9E87706FD5AEAD796260
+ 997F7D8D7574EDCCC8B79896AA8D8B7C6564DCB3B1987E7C9C8382B899978C75
+ 74846E6CD5B1AF927B78DBB7B5846F6D8C7675AF9493EBC8C6E8C2C0EAC7C5F1
+ CECBF2CECCE9C6C4EDCBC9E8C7C5EACAC8EBCCCBF0D1D0ECCFCEEBCFCEE8CBCA
+ ECCECDE9CDCCECCFCDEED1CFEED2D0F3D9D7E6CCCBEACFCEE3C9C9E7CFCEEAD4
+ D3EED9D8EDD8D7ECD8D6ECD8D7ECD7D5ECD7D5EED8D7EFD9D8EFD8D8F1DADAEA
+ D4D4EAD5D4E2CDCCE6D1D1E9D4D4E5D2D1E6D3D3ECD9D9EAD8D8E9D8D7EADADA
+ E8D7D8E1CFD0DDCBCBEBD9D7E5D3D2EFDDDCEBD8D8EDDCDBEBDAD8EFDEDCF0DF
+ DDE7D6D4E5D4D3D9C7C7E7D6D5F0DEDEEEDDDCE3D2D1E1CECDE5D1D0766D6C00
+ 00007B7171FFEFEEEDDBD9F2DFDDEAD6D5E1CDCCF0DDDCF2DFDDECD7D6EDD9D8
+ E8D4D3EDD9D8E7D2D1E8D3D2DFCBC9E8D4D4EAD5D4E0CCCBDFCBCAE4D0CFE8D4
+ D3E9D5D5E7D2D1E8D3D2E9D5D4E6D2D2EBD7D6EED9D9ECD7D6EFDBDAEFD9D9E8
+ D1D0EDD6D5EAD4D2EBD6D4E8D2D0E8D0CFE8D0CEEAD1D0E7CECDEFD5D5ECD3D2
+ EBD3D2EED4D2EBD0CFEED3D1EFD3D3EBCFCDE7CBC9F1D5D3E8CCCBE3C7C6EDD1
+ D0EBCECDEDD0CEEFD0CEE9C9C7E9CAC8EDCFCEECCECCEBC9C6EBC9C7E6C6C3EB
+ CAC9E6C4C2EAC6C4EEC9C7D8B6B57C6867E1BFBDECCAC8E2C0BDF2CDCBE8C3C1
+ E9C2BFE0BAB8F4CAC8F4C7C5F2C5C2685655E1BAB7987D7C5A4948F0C5C2B699
+ 97D3ACAAEABFBDD3AEACEBBDBAE6B8B5E3BBB9EAC2C0F6D1CDEFC4C2D9B2B082
+ 6A68EBBEBBE9BFBCE1BBB9F1C8C5E4BDBBE4BDBAECC4C1E6C1BEE4BEBCE2BBB9
+ E7C3C0E0BEBCEFC9C6E9C4C0EFCAC7F1CDCAF3CECCECC9C7ECCAC9EDCCCBEDCC
+ CBEECFCEEED0CFEACCCBE9CBCAE9CCCAEDD0CFECCFCDF2D5D3F3D6D4EFD3D1F2
+ D5D4ECD0CFEFD4D3ECD3D2ECD6D5EBD6D5EDD7D5EBD4D2E9D2D1E5CFCFE7D1CF
+ E7D0CFEAD2D1EED7D6ECD5D4EBD5D4E9D3D2EED7D7EBD6D6EDD7D7EDD9D9EAD6
+ D6E8D5D4ECD9D8E9D7D7EBDADAECDBDBECDBDBE5D4D3E5D3D2ECDADAE6D4D3F1
+ DEDDF1DEDEF0DEDDECDAD9EDDBDAF3E0E0E9D7D6E6D5D4E2D0CFEAD9D8E3D2D1
+ E7D5D5F0DFDDE8D6D5EEDBD9746B6B0000007C7272FEEDECF1DFDEF3E1DFF0DD
+ DBEED9D8E8D5D3EAD6D5EFDBDAEFDBDAEDDAD9F2DEDDECD8D7F5E1DFEFDBD9EF
+ DCDAEFDBDAF1DCDBE1CECCE6D1D0F0DBDAEFD9D9EBD6D5E8D3D3E6D1D1E4D0D0
+ E8D3D3EBD5D6E8D3D2F0DBDBF0DADADFC8C7EDD6D5EED7D6EED8D6EBD4D3E8D1
+ D0E7CFCDEBD2D1E4CCCAEDD5D3E9D1D0E8CFCEECD3D2E7CDCBEACFCDF0D4D2ED
+ D0CFEACDCBF1D3D2EFD1D0E8CBCBEDD0CFEED1D0E2C4C2E8C9C7E6C6C4EBCAC9
+ EFCFCDEFD1CFECCDCBEDC8C6ECC9C6EFCFCDE4C2C0E2BDBBE3BEBCF4CCCAAC8F
+ 8ECDABAAE8C4C2F1CBC9EDC7C4F2CCCAF3C9C6F5CAC7F6CAC7F6C8C5D1A8A554
+ 4544ECC2BF5E4C4B9E7F7D9B7F7DE3BDBB967B79ECC1BEC9A6A3F1C2C0F5C4C1
+ F0C4C1EFC6C3F0C9C6F1C4C1F5C6C4836967D7ADAAEFC4C2ECC4C2ECC3C1EBC3
+ C0ECC2C0EAC2BFEDC5C3EAC1BFECC4C1F2CECBF2CBC9F3CDCAF2CDCAF1CAC8F6
+ D0CDF7D1CFF4CFCEF0CECBEFCDCCECCCCAF0D1D0F3D5D3EECFCEF0D1D0F0D3D1
+ F1D5D3ECCFCDEFD2D0F2D6D3E3C7C4E0C4C3E2C7C6EAD2D0E9D3D2EBD5D4ECD5
+ D4EED6D5F2DAD9F3DBDAF1DAD9F3DBD9F1D9D8EFD8D6F2DBDAF0D9D8EED7D6ED
+ D6D5F1DBDAEBD5D4F1DBDAF3DFDFEAD7D7EBD7D7EFDCDCE8D6D6E9D7D8ECDADB
+ EBDBDBE7D5D4E7D5D4EBD9D8E7D4D3EEDCDBEEDCDBF1DFDEEEDCDBF0DEDEF2E0
+ DFEDDCDBF2E0E0F1DFDEF3E2E1E7D5D4F2DFDEF9E5E4F8E5E4FFEFEE766D6C00
+ 0000766C6BF8E4E3F4E0DFF3DFDEE2CFCDE5D1CFDFCBC9DBC7C7E4D0CFF2DFDE
+ E5D1D0EDDAD9E1CECDE7D3D1E5D0CFE2CFCEEAD6D4EAD6D5DAC5C5DBC7C6E6D2
+ D1E8D3D2F0DAD9E4CFCFECD7D7E1CCCDE3CECEEDD9D8E5D0D0E2CDCCECD6D5D9
+ C2C2E6CFCDE7CFCEE8D1D1EDD5D4E2CCCBEAD2D1E6CDCCDFC7C6E2CAC9E2CAC9
+ E8CFCEE5CCCAECD3D1E4C9C7E9CDCBF2D6D4ECD0CFE5C8C6EACDCBEBCDCCE1C3
+ C2E6C8C6DEBFBDE6C8C6E3C4C2DEBDBBE8C6C4E4C2C0EAC9C7EAC9C7E5C0BEEF
+ CBC9E9C8C6E7C3C1DEB8B5E7C0BDE9C2BF9B7F7EC5A2A0F0CAC8E5BDBBEEC6C4
+ E9BFBCE4B8B5E7B9B6EDBEBBB58F8D8C6F6DDAB2AF8A6E6CBE9492997876DBB4
+ B2987A79CFA7A4F3C4C2EFBDBAF5C3C0ECBFBCEEC5C1E8BFBCEABBB9F2C3C099
+ 7977D6ACA9F2C8C6EDC4C2ECC4C1E5BBB8E3B9B7E4BCB9E9C0BDE8BEBCE0BAB8
+ E6BFBDEDC6C3EBC4C1E6BEBCF0C9C6E6BFBDEAC5C2E5C2BFEBC7C6EFCDCBEDCD
+ CAE3C3C2E5C4C3EBCCCAE3C3C2E7CAC9EACDCCE9CBCAE4C6C4EDCFCDEDD0CEEA
+ CFCDDDC5C4E5D0CEECD5D3ECD4D3E8D0CEE3CBCAE9D0CFEDD5D3E6CDCBE6CDCB
+ ECD3D2EDD6D4E9D1D0E6CFCEEDD5D4E7D1D0E7D1D0DFC8C8E0CBCAEED9D9E0CC
+ CCE7D4D3E8D6D6E8D5D5E3D2D1EBD9D9E5D3D3EAD7D5EDDBDAF0DEDCE2CFCEE6
+ D3D2EDDBDAE6D4D3E1CECEE3D1D0F3E1E0E4D2D2E3D1D0EBD9D9F1DFDEDBC8C7
+ E5D2D0E9D7D5EAD8D7F6E4E36F66660000007C7372FFEAE9F5E2E1D8C5C4DDC9
+ C7DECBC9DDCAC8DFCBCAD4C1BFEBD8D6D5C0BFE5D1CFDAC6C5EDD9D6E3CECCD3
+ BEBDDECBCADECBCADECBC9DCC8C7E1CCCCDAC5C4E6D1D1DEC9C9E9D4D4DDC9C9
+ E1CDCCE1CDCCE5D1D0DEC9C7ECD6D5DCC6C5E9D2D2EAD2D1EAD2D1E5CDCCD8BF
+ BEEAD2D1E3CBCADDC4C4E0C8C7DCC4C2DFC6C5E4CAC9E0C6C4DEC4C2DCC1C0E2
+ C6C4DEC1BFE3C6C4DFC1BFEACCCADBBCBAEACBC9DFC0BFE9C9C7E5C5C3E1C0BE
+ E9C6C4DAB4B2E7C2BFDEBEBCE0BFBDE2BCBAE6C2C0E0BEBCE4BEBCEBC3C1F1C8
+ C5EDC1BFDEB1AFEBC1BFE0B8B5EDC3C0E3B9B6EEC2BFDFB0ADF1C1BDE8B4B1F6
+ C1BDFACAC7FCCAC6E4B0ADF7C0BCF5C7C4F1BEBBEEBDBAE4B7B4E8B4B2E9B6B3
+ E1B2AFE3BAB7E5B9B6EABAB7F2C1BDE6B2AFE3B5B2F0C5C2F1C6C3E9BEBBE3B6
+ B4E9BEBCDFB6B3EDC1BEE2BAB7E6BFBCE1B8B5ECC3C0E6BDBADDB3B0EBC3C1E4
+ BDBBE1BBB9E6C1BFE0BDBBEFCECCF0D0CEE1C0BEE1C0BFECCDCBE1C3C2E6CAC8
+ E3C6C4E2C2C0E0C1C0E5C8C7E4CBC9DEC6C4E4CCCBE9D2D0EED6D5DDC5C4CBB4
+ B3E4CAC9DEC4C3E8CFCDDDC4C2E7CECCDEC6C4EDD5D4DAC2C1DAC3C1E5CECDDD
+ C6C5E9D3D2D8C3C3E6D2D0E1CCCCDFCBCAE1CECDDECBCBE6D3D3DECCCCEAD8D7
+ DBC7C6E7D5D4EFDCDBF1DEDCD8C4C3E4D1D0DECBCAE4D1D0DCC9C8DBC8C7EBD8
+ D7D9C6C7E1D0CEDDCACAECDADAD4C2C0ECD9D8D9C7C6E2D0D0E8D5D469606000
+ 00007D7272F4DFDEF0DEDCD0BDBBDFCBC9E0CDCCE0CDCCE0CCCBDECBCAECD8D7
+ D7C3C2E7D4D3DECBCAEBD7D6EDD9D8D4BFBDDAC5C4ECD9D8E4D0CFE0CCCCEBD7
+ D6D9C5C5DDCAC9E3CFCEE2CDCDDECAC9EAD5D4DDC8C8E1CCCBE0CBCAEBD6D5DB
+ C5C4ECD6D4F2DBDAEAD2D2DDC4C3E0C7C6E4CCCAE3CAC9E2C9C8E5CCCBDAC2C0
+ E0C6C5EFD4D3DEC3C2ECD1CFE3C8C6DEC2C0DDC1BFEED1CFDEBEBCE4C4C2DBBB
+ B9EBCCCADFBFBDE5C5C4E2C2C0E6C5C3EFCCCADCB7B5E8C2BFE1BDBBEBC9C7DE
+ BCB9DEB7B5ECC7C5EAC7C5E8C2BFEFC6C3EBC0BDDEB0AEE2B4B1E5BCB9ECC0BD
+ E1B5B2F2C5C2E1B1AEF4C2BFE2AFACEFBAB7F7C5C2F2C1BDE1ADA9EAB3AFEEBE
+ BAE5B3B0EDBBB8E8BAB7EFBAB7EAB6B3E8B8B5EBC1BEE5B7B4EEBCB9ECB7B4E0
+ AEAAE1B4B1EBBFBCF3C6C3E5B7B4E3B5B3EDC1BFE0B3B1EEC3C0DEB6B4EEC2C0
+ E6BAB7EABFBCE9BDBAE0B4B2E5BCBAE3BCB9E9C2C0EDC9C7DEBCBAF0CDCCF0CE
+ CDE4C3C2E6C7C5ECCFCDE3C7C5E5C9C7E7C8C6EDCECCE5C9C8DEC3C2DCC4C3EC
+ D3D1E8CECCE3CAC8EFD5D4C6B0B07A6C6BC6B1B0E2C8C7E3CAC8E0C7C4EED5D3
+ DDC4C2EDD3D1DFC6C5E6CDCCE9D2D1E0C9C9EFDBD9DDC9C8EAD6D6DDC8C8E7D3
+ D3E3D0CFE1CDCDEDD9D9E0CDCDECD9D8DDC9C8EAD8D7EEDAD9F0DBDAD8C4C3E8
+ D5D4DDCAC9ECD9D8E3D1D0DECBCBE1CECDDBC8C7EDDBDAD5C3C2E2D0CFD5C2C0
+ EDDBDAD9C7C5EBD9D8E9D7D66A6261000000786F6EEFDAD9E9D7D5E2CECDDCC9
+ C8DECCCBE6D4D3E4D2D1DBC9C8E4D3D2DACAC9E6D5D4DECCCCDFCDCDE1CFCEDE
+ CBCAE2CDCCDAC5C4E8D3D2DBC7C6E1CDCDE1CFCEE0CDCCE2CFCEE0CCCCDECAC9
+ E8D3D3DDC9C8E3CECEDDC8C8E2CCCBDBC4C4E7D0CFF1DAD9E5CDCCDAC3C2EAD1
+ D0E1C9C8DFC6C4DFC5C4E0C6C5E3C9C8DAC0BFE4C9C8E6CBC9DFC3C2DCC0BFF0
+ D3D1E1C5C3E1C3C2E3C4C2E2C2C0DABAB9E0C0BEDEBDBBE6C5C3DCBBB9E7C5C3
+ E7C4C2DBB7B5EDC7C6E3BEBCE3BEBCE4C1BFE7C3C0E5BBB9E0BAB7E3BFBCF3C9
+ C5E9BDBBE0B3B0EABBB8DFB1AEF2C7C3E7B9B6E8BBB8E2B0ADEAB6B3E1ADAAEE
+ B7B4F8C3C0F5C3C0E3AEAAE2A9A5E8B4B0E4B1ADEAB6B2E6B6B3E8B1AEE6B1AE
+ E5B5B1E8BDB9E3B2AEE7B3AFE5AEABE7B4B0E4B6B3E8B9B6F4C5C3EFBFBCE4B6
+ B3E6B8B5E1B2B0E7BCBAE0B3B0F1C3C1E2B7B3EABEBBE6B9B6E5B9B6F1C7C5E0
+ B9B6EDC7C5E4C0BEE9C5C3F8D4D1EDCBC9E0BFBEE2C3C2E4C7C5E3C5C4EBCCCA
+ E3C5C4ECD1D0E3CAC8EAD1CFEDD2D0EACECCE1C5C3E5C9C8EBD0CEEED3D2EBCF
+ CD948281B49F9EE4C8C7E2C7C6ECD1CFDEC3C1E2C8C6E2C9C7E5CCCBE7CFCEDF
+ C8C8E2CDCDDDC8C8EBD7D6DDC8C8E3CECDEDD8D7DECAC9DFCBCBDDC9C8E4D0CF
+ DECBCAF3DFDEF8E4E2E7D1D0D5BFBFE3CFCFE5D3D3DFCDCDDECCCBDDCBCADAC7
+ C6E1CFCFE9D7D6D8C7C6E1CECDD2C0BEE3D1D0E0CECCDECCCAE7D4D46C646300
+ 0000736968FAE6E4E5D2D0F4E0DEEEDCDBEDDCDBEEDDDBECDBDAE5D5D5E3D3D3
+ E9D9D9EBDBDBE5D4D3ECDCDBE8D6D6E6D4D4E6D2D1E3CECDE5D0CFE5D1D0E4D1
+ D0E8D5D4E9D5D5E9D6D5E0CCCCE2CECDE8D3D2DECAC9EFDAD9EED9D8EDD6D5EE
+ D7D5ECD4D3EED6D6EBD2D1EBD4D2ECD4D3EAD2D2E8CFCEE5CBCAE5CAC9EED2D1
+ E9CECBECD0CEF3D7D5EDD0CEE6C9C7F0D3D1E4C7C6EBCECCECCFCDEED0CDEDCE
+ CCE7C7C5EECCCAEECCCAEDCAC8EAC8C5E5C3C2E5C3C1E7C3C1EAC6C4E9C4C1EB
+ C4C2ECC9C7EAC4C2E9BEBCEBC4C1F2CCC9EEC3C0EBBDBAF2C2BFE1AEABE8BAB7
+ EBBDBAEDBEBBF3C2BEF0BBB8F0BAB7EFB8B5F1BAB7F6C4C0EEB8B5EFB4B0F2BB
+ B8EEBCB8ECB6B2F3C0BCE9B0ACEDB6B2EDBCB7ECBFBBEEBAB6EDB6B3EFB7B4F0
+ BDBAF0C1BDF0C0BCF0BEBBF0BFBCF1C2BEF0BFBBF2C4C1E9BCB9EEBFBCF0C4C1
+ EEC0BDEBBEBCDBB2AFD9B1AEF2C8C5ECC3C1EBC5C3E8C2C0DFBDBCDFBFBDDFBF
+ BEE9CACAEACBCAEECDCCE9CAC8C5ACABDFC7C5EED5D4F4DAD8E8CECCBEA8A6BB
+ A4A3D1B7B5EACECCEED2D0E8CCCAEED0CE8474736F6261F9DCDBE5CBC9DAC2C0
+ D2BAB8D8C1BFD5BFBDC9B3B1E2CCCAEAD3D3E8D4D3F1DBDBEFD9D9CEBCBBCDBA
+ BADAC6C6EDD8D7ECD7D7EED9D9F0DADADFCBCAD8C5C3DBC8C7E6D1D1E8D5D4EB
+ D8D8EFDCDCEEDCDBEFDEDDECDBDBE9D8D8EDDCDBE8D6D6E6D6D5F3E2E0EFDDDB
+ ECDBD9F2E0DFECDBD9FAE8E7756D6C000000766C6CF9EAE8E6D4D2EEDBDAF1E0
+ DFEEDEDDEBDAD9EEDEDDEBDCDBE9D8D8EADBDAEAD9D9EBDAD9EAD9D8EAD9D8EA
+ D8D7E5D4D3E8D4D3E5D1D0EBD8D6EBD7D7E8D4D3EAD7D6ECD8D8E8D4D3DECAC9
+ DBC7C6E4CECDF1DCDBF1DDDBF0D9D8EFD7D6EDD5D4ECD3D2E4CBCAEAD2D1E9D1
+ D0EBD3D2E9D1D0EAD0CFEACECDEED2D1E9CCCBEED0CFF0D3D1EED1D0EACECCF2
+ D5D4E5C9C7E0C2C0DEC0BFF1D3D2F5D7D5EFCFCCF2D1CFF0CECCF1CECDEBC9C6
+ E7C4C2E9C6C4E7C3C1EAC5C3EAC4C2E9C2C0ECC4C2EEC9C6EDC6C3EBBFBCEFC7
+ C5F0C7C4F1C4C0F4C4C1EFBCB9EDB9B6EDBFBCF0BFBBF4C3BFF0BCB8F5BEBAF1
+ B8B5EDB3AFF3BEBAF3BDBAF1B6B2F1B8B4F0BCB9F1B9B4F5C2BEF2B7B3F4BBB7
+ F1C0BCEDBFBBF0B9B6F0B6B3F0B7B3EBBAB6F1BFBCF4C2BEF5C1BDF1BFBCF2BF
+ BCF4C2BEF4C6C3ECBCB9F1C2BEF2C3C0F5C5C2D9AFAD463938876F6DE7BFBCE8
+ BEBBEEC6C3F2C9C7987F7E1F1B1BBBA2A0EDCCCAF3D1CFCEB1B05F5453AB9997
+ ECD1D0F6DAD9B29D9D49403F897876C7AFAEC0A8A7AE9998DEC4C2F3D6D4ECCE
+ CC7C6B6A6F6261FFE5E4DCC4C24B43425A514FAD9B9AAA98977C6F6E605756E8
+ D2D1FBE5E4C6B4B4857978948686A697979185847A6F6EEAD5D4F0DAD9F0DAD9
+ C8B5B4423C3B5E5454E2CFCEF2DEDDEEDBDBE6D4D4EDDBDBF2E0DFEEDDDDEADA
+ D9EAD8D8E9D8D7E6D5D4F1DEDCF0DEDDEEDDDBF1DFDEF1DFDEFBEBEA78707000
+ 0000776E6DFFF3F1F1DDDCEEDBDBE9D8D8EEDDDCEDDCDBEADADAECDDDCECDCDB
+ EDDCDCE5D5D5E9D8D8E9D8D8E9D8D8E7D6D6E9D8D7EAD8D8E3D0D0EBD7D6EDD9
+ D9EBD7D6EDD9D8EDD9D9EDD9D8F0DBDAECD6D5E9D3D3ECD7D7F0DBDAF1DBD9F0
+ DAD8EFD8D7F0D8D7E9D1D1EED5D4EBD2D1EAD0D0ECD1D1E8CECDE8CCCBF2D7D5
+ E9CCCBE7C9C8F1D4D3ECCFCEE7CAC9EFD3D1EACCCBECCECCEFD1CFEBCCCBF0D2
+ D0F1D3D1F0D0CEEFCDCCF0CDCCECCAC7EBC7C5E7C3C2E7C2C0EBC5C3E9C5C2E9
+ C2C0EBC3C0EDC3C0EDC5C3EBC1BEEDBEBCF0C7C4EBC0BCEFBEBBF1BFBBEDB7B4
+ ECB9B6F0C0BCF2BFBCF0BCB9F2B9B5F2B8B4F1B5B1F2B8B5F0BAB6F1B4B0F3B4
+ B0F1BBB8F2B7B3F1BBB7F0B3AFF1B7B3F4C2BEEFBEBAEFB6B2EFB2AEF0B7B3EC
+ B9B6EEBAB7F2BDBAF8C3BFF6C3BFF1BBB8F3C3C0F5C4C1F0C0BCF2C2BEF1C0BD
+ F4C4C2F7C7C45B4948B89896FFD4D1EBC1BEF1C8C5EEC4C2DDB9B73C3333E8C5
+ C3F3CFCCD7BAB8342E2DA28F8EF9DAD9F5D7D5BDA5A5282222BEA7A5FDDDDBF4
+ D5D3F9DBD9E5C9C78F7D7CE2C7C6F8DAD8806F6E726463FDDFDEFEE1DF706463
+ 8F807FFFEAE8F7DDDBFCE3E1A39392D1BCBBC8B5B5453F3FC5B3B2F9E3E2F8E2
+ E1FAE4E38B7F7FD0BDBDF7E2E0F1DBDAFFE9E7756A69817575FBE5E4F0DCDCEE
+ DCDCEEDCDBE9D8D7EDDCDBEFDEDDF0DFDFF3E1E1F1DFDEEEDCDBF7E4E2F0DDDC
+ F0DEDDF2E0DFF3E1E0FFF0EE7971710000007B7170FFF4F3EFDBDAECDAD9EFDF
+ DEEDDCDBF0DFDEECDCDCECDCDCEEDEDEEFDFDFEEDDDCEDDCDBEDDDDCDFCCCCD9
+ C8C8E7D6D6EDDBDAE5D3D2E9D7D6EBD7D7EAD7D6E9D5D4EBD6D6E6D2D1EBD6D5
+ EDD7D7E8D2D2E9D2D2EED8D7E9D2D1EED7D5F4DDDBF3DCDBEFD7D6F1D9D8F4DB
+ DAF2D8D7EDD2D0DFC3C1DFC2C1E4C7C6EDD0CFECCFCEF4D8D7F2D5D4EFD0CFF1
+ D2D0E8C9C7EDCECCF2D3D2EECFCDEDCECCECCBCAEDCECCEFD0CDF2D1CFEECCCA
+ EDC8C6E9C4C1E8C3C0EFC7C5ECC4C1EDC5C3EDC5C3ECC1BFEDC1BFEFC6C4EEC3
+ C0E9B9B6E1B7B5E3B4B1EEBAB7EFBAB7EBB3AFF1BEBBF0BBB8F3BFBCEFB7B3F1
+ B5B1F2B3AFEEB0ACE6AEA9EEB1ACF2B0ACF2BAB6F3B6B2F1BAB6E4A4A0EBB0AB
+ F5C4C0F3BFBAEEB1ACF1B0ACF4BCB8EFBCB7F0BAB5EEB7B3F1BCB9F1BBB7F0BC
+ B8F0BEBBE9B5B2E3B1ADE8B5B2E2B0ADF3C3C0F6C7C4594847A58987E6BEBBE4
+ BDBAFCD2CFECC4C1D8B5B2413736ECC8C6F3D2D14C4443827170F2D3D0E4C4C2
+ F1D0CF4C4342877675FFDEDDEED0CEEDCECCEED0CEFCDCDA958281958382FFE9
+ E78A7978706261FEE2E0FFE4E27366658B7C7BFFE3E2F1D7D7F2DAD9F2DAD9EC
+ D4D3554C4DA89897F9E2E1ECD6D5EDD8D7F0DBDAEFD9D8EFDAD9F3DDDCF5DFDD
+ FEE9E7746A69857A79FDE9E8F3DFDEEFDCDBE8D6D6D8C7C7E3D2D2EEDCDCE9D9
+ D8EEDDDDF1DEDEEAD7D6EDDAD9F0DDDCF1DEDDEBD9D8E6D4D2FDEAE8766D6D00
+ 00007E7573FBECEBE1CECDE2D1D0EBDAD9DFCFCEE4D5D4EADBDAE4D4D4E9D9D9
+ E0CFCEE1D1D0E0CFCFEEDDDDE1D0D0DECDCCE7D6D6E0CECEE0CFCEE7D4D4DFCC
+ CBE1CDCDE8D4D4ECD7D7E1CCCCDDC8C8E6D1D0ECD7D6E2CCCCE3CCCBE0C8C8ED
+ D5D4E3CBCAE5CDCDE5CECDE1C9C8E3CBCAE4CAC9F1D6D4EDD0CFDDC0BFDABCBA
+ EDD0CFEACDCCE6CAC9E2C5C3E7CAC8EBCCCAE0C0BEE0BFBDEBCAC9EAC9C7DEBE
+ BCE3C2C1DCBBB9E5C5C2EACAC8E2C1BFEBC8C6ECC7C5E7C0BEE1B9B6E3BAB7EA
+ C1BFE7BEBBEDC3C0E6B9B7E7B9B6E7BEBBEEC3BFEAB9B6E0B5B2E9B8B4F4BEBA
+ EEB5B1E9AFABE7B3AFECB6B2F4BDB8F4B6B2F3B3AEEFACA7E7ACA7F3B5B1EBA5
+ A1EBB1ACEEAFAAF3BAB5E7A39EF0B3ADEEBEB9EAB1ADEBAAA5F6B4B0EEB7B3EA
+ B3AFF4BAB6EEB5B1E8B0ADF4BCB8E8B6B1E7B2AEEBB7B4E6B1AEEDB9B5E2B0AD
+ EDBDB9EFC1BE55454476605EA58684826B69B09492F0C6C3D4AFAC3D3433BCA3
+ A16E6160514646FAD8D6E7C6C3E0BDBCD7B9B7332D2CD9BCBBE7C8C6E5C5C4E3
+ C3C1DEC0BEF2D3D2A993925F5251FEE3E18C7C7A675958EED1CFF5D8D66B5E5D
+ 726362DAC0BFCFB8B7877978D5BEBED9C2C23E3837E3CCCBE3CCCBDCC6C5E2CC
+ CBDDC8C7E9D4D3E9D4D3E0CAC9F4DEDDEDD7D66A605F857978F6E1E0E1CECCE2
+ CFCDEBD8D7DCCACADDCACBE5D3D3DECDCDEAD9D9E1CECDDECAC9D9C5C3EBD7D6
+ E6D3D2E2D0CFEAD8D6E8D5D46C63630000006E6564E1CCCAE1CFCEDFCECDD9C8
+ C8D8C8C7E5D5D5DECFCFDFCFCFE2D1D1E2D1D1DCCBCADAC9C8EAD9D8DDCCCCDF
+ CFCEE5D4D3DDCCCBE6D4D4E8D5D5DBC8C7E5D2D1EAD6D6E5D1D0DFCAC9E8D3D2
+ DDC7C7E8D3D3DEC8C7ECD4D3DCC5C3EDD5D4DDC6C5E9D1D0DEC6C5E1C9C8DFC5
+ C4E2C7C6DABFBEDCC1C0E1C5C3E7CAC8EFD2D1E5C9C8DCBEBDE3C6C3EED0CFE2
+ C2C1E6C6C5E3C3C1E5C3C1E7C4C2E0BDBBEDCCC9DCBAB8EBC9C7E6C4C1DCBBB8
+ EBC9C7EFCDCBEBC4C2DEB5B3E6BCB9E8BEBBE6BBB8E8BEBBE7BBB8EBBCB9E4B4
+ B1E7BBB9E5B6B3E8B6B2F0C3C0F3BEBAEEB5B1E4A6A2ECB3AFE5ADA9EFB7B3F5
+ B7B3F5B2AEEBA4A0E7A5A1F1B2ADEAA09CF0B3AEF3B1ACEFB1ADE8A29DEFB2AE
+ EEBCB6EEB0ACF0ABA6F3B1ACE7AFABE8ADA9F3B7B3E7AEAAE5A9A5F3BDB9EAB3
+ AFE8B1ADECB5B1E9B1AEF0BBB7E7B4B1F0C0BDE4B6B3534341AE8C8AFFD2CFE5
+ BDBB4C3E3DA48684D8B7B4352E2DB39A98B298978B7675A38A89EBC7C5ECC9C7
+ D3B6B4403736DDBDBBE1C0BEE8C8C7E9C9C8D9BAB8EBCDCB9581804E4444FCDD
+ DB8C7B7A635655F0D2D0ECCECC665958564B49A99594A491904F4645CCB6B6C7
+ B1B03C3635E3CCCBE0C9C8E0CBC9E1CCCADAC5C4EAD5D5DAC5C3D7C2C1E7D2D1
+ E8D2D16D6463817474E5CFCEE5D1D0DDC9C8E0CCCBE1CECDE5D3D3E6D5D4D9C8
+ C7E3D1D0DCC8C7E7D3D2D4C0BFEDD9D8DCC8C7E6D4D3E4D2D1F0DCDB776E6D00
+ 0000706665DFCAC8EAD8D7E3D2D1DFCECDDCCBCAE8D7D7DFCFCEE3D2D2E2D2D2
+ E3D2D2DFCDCDDECDCDE2D1D0DDCCCBDFCFCEDECDCCDFCDCCE2CFCFE3D1D1DAC6
+ C5EAD6D5EBD7D7E3CFCFDFC9C8EBD6D5DFC9C9E5D0CFDDC7C6F0DAD9DAC3C2E6
+ CECDDBC3C2E6CECDDBC4C3E7CECDEED4D3E2C7C6D9BEBDE2C6C5EDD2D0E2C6C4
+ EDD2D0EFD3D3DEC1BFDEC0BEE7C7C6DFBFBDE4C4C2E3C3C1DFBFBDE1C0BDE1BE
+ BCEAC6C4DBB7B5E8C5C2DFBCBAE0BDBBE2BFBDF0CDCAEDC8C6DEB6B3E7BCBAE7
+ BBB8E7BAB7E9BCB9E8BCB8EDBFBCE4B3B0E6B3B0EDC0BDE9B9B5E8B5B1F1C3BF
+ EBB2AFE5A8A4EEADA9E6ADA9EEB4B0F5B7B3EEA9A5E99F9AF0A7A2EAA8A3ECA0
+ 9BEEAAA5F1AEA8EBACA6EEA6A1EBADA8ECB8B3EEACA6F1A6A2EDAEA9EDB3AEED
+ AEA9F0B1ADE9ADA8E9AFABEEB5B2EBB0ACEAB0ACECB2AEE7AFABECB7B3E6B5B1
+ F4C3C0E6B5B2544342A98987EEC0BEFDCECA685554635655DFBFBD3C3231E3BE
+ BBF8D0CEE1BCBA4F4241C4A7A5EAC6C4E1BEBC655756CFB1AFDEBDBBDCBDBCE2
+ C3C2DBBCBAECCCCA534948786969FFE6E4897977635554F3D4D3EFD0CF645655
+ 837372F8DBD9EDD1D0D8C0BFE7CFCED5BEBD474040CFBCBAE2CBCAE0CBC9DEC9
+ C8DCC8C6ECD6D5E2CDCBE3CECDE3D0CEEBD4D36F6464817574E5CFCEEFDBDADE
+ C9C9DECAC9DCC8C7E8D4D3EAD7D7DAC7C6E4D1D0DEC9C8EAD6D5D5C1C0E7D3D2
+ D5C1C0E0CECCDFCCCBEEDADA746B6B0000006C6261E3CECDE6D5D4DBCAC9E0CF
+ CDDDCCCBE0D0CFDECECDE1D0CFE9D9D8DFCECEDAC9C9E3D1D2DECDCCE2D0D0E6
+ D5D5E0CECEE0CECEE0CDCDE2D0CFDECAC9EBD6D6E9D5D5E9D5D3E0C9CADDC7C6
+ E2CDCBE1CBCAE0C9C8ECD4D3DCC4C3E8CFCEE3CBCAE7D0CFEBD3D2E3CACAE9D0
+ CFE1C7C7EED3D2E6CBCADEC3C1DABEBDE7CBC9ECCFCEE1C5C4DFC2C0E4C6C4E9
+ C9C7E1C0BDE3C1BFE1C0BEE4C3C1E2C0BEE6C2C0E5C0BDE7C0BEE8C2C0E9C4C1
+ E5C1BEF3CECAEAC3C0DEB8B6E2BBB8E2B7B5E4B7B4EEBFBCE8B9B6E8B9B6EABB
+ B8EEBBB8EDB7B4EABBB7EBB8B5F1BCB8F1BFBBEAAEAAE9A7A3EDACA7F2B8B3F3
+ B6B2EEA9A4EBA09AF5A6A0EEA9A3EC9F9AEEA39EEEA8A2EDAAA4F4A7A2EEB0AB
+ EEB7B2EDA39EEDA09CECAFAAF1B3AEEFADA8EDAEA9EEAFAAF0B6B2EEB1ACECB0
+ ABEDAFAAEBAFABEDB5B1EFBBB7ECB9B6F5C1BEECBBB7584746AF8D8AF9CAC8E4
+ BFBC3A3231A98F8DDAB5B3392F2EE3BCB9F1C9C6E1BDBB322A2ABA9C9BE7C3C0
+ F4D0CEB59B9A937F7EECCAC8E8C8C6E8C9C7F2D1CFA6908F2C2626D8BDBCFFE0
+ DE877776695B5BF0D1CFFADBD96C5E5D7F7070F8DCDBE5CBCAF0D6D6C8B3B2E9
+ D1D09C8D8D7B6F6EEBD5D3E6D0CEDEC9C8E3CBCAB6A4A3E1CCCBEBD5D5EDD7D6
+ F4DEDD6A605F847877F1DBDAF4DFDEDFCBCAE7D2D2DECAC9E7D3D2E1CECDD8C4
+ C3EDD9D8E1CDCCDCC8C7DECAC9E0CDCCD6C2C1DECBCAEAD7D6EFDBD9736A6900
+ 00007A706FFDEAE9F3E2E1EDDCDBF0DEDDF4E2E1F4E2E1F2E1E0F2E1E0EFDEDD
+ F0DEDEE8D6D6ECDADAE8D6D6E4D2D2E8D6D6E7D5D5EAD8D7E6D3D3E9D6D5E9D4
+ D4EED8D9E9D5D4E8D2D2EBD6D5E9D3D3ECD5D4EBD3D3F1DBD9F1DAD8EFD7D6F0
+ D8D7F6DEDDF1DAD9F1D8D7EAD1D0E9D0CFEDD4D3EDD3D3ECD2D1E9CFCEECD0CF
+ EED0CFECCDCCEBCDCCEED0CFF1D4D2F2D4D2F0D1CFF4D2D1EDCAC8F4D0CEF1CE
+ CCF1CDCBF2CECBECC6C4F4CDCBF1C9C6EFC6C4F2C9C7F0C7C5EEC6C3F3CBC8EB
+ C3C1EDC3C0ECBEBBF3C3BFF2C1BDEFBDB9EFBEBAF3BFBBF2BAB6F4C1BDF3BDB9
+ F3BCB8F3BDB8F1B0ABF2AAA5F1AFABF1B3AEF7B3ADF6A8A3F5A29CF5AAA4F5A7
+ A1F6A6A0F7AFA9F5AFA8F4A59FF4B6B1F5B9B2F4A49EF1A6A0F1B3ADF3AFAAF1
+ ADA8F3B0AAF3B5B0F2B2AEF3B3AFF3B2ADF5B6B2F5BAB6F4BEBAF4BEBBF5C0BC
+ F8C6C2E6B9B6473838937977C4ABA9776665947B7AF7CBC9AB8C8B332A29B496
+ 95C1A2A16E5C5B8D7776F7D2D0F1CECCF2CFCEF5D3D0BDA3A2AB9492D9BCBBD3
+ B6B5907D7B584D4CC5ABAAF7D7D5EED0CE645757483F3FE1C5C4EBD0CE534949
+ 706363CBB5B4C3AFAEA59493817474EDD5D3F0D8D7A29190A89997D8C3C2D1BC
+ BB8E7F7E3D3737BBAAA97E7372C2B0B0CBB9B85C5353716766D1BFBFA89A987A
+ 706EF5E0E0EDD9D8ECD8D7E5D1D1E4D0CFE7D3D2EEDAD9ECD8D7F0DCDBEAD7D6
+ E6D3D2E4D1D0F1DEDDFCE8E6776D6D0000007B7271FFEEEDEAD7D6E4D3D2E4D2
+ D1EEDCDBE7D6D5EEDDDDF1E0DFEDDCDCF1DFDFEFDEDEF0DFDDEFDDDDEBD9D8EF
+ DDDCFBE8E8FDE9E9F8E4E4F7E3E3EEDAD9EFDADAEFD9D9EFD8D8FAE3E2F2DAD9
+ F0D8D7EED6D5F3DCDBEFD8D6F1D9D8ECD4D3F1D9D7F0D8D6F2DAD9EDD5D4EBD2
+ D2EBD3D2ECD3D3EFD6D5ECD2D1EDD2D1EBD0CFE2C5C4E8C9C7EBCBC9E9CBC9ED
+ CECCEDCECCF1D1CFE4C5C3EFCECCEFCBC9EFC9C7EFC8C6E7C1BEEFC8C6EEC5C3
+ ECC1BFEFC4C2D8B1AFE8BEBCF3C9C6EDC3C0F0C7C4EEC4C0F1C3C0F1BEBBECB7
+ B3EBB7B3F0BDBAF2BBB8F1B5B1F4BEBBF5BCB8F6BDB8F6BBB6F5ADA8F2A6A1F1
+ B0ABF5B3AEF6A8A3FBA39CFFA9A3FFB2ABFEA49EF9AFA8FCAFA7F5A29CFFC2BB
+ FFB8B2F9A09AF4ACA5F0AEA8F2ABA5F3ACA6F2AEA9F3B2ADF1ADA7F0ABA6F0AD
+ A8F1B2AFF1B8B4F4BAB6F7BDB9FBC4C1FFCBC7E8B8B5CCABA8D0B0AED7B3B0EE
+ C3C0FFD9D7FBCDCAECC0BEE5BBB9D0ADAAB99998D3B1AFF5CFCDEDCAC8E9C6C5
+ EBC9C7E5C3C2F9D6D4EAC9C8D0B3B2B19897BDA3A2EBCBCAF4D4D2F2D2D1E0C4
+ C3C5ADACC3ACABE1C7C6E6CDCBC9B3B2CEB7B7D0B9B7D1BAB9C9B4B3D8C0C0FB
+ E1DFF4DAD9FEE4E2EAD2D1CCB8B7AE9D9CB09F9DD9C4C3EAD3D2AE9D9DBEACAC
+ BEACACBAA8A7BCAAA9C3B1B0C1B0AFAC9D9BEAD7D6E9D6D5ECD7D6EFDAD9E6D1
+ D0EFDBD9F2DDDCF2DEDCF3DFDEECDAD8EAD7D6E3D1D0E8D6D5FAE5E4736A6900
+ 0000756B6BFFEDECF0DDDCEDDBDAE5D3D2F2E0DFE9D8D7E7D6D5ECDADAE4D2D1
+ EAD8D8EDDCDCEEDCDCF0DDDDE9D6D6E4D2D17F7575766D6C706767615A5A4842
+ 414D4646685F5F675E5D7F7372998A89CFBBBAF0D9D8EDD5D4EFD7D5EBD3D2EB
+ D2D2EED5D4EFD6D4EED5D4EED5D4E9D1D0EAD2D0EBD2D1ECD3D2EDD4D2F1D6D5
+ A89594827372F5D6D4EECECCEDCDCBEBCAC8E8C6C4F0CECCE7C4C2F2D0CEEFCC
+ C9ECC8C5E5BFBCE4BBB8EBC1BFEDC3C0EEC4C1EBC1BE5E4C4BDEB3B0F3C5C2EC
+ C0BCEEC3C0ECC0BDECC1BDEEC0BCF1BDB9EEB8B4F2BBB6F1BAB6EFB7B3EEB0AB
+ F3BAB6F5BAB5F7BDB8F9B8B3F4A59FF6A9A3FFBBB5F9ADA6D48882B5716C8E60
+ 5C784C49523A38442E2D68434081635FA06F6ACA7F7AEDA9A3FEB1ABF7AAA4F2
+ A7A2F4AFA9F4ABA5F3A9A4F2AAA5F1B0ABF1B6B1F3B7B2D5A19EA7817E866765
+ 7F63617C6765816E6D816A697D656478615F786260826968967A78B69492EAC3
+ C1F4CCCAF4CECBEDC9C7EFCCC9ECC8C6F0CDCBF6D2D0D1B3B1AE949389767573
+ 6261796867B89F9EDDC0BFB59E9DA08D8B8E7C7C837473786B6B837574887978
+ 7C6E6D786A69776A69776B6A6F6363665B5A6156566359586C61617B6E6E8D7E
+ 7EA09090BFACABE4CECDFFECEBF8E1E0F3DDDCF5DFDEF6E0DEF4DDDCF9E2E1F0
+ DAD9F2DDDCF2DDDCECD7D5EAD5D4E3CFCEE7D2D1ECD7D6F3DEDDF2DEDDF5E2E0
+ EDDAD8DFCCCAE2CFCEFEE9E87B7271000000766D6CFDECEBF3DFDEF0DCDBE9D6
+ D4EEDCDBECD9D8E7D4D3E4D2D1E1CECDDFCDCDE4D2D2E5D3D3E7D5D4EDDAD9CE
+ BDBC0000000000001210104C4545716666887B798F81818E81806D6362554D4C
+ 413A3A7B6F6FECD5D4F0D9D8EDD5D5F0D8D7EFD6D5EED6D4EBD2D1E9D0CEE9D0
+ CFEBD2D1ECD3D2EBD0D0EBD1CFFADEDD786A6A262121E8CBC9EED0CEEFCFCCED
+ CECBE9C8C6ECCAC8E6C3C0EDC8C5EFCAC7EBC6C3EAC4C2EBC6C3EEC6C4E4BAB7
+ F2C4C1BA9794070606C6A09EF7C7C3EDBDBAECBCB8EBBCB8E6B8B4E5B7B4F5C6
+ C2F0BCB9F3B9B5F0B5B1F2B7B3F0B5B1F1B0ACF5B9B4F5B8B2F7BAB5FAB0A9F4
+ 9E98AE78737C5855623E3C50302D5B3C39724643754A47724D49784E4B684F4B
+ 3E2927482E2C6649468D605CE29893FFB0A9F5A9A3F3A49EF2A39EF1ABA6F2B3
+ AEF2B2ADF1B5B0EBB2ADDBA6A3CFA9A6BFA09C3A2E2D4B3938755B590000000E
+ 0B0A9B7B79BC9694DAB3B1DCB5B3E9C2C0EAC3C1F2CCCAECC6C4EAC4C3EDC8C6
+ EEC9C8957F7D7967677A6766040303191616A69190E0C4C2E5C7C5DBC0BED4BA
+ B9C9B0AFB09B9A1B18188878786B5F5E0000000000000000001412123F38385C
+ 5251685D5C685D5D584F4F35302F2A2626373232383232342F2F776C6CDAC6C5
+ F6E0DFE8D2D1E7D2D1E8D3D1E9D4D3E4CFCFEDD8D7ECD7D5EBD6D5EBD6D5E1CD
+ CCE3CECDE1CDCCEAD6D4E5D1D0F4E0DFF1DDDCF1DEDCEDDAD9FBE7E6786F6E00
+ 0000706766E2CECCE9D6D5E4D0CFE2D0CEE1CECDDCC9C8EEDBDBD7C6C6DAC8C7
+ E1D0CFD6C4C4E2D0CFD8C6C5EBD7D7AE9F9E010101857877DEC9C9EBD5D5E7D1
+ CFF0D9D8F4DEDDE6D0CED4BFBD9485848C7D7D504847433C3CDBC5C3E3CBCBEB
+ D3D3DEC5C4E5CDCCE2CAC9E0C7C6E0C7C6E8CFCEE5CCCAE1C7C6E1C6C5EACECC
+ 635756000000B19A99F0CFCEDCBCBAE5C4C2DCBAB8E5C3C0DDBAB8E9C5C2E4BF
+ BCE0BAB7DDB5B3EAC2BFE4BCB9DBB4B2EFC4C1745F5D000000886B69FBC8C4E4
+ B5B1EEBCB8EBB6B3E6B2AEE7B4B1F3C2BEF3C3BEECB9B5E9B0ACEAABA6ECADA8
+ EBADA7F2ADA7F1B0ABFCB8B1C9928D714B487044414D383662403EB46762E98D
+ 86FA958CFFA39AFFB1A8FFA9A1F3B5ACD17E76895A555A3F3C5C3C38462E2C95
+ 6661FFA6A0F69F99EFA39EEEAAA4F1ACA7EFAFA9ECABA6EEB5B1EBC0BCECBEBA
+ FFCBC78264617D615FA9827F0000003D302FECBCB9E9BCB9F3C8C5EFC4C1E0B6
+ B4E1B9B6F0C9C6E2BBB9E8C2C0ECC5C3877170877372C0A5A41814141C1817D4
+ B7B6F2D1CFE1C2C1E8C9C7EDCFCDE1C4C2E3C5C4F9DBDA544A4A9784827A6A69
+ 0000003C3534B8A2A0DDC4C3E5CBC9EED4D2EED3D2F3D9D8E9D0CFDFC8C7B8A4
+ A3817474615756635959282424100F0F847777DCC6C5E0CBC9DFCBCAD7C3C2E6
+ D2D1EDD9D7DAC5C4DEC9C8E7D3D1DCC8C6E4CFCEDBC8C7DAC6C5DAC6C5E9D5D4
+ D4C0BFEAD7D5E7D4D3E5D0CE685E5D0000007A7170EBD7D5EEDCDBDECBCAE4D1
+ D0DAC7C6E1D0CEEDDCDCDFCECEE1CFCFEFDEDED9C9C8E9D8D7DBCACAF6E3E3AF
+ A0A0221F1FD8C4C3ECD7D6E6D2D0DCC6C5E8D2D1E7D0D0D8C2C1E3CDCBEAD2D1
+ 8C7E7CAE9C9B332E2E594F4FE4CBC9F0D7D6DDC5C4EBD3D2E1C9C8ECD3D2E4CB
+ CAE4CAC9E1C8C7E7CDCCE8CDCCCDB4B3847373453C3C5F5152FCDAD9DEBDBAF3
+ D0CEE4C2C0DCB9B6DDB9B7ECC8C6DAB6B3F0CAC8E1BBB7E3BBB8DEB5B3EDC3C0
+ C7A19F77615F614F4E4F403EF5C3C1E4B1ADE9B6B3E4AFACEFBAB6F4BCB8F5BC
+ B9F0BAB5E6B4B0EEBBB7E9B1ADEFADA8EFAAA5F1AEA8FDB1ABA5787464474585
+ 5E5A351D1C95605CFBADA5FF9890FD8B83FD938AFC9A90FCA39AFDA49AFEC4BB
+ FF9187FFB4ABC8827C62403C805450301E1D633F3CF3A19AF8ACA6F1A9A3EFA8
+ A4EFADA7EEBBB6E9BDB8F0B9B5E9ADA9F4B5B18764627F6260A27C7A00000050
+ 3F3EF6C7C3F2C4C1F1C5C2F5C9C6E5BAB7E6BCBAEDC6C3E3BDBAF1CBC9A88E8C
+ 826F6ECBADAB1C1818050505B69C9BF0CCCBE5C3C1DDBDBBE8C8C6E7C8C7DABD
+ BBDABEBCF9DAD96D605F907D7C7666650000007E706FF2D5D4EFD6D5DCC4C3F1
+ D9D8E2C9C9DAC2C1EDD6D5E5CECDE3CCCBF3DCDBC4B2B15D5453908281595050
+ 000000514949E0CCCBEAD5D5DAC6C5E8D4D3EBD7D6DECBCAD9C5C5DECAC9EAD6
+ D5D9C4C3E5D1D0E3CFCDE0CCCBE5D2D1DAC6C5F6E2E1EEDBDAEFDBDA655C5B00
+ 0000736A6AE9D6D5E5D4D3DCCACAE3D2D1D9C8C7E7D5D5E3D1D1DBCACADAC7C6
+ E3D2D2D7C6C6E2D1D0D9C8C7EBD9D9A29595696060E3CDCCE2CDCCE3CFCEDAC4
+ C3E3CDCDE5D0CFDBC4C4DDC6C5E2CBCACDB7B6786C6BA79393040403AA9695F3
+ D8D6DBC1C0E1C8C7DFC7C6E4CACAE0C7C6E4CACAE0C6C5E8CECDEACFCEA79392
+ A69292706262131111E2C3C1DDBBB8E9C6C3DEBAB8DEBBB8DFBAB8EBC7C4DBB6
+ B3E7C1BFE0BAB8E6C0BDDDB6B4F5CBC88A716FA887856D5756120E0EDDB0ADE4
+ B5B2ECBBB7E7B2AFEDB6B2E6ADA9F2B7B3F1B4B0E7ABA7EEB6B1EBB6B0EDB6B0
+ F3B2ADF9ACA6996B686747439B6C69151312A2716CFF9D95FFAAA0FC9E95FD80
+ 77FF9288FFA59BFFAAA0FFA298FFB8AEFE9389FEABA1FFA198E7968E5B39369D
+ 5E592B1B1A4D3432F8A9A2F4A9A3F0B2ACECBDB8EFB9B4EBABA6EBA9A4E8A9A4
+ F0B1ADA279768467659F7C79000000644F4EFAC6C3E1B0ACECBEBAF4C8C5E6BB
+ B9E6BFBCEDC8C5E8C3C1D7B7B5705E5DDEBCBA3A3231000000847270F6D3D1DF
+ BCBBE3C1BFDFBEBCE2C2C1DDBFBCE4C6C4E2C4C3F5D6D4766867927F7E766666
+ 000000978686E7CDCCE5CBCADBC3C2E5CECCDFC8C7DDC6C5E7D0D0E4CECCDCC7
+ C6E3CDCCF5DFDDD6C0BF695F5E968887675D5D0000004F4848E0CCCCDFCBCAEF
+ DADAEFDCDBD8C5C4DBC8C7D8C4C4E0CCCBDCC8C6D9C5C4D6C1C1DFCBCADDCAC8
+ D8C5C3F4E0DFF1DDDCEBD6D5655B5A0000006D6464E5D3D1E7D6D6E5D3D3E2D1
+ D0DCCAC9E5D3D3DCCBCAE1CFCEE2D0D0E1D0D0E2D1D0E6D5D4D9C8C7EFDDDD94
+ 89899B8E8EEAD5D4E3CDCDE5D0CFE4CECDE4CECCE5CFCEE4CDCDE1CBCAE2CBCA
+ EBD2D1736767B4A09F322C2C615655F5DAD8E2C8C6E2C8C7E7CDCBE2C8C7E4CA
+ C9E6CCCBE0C6C4E9CECDEED2D1887877C3ABAA3932320000009B8684EDCAC8E7
+ C5C2E4C2C0E6C3C0DFBAB9E9C4C2E5BFBDE5BEBCE7C1BEE6BFBCE7BFBCE1BBB8
+ 6E5A59CDA8A5151211000000B5908DF5C1BEF6C3C0ECB9B6E8B3B0EDB5B1F2B7
+ B2EFB0ACEEAEAAEDAAA6EEACA7F1B4AEFFC5BFAE807C5A3C3BB37B7609060695
+ 6560FFC2B9FEA79FFE8D83FFACA2FF8F84FF968BFFABA0FFB8ACFFBEB3FFB1A6
+ FFAFA4FFABA0FE9E94FF9E94E07E765E3A37C17F790C06066E4B49FEC2BCF6C2
+ BCEFACA7F1A9A4F1ABA7ECACA8F2B6B2FBC1BDAB8481866764A37C7A00000075
+ 5B59F9C3C0E8B9B6EABEBBEDC3C0E5BDBAEBC3C1E9C1BFE9C2BF7C6767CBAAA8
+ 7B67660000003F3434EDC9C7EFCDCBDDBBBAEAC9C7E6C6C4E7C8C6DEC0BFEBCD
+ CCE4C7C5F2D3D18D7C7A9D8A897A6C6B0000009C8C8BEED4D3E2CBC9EED6D6E7
+ CFCEE9D2D1ECD4D4E6CFCFE7D2D1E1CBCBE3CDCCE1CBCAE4CECDDFCAC9564E4D
+ B09F9F5951510000006D6363EBD7D6E8D4D4E9D5D4E3D0CFEBD8D7E2CECDE6D2
+ D1EBD7D6DAC6C6DFCBCAE6D1D1E4D0CFE3CFCEF4DFDEF1DDDCF2DDDC6D626200
+ 0000776E6EEBD9D8E4D3D3E7D6D5EEDDDDE8D6D5EBD9D8ECDBDBE8D6D6ECDAD9
+ EDDCDDE8D8D8E1D0D0D7C7C6F0DDDDBBADADDAC9C8EBD6D5EAD4D3F1DCDBEED8
+ D6E0CBCAE4CECCE5CFCEE4CECDE7D0D0F0D7D6776B6BAA98975249492F2A2AEE
+ D4D2F0D5D4E7CDCCE8CFCDEDD2D1EED3D2ECD0CFEACECDEED2D1E2C7C6867675
+ C1A9A80908080000004C4241F3D0CEE9C7C5E8C6C4EAC8C5E9C5C3EDC8C6E4BF
+ BCEBC5C3EBC4C1EAC2BFF8CDCAA58885A48683856C6A0000000000007E6665FC
+ C9C6F0BFBBF2BDBAEEB7B3F3BAB6F1B8B4EEB3AFEFB0ACF0ACA7F0A7A3F8ACA7
+ E19D984D3937C3908B231817452B28FDA79EFFABA2FEB9B0FF9F94FFAFA4FFBA
+ AEFFAC9FFFB5A8FFCABCFFEDE5FFC6BAFFCEC1FFB8ADFFA99FFF897FFF9F95A1
+ 66618A5954966D69000000B88884FFAFA9F5A8A2F3ADA8EEAEA9EBAFABE8ADA9
+ F3B6B1BB8D8A8E6D6BA8817F000000765E5CFFD0CDF0C2BFECBFBCECBFBCEABE
+ BCF3C8C6FBCFCDA98C8AA28785C3A2A0080707120F0FC6A8A6E7C3C1E1BFBDDF
+ BEBBF0CFCCF3D3D1F3D5D2ECCECDEFD2D1F2D5D3F8DBD9938281A18F8E7F7170
+ 0000009A8B89F1D7D6E8CFCEE9D1D0E9D1D0E8D0CFECD5D5F0D9D9F0D9D9EFD9
+ D8EFD9D8EDD8D7EBD6D6F3DEDDC3B3B2514A4AD4C2C21A1818070606BFAFAFF2
+ DEDDE6D4D2EBD7D7EAD7D7E8D5D4EAD6D5EDD8D8EED9D8F1DDDBEDD9D8EDD9D8
+ E3CFCEE7D3D1E7D4D2F6E0DF736968000000766D6DF4E2E0E2D1D0E8D6D6F2E0
+ DFEBDAD8E8D6D5EBDBDAE9D8D7EDDBDBECDCDCE8D8D8E4D3D4E2D1D1E9D9D9EE
+ DCDCF3E0E0E8D3D3EDD8D7F1DAD9EFD9D8E2CDCCE1CAC9E5CFCEE3CCCAE8D0CF
+ F1D8D76F6463C2ADAC443D3C211D1DE5CDCBEED4D2EED3D2ECD2D1F0D5D4EFD3
+ D2ECD0CEE9CCCBF4D7D6CAB2B29B88879985840000001613130B0A0AC5A8A7F2
+ CFCDE7C5C3EBC7C5EAC6C3ECC6C3E8C2C0E9C2BFEAC2C0EAC2BFE9C1BE725E5D
+ D1ABA8221C1B120E0E362B2B392D2DF2BFBCEFBCB8F0BDB8ECB7B4F0B8B4F1B7
+ B3F1B5B0F1B3AEF4B3AFF2AEA8FFB1AB7A514EA06965875C58000000C7918BFF
+ AEA5FE9E95FFB7AEFFD0C7FFB7A9FFDACDFFC9BBFFCEBEFFEDE4FFFDFBFFE3D8
+ FFE6D9FFCCBEFFA79BFFA197FFA197F9A79E635351D69D962013122A1A19F3A7
+ A1F9B3ADF5B2ACF3AFAAECA9A4E9A9A5EFB2AFCD9D9A937370A5817F00000074
+ 5A58FFC7C4EBB9B6EBBBB8EDBFBDE9BDBBF4C9C7D0ACAA786463E5C1BE2F2727
+ 0000008E7977FED9D6E4C3C1E7C6C4EFCECBE8C7C5F0D0CEEFCFCDE8CCCAEBCF
+ CEEDD1D0FADEDC8F7E7EA492918274730000009A8B8AF4DAD8EDD4D2E7CECEE7
+ CFCDE1C9C7E2CBCAE9D2D1ECD5D5EAD3D3EDD7D6EDD7D6E9D4D3E9D4D3F8E1E0
+ 7268679D8F8F8F8382000000524B4AF3DFDEE6D3D2EDD9D9EDDBDAEAD8D8E9D7
+ D6EBD6D5EDD8D7EBD6D5E9D5D4E8D5D3DECBCADFCCCBEEDAD9F3DFDE73696800
+ 0000766D6DFAE8E7F8E7E6F4E3E2F3E1E1DDCCCBE5D3D2EEDCDBE4D4D3EAD9D9
+ EEDEDEEBDBDCEBDBDBE8D7D8DECDCDE0CECEF1DDDDECD8D7EDD9D8EFDAD8E3CD
+ CCE7D0CFEBD5D4EAD4D3EAD2D1F4DBDAB8A5A46E6261D5BEBC0E0C0C393333EA
+ D2D0F0D6D4EDD3D1E8CDCBE4C9C8ECD1D0EED3D2E8CCCBF5D7D59F8B8AB8A09E
+ 594E4D0000009C8685262121625453F6D2D1E8C6C4E9C5C4EAC7C4EAC5C4ECC5
+ C3EBC2C0EBC3C1F1C6C3AF908E997C7A9F817F000000705A59B99492070606D3
+ A7A4F7C1BEF1BBB6F1BAB6F3BAB6F4B9B5F3B7B3EFB2ADF2B2ADF5B1ABDC9D98
+ 5C403EDE968F120B0A392220FDAAA1FFBAB2FFB9AFFFB9ADFFDBD1FFEDE6FFE4
+ DAFFF6EAFFF0E2FFFFFFFFFCFCFFF7F3FFF8F0FFD6C7FFC0B2FFC7BBFFC1B9FF
+ CDC395635DB16E68905F5A000000A6736FFFB4ADF5ADA7F4B2ADF4B6B1F3B8B3
+ F1B5B1C99693926E6BA47B78000000755A59FEC8C4ECBBB8E9BBB8ECC0BEEBC0
+ BEEDC4C2756261CDAEAC6F5E5E000000514545F0CDCAECCAC8ECCCCAF5D4D2F6
+ D4D2ECCBC9EBCBC9F2D3D1ECCFCEECD0CEEED2D1F8DCDAA08F8EA694947F7171
+ 0000009B8A89FBDFDEF2D8D7F0D7D5ECD3D2EBD2D1E7CFCEEAD2D1EBD4D3E8D1
+ D0ECD5D4EED9D8E8D3D3E9D4D3F1D9D9C7B5B4534C4CD5C3C20F0E0E040404CD
+ BBBBE8D5D4E6D3D3E9D7D6E7D5D4E9D7D6EEDADAF0DCDBEFDBDAECD8D7EEDAD9
+ EDDAD8EEDAD9F2DEDDFEEEED7C7271000000716968EDDBDAE4D3D2E8D7D5F4E2
+ E1D9C8C7E0CDCCECD9D8E0CECEE6D5D4EBDADAE4D5D4E7D6D6EBDADAE6D4D4D9
+ C7C7E2CFCEEAD5D4E9D4D3ECD7D6D6C0BFDDC6C5EAD4D2E3CCCBEED6D4C1AEAD
+ 4F4747D5BEBC8678770000006C5F5FF1D6D4E6CCCBE2C7C6E0C4C3D8BDBBE8CC
+ CBE5C9C8E6CAC8F4D7D5857473C7ACAA161313161313EBCBC8867472120F0FDA
+ BBB9ECCAC8E5C2C0E7C5C2E6C2C0E9C3C1E7BFBDEBC3C1F0C6C376615FC69F9D
+ 312827080606D2A7A5EFBDBA161111967472FBC1BEECB4B1EDB4B0F2B7B3F3B6
+ B3F2B3AFEDADA8F5B2ADFEB7B2996E6A9D6E6AA87570000000895752FFA59CFF
+ 968DFFB8ADFFE1D5FFEADDFFFBF4FFFDFBFFFFFDFFFEFDFFFFFFFFFFFFFFFFFF
+ FFFEF5FFF2E7FFE5DAFFE7DDFFCBC2FFA59ACE7D767C534ED28B850000004D34
+ 32F8AFA9F5AEA9F2ACA7EFA9A4EFABA6F1AFABC7918D926F6CA47E7A00000075
+ 5D5BFAC8C5EABEBAE9BFBCEFC6C3FCD2CF947C7BAB908EAE9391000000151212
+ D4B6B4F5D1CFE8C5C4EBC8C6EAC7C4ECC9C7F1CECCEFCDCBEACAC8E8C9C8EDCF
+ CEECCECDF3D4D2B9A4A2A995957C6D6D000000958483F2D6D5E9CFCEE8CECDEC
+ D3D2E8CECDE8D0CFE9D0D0E6CFCEE7D1D1E6D1CFE9D4D4ECD7D7EAD5D4E6D1D0
+ EBD5D5544D4DCAB9B8514A49000000877C7BF5E1E0E2CFCFE5D4D3E9D7D6DDC9
+ C9DFCCCBE6D3D3E8D6D5E3CFCEEAD7D6E6D3D2ECD8D7ECD8D7F2DDDB71676700
+ 0000797070E9D7D6DBCAC9D8C7C6EEDCDBE0CECDDDCBCAE5D4D3D5C5C4DECCCB
+ DDCCCCE3D2D2D9C7C7E9D8D7DECDCCDBC8C9E6D4D3E7D3D2E3CECDE9D4D4D7C0
+ C0E0CAC9E6CFCDE2CAC9958584484040C3AEADAF9B9A0A0909080707B7A1A0F2
+ D8D6DEC3C2DEC3C1ECD1CFDBC0BFF0D5D3DDC1C0DFC2C1CEB3B28674739F8887
+ 000000594C4CFAD8D6D8BBBA0C0A0A937E7DEFCDCBDFBDBBE1BEBCDEBAB8E2BD
+ BBDDB6B3EFC6C3C2A09E866C6BA1817F0000005C4948FBC9C5F0BBB84F3D3C56
+ 4240EEB4B0E4AAA6E3A7A3E7A8A4EFAEAAEAA8A3EBA7A2EFA9A4F6ACA6674745
+ CE8D885B3E3B000000B37973FFAEA4FFA99EFFB2A7FFCABDFFF1E7FFFEFBFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F3FFDDCFFFC6B9FF
+ B0A5EE9A9168423FE7968F170F0E120C0BE69994F5A8A2ECA7A1ECADA7EBB1AC
+ F2BAB6C99A97917270A27F7D000000735B59FAC7C4E8B9B7E8BBB8FECFCCB091
+ 8F796363BD9C9A161212000000987E7DF2CBC9E5C0BEDFBAB9E1BCBADCB7B5DB
+ B7B5E7C3C1E5C3C1DFBFBDDEBEBCE2C3C2F0D1D0F5D6D4B29C9BA38F8D776968
+ 0000008D7C7CECD1CFE5CCCBD9C1BFE4CBCBDDC5C3DCC4C3DCC5C4E2CCCBE8D2
+ D2DAC5C5DFCACAEDD8D8E7D3D2D5C1C0F4DEDD7B72719C8F8D8A7E7E00000057
+ 5150ECD9D8DAC8C8E2D1D0E9D5D6D6C2C2E2D0CFEDDADADFCDCCD0BCBBDECAC9
+ D9C5C5E0CDCBD8C5C5EEDBD9695F5E000000786F6FE6D3D3E8D6D5DECCCBE0CF
+ CEDDCCCBE2D0CFEBD9D9D8C7C7D8C6C5DECECDEDDCDBDBCACADECDCDDCC9C9E9
+ D6D7E8D6D6EAD6D5E5D1D0DCC6C6D7C1C0E5CECCDFC9C8695E5E685C5DE3CCCB
+ 9A89870F0E0E000000726464E3C9C7E6CCCAE3C9C6DFC4C3EBD0CFDABFBEE2C6
+ C5E0C3C2F7D9D7A8908FA58F8E6F605F000000947E7DF7D6D4EFCECD5C4F4E37
+ 2F2FE5C4C1E7C4C3E5C2C0E4C0BEE3BFBDE2BCB9F7CECB846D6CB69492413534
+ 000000BA9694F4C4C1F0BDBA9B7A781D1615DDA9A6F0B7B3ECB2AEE5A8A4E7A8
+ A3ECAAA6F3AFAAEFA7A2E39C9760403EE596902A1B1A020101D5817AFF9E94FF
+ ADA2FFC8BBFFDBCEFFF2EDFFFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFDFAFFEBDFFFCEC0FFB5AAF99D93704742E4968E3E2A280000
+ 00C58E8AFEB9B2EFAEA8F1B2ADEAABA7F2B4B0CA9692916D6BA47B790000006B
+ 5352F4BFBCE3B4B0E1B3B09E7F7D62504FA183811F1918000000836E6EEEC7C5
+ EFCBC9E6C2C0E6C3C1E3C0BFE6C4C3E2C1BEE4C3C0E5C4C2E8C9C7E8CAC8DDC0
+ BEF0D2D1EED1CFA69190AB98977D6F6E0000008F7F7FF1D7D5F0D8D7E2CBC9E0
+ C9C8DEC7C6E3CCCBDDC8C7E6D0D0E7D2D1D9C4C3E3CECDEAD5D5E3CFCED7C3C3
+ F4DFDF887D7C847878A79899000000343130E7D5D4E0CDCDE9D7D7E7D4D3D7C4
+ C4E6D5D4EAD8D8E8D6D5D2BEBDD4C0C0E4D1D0E2CFCDD8C5C4FCE9E76B606000
+ 0000746B6BE6D3D3EBD9D9DCCACAE0CECDDAC8C8E3D2D2E3D2D2D8C7C7E4D2D1
+ DAC9C9DDCCCCD9C8C7E6D5D4DBC9C9DBC9C9D9C6C6E4D0D0DFCACAD6C1C1ECD5
+ D4A896954D4544948482D7BEBD6B605F000000000000605555E0C6C4E4CAC8DB
+ C1C0DDC3C1DCC1C0E3C7C6E0C4C2E0C4C3E0C3C1F6D7D5837170C0A6A5312A2A
+ 090707C9ACAAEBCAC9E4C3C2C0A5A4090808B69B99E7C3C1DEBBB8E4C0BEE3BE
+ BCE6BEBCCEABA97E6766B79592000000463837EFC0BDE3B4B1EEBDBAD8ABA816
+ 1110AF8582F3BBB6EBB3AEE7ACA8E8ABA6EBACA8F0B0ABEFABA5D59691684845
+ E49A940C08080B0707EC958EFFA096FFA89DFFB5A8FFD9CAFFFFFAFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF7FFEEE0FFCABBFF
+ B6AAFFABA16C4843E197905B3D3A0000009D6D69FEB1ABEFABA5F1B0ABEAACA8
+ F1B5B1CA989491706EA27E7B0000000C0A09342A29372D2C231C1C000000251F
+ 1E010101100D0E9B8281F8D1CFE2BEBCE5C3C0E2C0BEE2C0BEE8C6C4E0BFBDE0
+ BFBDE4C4C2DCBCBAE5C7C5E1C4C2DEC1BFF1D4D2F2D5D3A48F8FAC9898796B6B
+ 0000008E7E7DE4C9C8DFC6C5E1C8C8D9C2C1E2CBCAE9D2D2DCC6C6DEC8C8E1CB
+ CAD8C2C1E2CCCBEFD9D8E6D0D1D8C4C4EBD7D6918585736969BAAAAA0000002A
+ 2727E0CDCDDAC6C6D7C3C3DAC6C5D6C3C2E7D4D4EBD9D8E2D1D0D5C1C0D9C6C4
+ D4C1BFE7D4D3D6C3C2E7D2D1685F5E000000706767ECD8D9ECDCDAEBDAD9EEDD
+ DCE6D5D5E5D5D5E8D8D8E4D3D3ECDBDAE6D5D5DFCECEE4D3D2ECDBDAE4D1D1E3
+ D1D1E5D2D2E5D1D1EBD6D5E3CECD8679795C5352D2BDBDB7A4A2282323000000
+ 080707877878F0D6D4F3D9D8E9CFCEE4CAC8E8CDCCEBD0CEE8CDCBEACECCE4C8
+ C6DEC1C0DFC2C07C6B6ABDA3A2030202423938ECCBC9F0CFCEEACAC8F5D2D13E
+ 35355E504FF4CFCDE9C4C2EAC6C4E5C0BDF6CCCA907876C19F9D5D4D4C000000
+ AC8B89FCCBC9ECBDB9EFBDBAF5C0BD403231765958FCC0BCEFB2AEF0B1ACEBAA
+ A5ECA8A4F3ACA7F0A49FD5918C684441E8948E0B07070B0706ED8981FF9086FF
+ 9A8FFFB0A4FFCCBCFFF5E9FFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFF2EDFFDFD4FFC2B86A4C48E5A39C5C423F0000
+ 009C726EFFC0B9F5B6B1F1B4B0F0B5B1F5BCB8CF9F9C927270A5817E00000050
+ 3F3EBC9694B18E8CB2918F9379774E4040211B1B3F3434615150B99C9BF1CBC9
+ EBC7C5E8C5C3E8C5C3F1CECCEFCECBEECECBF0D0CEEACBC9EECFCDECCECCEED1
+ CFEFD1D0F6DAD8A99494AE9B9A7D6F6F000000948584F2D7D7EDD4D2E2CAC9D6
+ BFBEE4CDCCECD5D4E2CBCAE9D2D1EBD5D4E6D0D0E8D2D2E8D2D2E8D2D3E6D3D2
+ EEDADAAA9D9D7F7473C5B5B40000002C2829E9D5D4EFDBDAE8D4D4E7D4D4E4D1
+ D0E8D5D4EAD8D7EBD9D8E8D5D4E7D4D3DECBCAEAD7D6E2D1D0F0DEDC756C6B00
+ 0000776D6CFBE7E6E8D7D6F0E0DFF1E1E0EDDDDDE9D8D8EEDDDDECDBDBEAD8D7
+ ECDBDBE8D7D6EAD9D9EAD8D9E8D6D6E9D7D7E4D1D0E7D2D1DBC7C75F56568E80
+ 7FDEC7C67C706F000000000000332D2DB4A09FFADFDDEED5D3EED4D2F0D6D4EB
+ D1D0ECD2D0EED3D2EDD1CFEBD0CEEDD1CFDEC0BFB79E9D958281968381000000
+ 82706FF2CFCCECCAC8E7C6C4F8D5D39983810F0D0CD9B8B6EFCAC8E9C4C1EDC4
+ C2DFB8B6836C6ACCA8A5040303372C2BF0C2BFF0C0BDF0BDBBEEBAB7FDC4C080
+ 6360382A2AF3B7B3F1B2AEECABA7EDAAA6E9A4A0EAA39FF4A8A3DE99956B4845
+ E699940F0A090B0706ED9088FF998FFFA99FFFB5A8FFCBBCFFF5E6FFFFFCFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFF3ECFFF5EFFF
+ E5DAFFD3C869524EE5B0A95B4643000000A57E79FFC5BFF5BDB7F2BBB5F1BBB6
+ F7C1BDD1A4A1927471A684820000007A6362FFD2CFF1C4C1F1C6C3F8CDCBF8CE
+ CCC3A3A2705E5D605050040303857170F5D0CEEFCCCAEFCCC9EDCBC8EECCCAEC
+ CAC8EECDCBF2D1D0EECECCF2D4D3F3D4D3E9CBCBF2D6D5AE9A9AA59291786A6A
+ 000000968685FADFDFF4DAD9E1C8C7DAC2C1EED6D5EFD8D6EAD3D2EBD4D4E8D2
+ D2E9D3D3E7D2D2E9D4D4E8D4D4ECD8D8F6E1E1998C8C857A79C3B3B20000002D
+ 2A2AE9D6D5F1DCDCEBD8D6E9D5D5E8D4D4E4D1D0E8D5D4EAD8D7EFDBDAECD8D7
+ ECD9D8EFDDDCF1DFDEFFF0F07D7474000000786E6DFEEAE9EBD8D7E9D8D7F0DF
+ DFEBDBDAE6D5D5EFDEDDEDDCDBECDADAE9D8D8E7D5D6E6D5D5E9D7D7E3D2D1E3
+ D1D1EAD6D5DAC6C55B5353A29292C8B4B235302F000000070606746968DDC6C5
+ EBD1CFEDD3D2EBD1CFEAD0CEEBD1D0E4C9C7DFC4C3E9CDCCE6CAC8E3C6C4EED0
+ CFF7D8D69B8786B9A19F584C4B000000CAAEADF5D1CFEFCDCBEBC8C6EECBC9DF
+ BDBB1A17168B7573FBD3D1EEC6C3FED3D1A58987B394916E59580000009D7F7E
+ FBCCCAEBBDBAEBBCB9EDBDBBF6C2BFC69C99181312D9A9A6F5BEBBEEB6B2F2B8
+ B4F2B7B2F0B2AEF7B6B1ECAAA5624542E69A9432201E020201D78079FF968CFF
+ 9B91FFB9AEFFD3C6FFEDE2FFFEFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFAFFEFE8FFECE1FFDBCDFFB2A6F6A39A664441E7A69F3D2D2B0000
+ 00CA9B96FDC4BFF3BDB8F2BCB8F0BDB9F6C3BED0A6A2927573A5848200000075
+ 605EFDCECAE9BFBCEAC1BFEAC3C0ECC6C4FBD3D1B69A988571706A5A5A000000
+ 917C7AF5D1CFEFCECCF0D0CEF2D2D0F1D1CFF0D0CFE9CAC8EACCC9EDD0CDEDCF
+ CEE8CCCBEFD3D2B39F9EAA97977C6F6E000000988787FCE1E0F1D8D6E6CDCCEA
+ D1D0EED6D6EED6D5EED7D6E8D1D0E4CDCDE4CECEE8D2D2E9D5D5EBD8D7EBD7D7
+ F4DFDF897E7D9D8F8FA09292000000403B3BEEDAD9EAD6D6F0DCDCECD9D8E8D5
+ D4E8D6D5E8D6D5E6D3D2E6D3D2E6D4D3E0CECDE5D3D2E8D6D6FDEAEA7E747500
+ 0000796F6EFFEFEEF3E1E0EFDDDDF1DFDFECDCDCE4D3D3EFDDDDF2E0DFEFDDDD
+ EBDBDAEDDCDBEEDCDCEDDBDBE9D7D7E4D1D0EED9D8706565A79897B4A2A11110
+ 0F000000342F2EB7A4A3F8DEDDF1D8D6E8D0CEF1D6D5E2C8C7E5CBC9F3D8D7F1
+ D6D5E9CECCE9CDCCEDD1CFEDD0CFEED1CFF1D2D0867474CCB2B11411112A2424
+ F3D2D0E3C1BFE1BFBDE3C1BFF4D1CFF7D1CF6D5D5C2F2727F5CFCDF5CECBE5BF
+ BD7C6867D0B0AC0F0C0C241E1EEBC3C0EEC5C3E9BFBDEBC0BEEDC1BEF1C3C0E7
+ B9B62A20209F7D7AFCC3C0EEB4B0F1B3AFF4B2AEF2ACA8F2A9A3FBADA76C4946
+ D78E885F3E3C000000B4746EFFABA2FF9E94FFA99DFFCEC3FFF7F0FFFFFDFFFE
+ FBFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFCF5FFF3E9FFCBBEFFBFB6FF
+ C9BEEEA39A6B4642E9968F160E0D18100FE8A39EFAB8B2F7BBB5F5BCB8F3BEB9
+ F5C2BED1A7A4927674A6878400000076605FFED0CCECC2BFEDC4C1EFC7C4E9C2
+ C0E4BEBBF1CBC96E5C5CB69A99151212110E0FD8B8B5F0CECBEBCAC8F1D1CFF3
+ D4D2F1D2D1EBCCCAE8CBC8E2C5C3DFC3C1E3C8C6E7CCCAAC9897AC9A997F7171
+ 0000009A8988FDE3E2F0D9D7EAD2D1ECD5D3EED8D7EDD7D6EFD9D8ECD6D6E7D2
+ D1E7D2D2E8D4D3E8D5D5EAD6D6EDDADAF7E3E2716868C9B9B87A70700000006D
+ 6564FAE7E6E5D1D1F1DDDCEFDBDBE9D6D6E9D6D5EBD8D7ECD8D7EAD7D6EFDDDC
+ EBD8D8EDDBDAEFDDDDFBE9E87A7170000000726868F2DFDFDFCECDE7D6D5E3D2
+ D2DECDCDE3D2D2E8D7D6E6D4D3E0CFCEE5D4D4EBDADAEBDAD9E0CECEDCCAC9E8
+ D3D3AE9E9D7B6F6FC2AFAE0B0909000000625857DBC4C3EED5D4EED6D5DFC7C5
+ D8C0BEEBD1D0E0C6C5D7BDBCE8CDCCE4CAC9E7CDCBE8CCCBE1C6C3E1C4C2E7CA
+ C8D8BEBC867473B49C9B000000615352F7D5D3EECDCBEAC9C7D7B6B4EAC9C6F5
+ D2D0C2A6A4040403BCA09EFFDEDB9D8482A68D8C84706E000000887170F5CAC9
+ EAC0BFEDC2BFE9BCBAE8B9B6EDBCB9F8C1BE574241574241F7BBB7ECB0ACF0B0
+ ACECAAA6ECA8A3EDA7A1FFB6B19D6E6B9E6D6AA4716C000000885551FF9D94FD
+ 9D93FFC3B9FFE2D8FFE9E2FFDDCFFFF4E8FFFFFFFFFFFDFFFFFFFFFFFFFFFFFC
+ FFFFFFFFF1E8FFE0D1FFCDC0FFAFA5FF988ECC87807C5D59D09690000000573C
+ 3AF9ACA6F6AEA8F6B0ACF6B4AFF0B3AFF0B7B3D0A29F927572A5848200000072
+ 5D5BFDD0CDE9BEBCE6BEBBECC5C2EEC7C4DDB8B5EFC9C6877170A088865F5150
+ 0000009D8584F1CFCDEDCDCAE4C4C3EACAC8F0D2CFE3C4C3ECCDCCE5C8C6E1C4
+ C3EBCECDEFD2D0A69090AA96967D706F000000948484F0D6D5ECD5D5EDD6D5E4
+ CDCCE7D0CFEAD4D3E1CCCBEAD5D5E7D3D1E4CFCFE1CECEE8D4D4E7D4D3E6D3D4
+ DBC7C75D5454E0CECE373232000000988B8BE9D5D4DBC9C8E8D5D5DFCCCBE1CE
+ CDE8D5D4E7D4D3EEDBDBE1CFCEDFCECDEAD8D8EBD9D8E1D0D0F2E0DF766D6C00
+ 0000797070EFDDDCDCCBCADECDCCDDCCCBE3D1D0DCCBCBDFCECEDDCBCBE3D1D1
+ D9C8C7EAD9D9EDDCDBDDCBCADCC7C6F0DADA726766C5B3B24A43430000007D72
+ 70E5CDCBEAD2D1E9D1D0DEC6C5DFC7C5DFC6C5E2C9C7E5CBC9DAC1BFE5CBCAD7
+ BDBBE4CAC8DAC0BEDEC2C0D2B5B3EBCECDB19C9BA28D8C7D6D6C0000009C8886
+ E5C5C3DBBBBADDBEBCE5C6C4F4D4D2F5D4D2F4D1CF372F2E554847EBC5C36353
+ 51CAAAA71D1817120F0FD6B0AEE9BEBCECC1BFE8BBB8E5B6B3EABAB8E5B3B0F7
+ C1BE9D7977261D1CE0A9A5F0B4B1EBAEABEEB1ACEBACA7EBACA7FBB7B2DD9E99
+ 5E423FDC928D100808382321FDB5ADFEBDB4FFB7ADFFC7BEFFB3A8FFC0B2FFF0
+ E4FFFCF8FFF0E6FFF9EFFFFDF9FFF6EDFFF3E7FFE8DEFFC1B3FFB1A6FFA69CFF
+ B1A7965752AF69648D5F5A000000B08480FBB6B0F5B3AEF7B7B2F2B3AEECAFAA
+ F2B5B1CB98958F6E6CA37E7C000000725C5AFFD0CDE5BAB7ECC2BFE4BCB9F3CB
+ C9E2BCBAF4CDCB8D76759E868483706F0000006B5A59F3D0CEE4C4C3E1C2C0E1
+ C2C0E9CAC9E2C4C3E5C7C5E5C9C7E1C5C4E1C4C3E1C4C3B09A99B09C9A807271
+ 0000008E7E7EEDD3D3DCC5C4E8D0D0D9C2C0E4CDCDE2CBCBDEC8C7EAD5D5E0CC
+ CBD9C4C4E2CECEE4D1D1DCC8C8E9D5D4A597977F7474C3B3B2020202120F0FD2
+ C0C0E9D5D5D9C6C5EBD8D7D4C1C0D9C5C4EDDAD9E6D3D2DFCDCDD7C6C5E5D4D3
+ DFCDCDE1CFCEDECDCCEDDAD9675E5E0000007A7271F0DFDEE4D3D3E4D2D2E1D0
+ CFEAD9D8DBC9C8DECCCCE5D3D3F0DFDFD8C7C6EBD8D9F6E3E2E2CECDE1CCCCE8
+ D3D2766A6ABCAAAA030203413A3AE8D2D0DFC8C7DEC7C5EAD3D2DBC4C2E4CCCB
+ E7CECDDEC6C5E2C9C9E0C6C5EBD1CFDBC2C0ECD2D1DBC1BFEACFCED6BBB9EED2
+ D0857674C1A9A83F3837040404D3B8B6DDBEBCD8B9B7EFD0CDE7C6C4E9C8C6F5
+ D4D1FBD6D4917977100D0D715E5D927A78987F7E000000766261F4C9C6E4BAB7
+ ECC0BEE8BBB8E7B9B6F1C1BFE5B5B2EFBCBAD6A6A31D1716B88D8AF5BCB8EAB2
+ AEF0B7B3EDB0ACECADA8F4AFAAFEB0AA784F4CA16C68805B58000000C8918AFF
+ B9AFFCAFA5FF948AFF968BFFBFB4FFE2D5FFD3C6FFC0B1FFD2C5FFE5DCFFDACB
+ FFCABCFFD6CAFFC3B8FFA298FF9D93F99C93614441DB928B2A1816392322F7AE
+ A8F0B7B1F3BCB6F6BBB6ECB0ACEDB3AFF8BEBACB9B978E6D6BA27D7B00000073
+ 5A59FECAC7E5B8B6F0C5C2E4BBB8EEC7C4E4BEBCF9D2D08D7676B09493806D6B
+ 000000716160F4D2D0E2C3C2E1C3C1E2C4C2E4C7C5E2C5C3E2C4C3E4C8C6E1C6
+ C4E0C5C3F0D3D2B4A09FAC9897807271000000938483F8E0DFDDC6C5EAD2D2DC
+ C5C4EAD4D4DFCAC9E3CECDF0DBDBE5D1D0DCC9C8E1CDCCE9D5D4DFCBCBE8D4D4
+ 655D5DCEBDBC5852520000006E6464ECD9D9EBD7D7DECAC9E7D3D2DAC6C6DAC7
+ C6E7D5D4E9D7D6DAC9C8D9C7C6EFDDDCDAC8C8DCCBCAE6D4D3F2DFDE665D5C00
+ 0000706867E9D8D7DECDCCEAD9D9E0CFCEDDCCCBE6D5D3DAC9C7E2D0D0E8D7D6
+ D8C7C6EFDCDBF2DEDDDFCBCADAC5C4E3CECD7B6F6F9A8C8B000101948685E9D3
+ D1DDC7C6D8C2C1E3CDCCDBC6C4EAD3D3E5CFCEDEC7C7E2CBC9CDB8B7E0C9C7D9
+ C0BEF0D6D4DEC3C1DEC3C1DCC0BEDFC4C2726362BAA1A00504042F2828DCBFBC
+ E6C7C5E1C1BFE3C2C0DCBBB9E8C6C4F6D4D1EFCBC8D7B3B1221D1C171414CEAC
+ AA2D2625080707CEAAA8EFC5C2E2B9B7E5BBB9E5BAB7E8BBB8EDBFBCE4B5B2E8
+ B8B5ECBAB73F3231775C5AFDC5C0EEB6B2EDB2AEECAEAAEDAAA6F3A9A5F8ADA8
+ DFA29D54423FC8938E20161546312FFDB2AAFC968DFD8B82FF9D93FFBAB0FFBD
+ B2FFBBAEFFB3A6FFB2A7FFEDE5FFD1C5FFB4A8FFAFA5FFBFB5FEA299FFA299A7
+ 6C66855350A16D68000101BD817CFBA39DF0A19CF4B3AEF4BEB9EBB8B3EBB5B1
+ F6BDBAC7989591716FA37F7C000000765F5DFDCBC8E8BAB7EFC1BFE5BAB7EAC0
+ BEE4BCBAF9D1CF715F5EC9A9A84D42410000009F8886F0CFCEEACBCBE1C3C2DF
+ C2C0E6CAC9E1C5C4E0C3C1DFC2C1E1C5C4E3C8C6E9CDCB897978A08E8D827373
+ 0000008A7B7AEED6D5E4CDCDE6D0D0DCC7C7E4CECEDDC9C7E3CFCFEFDADAEBD8
+ D8E0CDCEE1CDCDE1CDCDEFD9D9938685857979A395950000001D1B1AD1BFBFE0
+ CECED8C4C4DECACADAC6C6DCC9C8DBC9C7E2D0CFEBD9D8E9D7D7DBC8C7DECCCB
+ D9C8C7E2D0CFDECCCAEDD9D96F6666000000766E6DFBE9E8EFDEDEEEDDDCEAD9
+ D8E8D7D6F0DFDEEBD9D8EEDDDDEEDCDCE7D5D5E9D6D6EBD7D6EFDBDAE8D3D2EE
+ D9D8887D7C9B8F8E0B0B0AAD9D9CF1DAD8E7D0CFDFC8C8E5D0CFE3CECDEBD6D4
+ E9D4D3E9D3D2F7DEDE918483D2BCBBEED4D3F1D8D6E8CDCBE3C7C5E9CDCBB59F
+ 9E8B7A799D89880000005D5150F8D7D6F1D1D0EACAC8E4C4C3E8C8C5EECCCAF1
+ CECCF1CECBF8D1CF715F5F3F3535A88E8C00000060504FF8CFCDF1CAC7EAC2BF
+ EAC0BEEBBFBEEDC1BFEEC1BFEDC0BEEFC1BEFFCECB695452312524F6BFBBEFB6
+ B2F0B3AFF2B0ACF1ADA9F0B3AFF2BBB5FEC3BDBB8B86604341B0807B04040498
+ 5D58FF9D94FC9C93FDA79EFFB1A6FFA79CFF948AFF9E93FFA69BFFD6CCFFABA0
+ FF9F95FE9C92FDAAA0FFB8AFE6968E4F302EC1837D0F0707775350FFBAB3F4B0
+ AAF4ACA6F5AAA5F4ACA8EBAEAAECBAB6FAC9C5AD88858B6E6CA9868300000075
+ 5E5DFFD3D1F3C8C5F0C7C4EFC6C4F0C7C5FACFCDD0ADAB6F5D5CDCB9B70C0A0A
+ 1E1A19E4C3C2EBCBC9EBCDCCEBCDCDE7CAC9EED1D0ECD0CFEBCFCEEBCECEECCF
+ CDE8CCCBECD1CF8C7C7BA1908F807372000000786D6CFDE5E5F0D9D8EED7D6EF
+ D9D9EFDAD9E8D4D3E5D0CFEBD8D8E6D3D3E9D6D6EFDBDBFBE6E6B0A1A06E6665
+ C8B7B6161414070606B6A8A7F6E2E1EBD7D6E8D4D3ECD9D8EBD8D7E7D4D3E6D5
+ D4E8D6D5E5D3D2EBDAD9E9D7D6EBD9D8F1DFDEEDDBDAE7D5D4FDEBEA776E6D00
+ 0000776E6EF8E7E6EDDCDBECDCDAEADAD8EBDBDAE7D6D5E9D7D7EFDEDEF2E1E1
+ ECDAD9E8D5D4E7D3D2EAD7D6EBD7D6EAD6D5B6A6A6877C7A3A3434796D6DF5DE
+ DDEBD4D2EBD5D5EBD5D4E6D0CFE5CFCEE3CCCCE5CECDEFD7D6554C4CCBB4B4ED
+ D3D2EED4D3EBD1D0EFD4D3F4D8D67C6E6DAB96945D5151000000837271FFDEDC
+ EECFCDEFCFCDF0CFCDEFCFCCEDCBC9F2D0CEF3D0CEF4D0CDC6A9A7120F102721
+ 20030303BC9D9CF6CDCBF0C9C7EEC6C4ECC3C0EEC5C2EEC3C1EFC4C2ECBFBCEB
+ BCB9FECBC89E7D7C030202D1A09EF6B8B4EDB0ACF2B8B4F1BDB9F0BBB6F3BAB5
+ F3B3AEFFB8B49D767275524F7E53500E0606AF706BFFACA4FDB1A9FCABA3FE9C
+ 93FE988EFE9C93FF9E94FFAEA5FF9C92FEA79EFC9D94FFA69DEAACA45A3E3BA4
+ 6E694229275B4240FBAAA4F8AEA8F7B6B1F7B8B3F4B4AFF4B2ADEFABA7EAAAA6
+ F2BAB6AD8B888A716FAC8C8A000000544342F6C9C5EFC3C1EEC3C1EFC6C4F4CB
+ C8F0CAC8675756CAA9A7715E5D000000917B7AFBD6D4EBCAC8E8C8C6ECCDCCEF
+ D2D1F1D5D4EFD4D3EDD2D0F0D3D2EFD2D1EBD1CFF4D8D78D7E7DA29191807373
+ 000000786D6CFEE6E5EBD2D2E9D1D0EFD8D7F0D9D8F1DAD9ECD6D6EDD8D7ECD7
+ D7F4DFDEF1DDDC998D8D6C6362C4B4B42B2727050404A59797FCE9E8E9D5D5EC
+ D8D7E8D5D4E6D4D4EBD8D7E8D5D4E6D4D3E7D5D4E1CECEE4D3D1EBD9D9EEDDDB
+ F3E1E0FAE7E6F5E3E2FFF3F2796F6F000000776F6EFEEDEDEBDBDAECDCDAEEDD
+ DDF0E0DEE7D6D6DFCECDE2D1D1E7D5D5E8D5D4EDD9D9EFDBDAEEDAD9F2DDDCF0
+ DCDBEFDADA8B7F7E8074743A3434D9C3C3F7DFDEF1DBDAEAD4D3EFD9D8EBD4D4
+ EAD3D2F4DCDBE0C9C8262222D6BFBEE9D0CEEDD4D4E6CCCBEED3D2E1C8C7544A
+ 49CEB7B61E1A1A0000009F8A89F8D9D6EDCECCECCBCAEECFCCEBCBC9E7C6C4ED
+ CDCAF1D0CEECCAC8EDCAC83D34340000003D3433F1CBC9EFC9C7F1CCCAF1CBC8
+ ECC4C2ECC3C0EDC2BFECC0BEEEC1BEEBBCB9F4C1BDC59A98000000816361FFC7
+ C3F1C0BCF2C1BDF3BEBAF3BCB7F2B3AEF2B4AEF5BAB6FFB8B1A8736F69413E7D
+ 53502D1D1C916662FDAFA8FFAEA6FFA39BFD948BFCA198FC9E96FCA79FFDAAA2
+ FFABA3FFAAA2D48C86684441815F5B47302E644643FAA8A2FCB8B3F5AAA5F5AB
+ A7F4B6B1F5BAB5F6BCB7F4B9B5F1B4B0FEBFBBA07877826765AB8B8800000050
+ 4140FACECBF3C8C6F1C8C6FDD4D2DCB6B4725E5DAB908F8E7876000000675858
+ F6D3D1F2CFCEEECDCBEECDCBE7C6C5E8C8C7EBCDCCEDCFCEE9CDCCF0D4D3EFD4
+ D2EBD1D0F9DDDC6F63629B8B8B827474000000655B5AFEE5E4F3DBDAF1D9D8F1
+ D9D8F1DAD8F2DBDAFAE4E3F7E0DFE2CCCCC0AFAE7C7171817676928685181616
+ 211E1EB7A8A8F8E3E3EDDBD9E5D2D1E6D2D1E5D2D1E0CDCDE6D3D2E8D5D5E4D1
+ D0E7D5D4E4D2D1EAD8D7E7D5D4EAD7D7EAD8D7F0DDDCF5E3E2FEEFEF776E6E00
+ 0000736A6AF7E5E5DAC8C8E7D7D6EDDCDCEEDEDCEEDDDCE8D6D6DAC8C8D7C3C2
+ EBD8D7E8D5D3EEDAD9E9D6D4EEDAD9EDD9D8F3DFDEDFCBC9897C7B665C5C6258
+ 58CBB8B7F1DBDBE4CDCBF8E0DFE8D0CFEAD2D0EAD3D28074730B090ADFC9C8F1
+ D8D7F0D7D6F4D9D8FFE8E7A290906F6262BCA7A6000000000000BFA8A7FFE0DE
+ F5D5D4F2D3D1F3D2D0EECFCCEBCAC9EECDCBF0CFCDEFCECCFAD6D48673720000
+ 00957E7DF8D2CFE6C0BEEDC6C5F0C8C5EFC6C3F1C7C5EFC4C2E6B9B6EDBCB9F1
+ BEBBF6C0BCE5B1AE050404282020F7C7C4FECAC6F7C2BEF2BCB7F0B4AFEFB7B1
+ F1B7B2F3AFAAEDA39EFFA9A3D08F8A805653714E4B493432664744B57873EB98
+ 91FD9A92FFACA4FFABA3FFB2AAF3A49CDA928B9A646051363462403E513B3999
+ 706CFFB7B1FBAFA9F7ABA5F7BAB5EFAAA6EBA7A2F2B7B3F6BEBAF6BEBAF6BCB8
+ FFC4C08768667F6260AE88850000002C2524DDBBB9E1BDBBD5B1B0A68C8B7361
+ 608D7876564848010101715F5EFAD6D4F7D4D2F2D2D0EECECDECCCCBE9CAC8E8
+ C8C7EDCECDEED0CFEBCECDF3D7D6F6DAD8F8DCDBFFEDEC685D5CA594938B7C7C
+ 000000342E2EC5B2B1E0CBCAE8D1D0E7D1CFDDC9C7D2BEBEC8B6B6978A896D62
+ 62635A5A665D5D474141201E1E796E6DCEBBBAF8E3E3F0DDDDE9D6D5E9D7D6E8
+ D5D5E7D4D4E3D0CFE3D0CFE7D4D3E4D0CFE6D3D2E1CFCEE8D5D5DCC9C9DFCDCD
+ E2D1D1DECCCCF4E4E3FCECEB746B6A000000766D6DF9E7E5D6C4C4E7D5D4E0CF
+ CFDFCECDE2D0D0EAD8D7D7C4C3DAC6C5EBD8D7D8C5C4E0CDCCE5D1CFE5D2D1DB
+ C7C6E9D5D4ECD6D5D5BFBD9C8C8B605656534B4B8276768B7C7C8E81806E6261
+ 5047471A1717000000020201CFB9B7E7CFCED9C3C2A794948576752E29294840
+ 3F4941400303030404045046467B6C6B998584AF9896CCB1AFDCBCBAE1C1C0E3
+ C3C2E0C0BEE7C7C5E9C8C6BEA2A01F1A1ADCBCBAF2CDCAEAC4C1EAC3C0E4BDBA
+ E5BDBAE2B7B4EABDBAD5A9A7B8908EA2807E8E706E6F58560F0C0C0202026551
+ 4F997977BA908EECB5B1F1BEBAECB5B1EBABA6EEAAA5EB9D99EDA39EF6ABA6F1
+ A59FB886818A615D6346424A312F5539366A413D724A47734B476D4D4A62423F
+ 4C34325238366342408C605CDF9791FFC0BAFAB3ADEFADA8EFA8A3EEA7A3EDB5
+ B0EBABA8F1AFABE5AEAAC399969676736F56542E242430252540323104030306
+ 040413100F2D26254A3F3E4E4342504342372E2D4C403FB39795F3CFCDEDCAC8
+ E1BFBDEECCCAF1D0CFECCDCBE1C3C1EBCDCCE8CAC9E9CDCBE6CAC9CDB4B3AB95
+ 94917F7F7A6C6C201D1C554C4C463F3F0404040202020A09091211112F2A2A55
+ 4D4C3D3737342F2F3631313F39393731304841415950508B7E7DDCC8C8FBE4E4
+ DAC5C4E5D1D0E2CFCEDAC5C4DCC8C7E5D2D1D9C6C5D9C6C5E1CECCDECAC9D7C3
+ C2E4D1D0D7C4C5E4D2D1E1D0CFDFCFCEE1D0CFD6C5C4E9D8D7EEDCDB6C636200
+ 0000776E6EF2E0DFD4C3C2E0CFCED9C7C7DDCBCAEAD8D7E8D6D5D7C4C3DAC6C5
+ E4D1D0D8C4C3EEDAD9E4D0CFD9C6C5D6C2C1EBD7D7E3CDCCDAC4C1FAE2E0DEC9
+ C8B0A09F8F82828779788377766F64628B7E7D9284839081818B7D7CD6C0BEEE
+ D5D5DDC6C5B29F9DA39190BDA8A7B39E9DB29E9DB5A09FC1AAA9AD97969D8988
+ AA9493BCA4A2C4ABAAD6B8B7EDCFCDEACBCADFC0BEE0C0BFE3C2C0E6C4C3B49A
+ 99EECAC8EDC8C6ECC7C4E5BFBCE3BBB9EBC1BFDDB1AFEDC0BDCCA4A2BB9795AE
+ 8D8BAC8E8CAD8E8DBB9896BD9A97A98684B08886BC9391DEB1AEECB7B4EDB1AD
+ EBADA9ECA4A0ECA6A1EFACA7ECA39EF0AEA9F8B2ACF1ACA6DB9892BE817C8D5D
+ 5A8658544E3533412A296B4D4A885F5CA67470CD908BEEA29DFAADA7FAACA7EE
+ ABA5F1B7B1EDA8A3F5B9B4EBA6A1ECABA6EBB4B0F3B7B3D09794B88B88AF8886
+ AE8A88B89491B69290AE8B88BE9895C09A98B18C8AC29D9BBB9897AF9392C3A8
+ A6DCBCBBF2CFCDEAC5C3EFCCCBE2BFBEDCBAB8EECECCF2D3D1ECCCCBDEBEBDE1
+ C3C2E4C8C6EDD1D0DFC4C4C9B2B2B49E9DAB9796A28F8EB09C9BB09D9CB2A09F
+ B8A3A3B4A09FB6A3A2AF9E9DBAA7A7AF9C9BC2AFAEC1AFAEB1A1A0B6A4A3C7B3
+ B2E2CDCCE5CFCEEDD8D6FAE4E3EDD7D6D6C1C0E3CFCEE0CCCBDEC9C7E5D1D0E7
+ D2D1D4BFBED8C3C2E3CFCED4C1C0D4C0BFE4D0CFD4C1BFE2D0CFE2D1D0E0CFCF
+ E3D1D0DBCAC9F0DEDEE9D6D56F6766000000736B6BE9D7D6E8D6D5D7C5C4DAC8
+ C7DBC9C8E5D3D3DDCBCAE3D0CFE4D1CFDCC8C7DCC8C7E6D1D0E0CDCBD9C6C5DF
+ CBCAE2CECCDBC6C5A89897736969988A8AD6C3C2F2DDDCE7D1CFE1CBC9897B79
+ 978887DFC8C7EBD2D2F0D7D6E0C8C7B7A4A3786C6BAF9C9BD5BEBD887A798374
+ 74AA9795A491908676759D8A89ECCFCEE5C8C6F1D3D2F0D2D1DDBFBDE4C7C5E7
+ C9C7E0C1BFDDBCBADFBDBBEDCBC9F2CFCEE9C7C5EDCAC8E9C4C1E2BBB9E3BAB8
+ ECC1C0DDB3B1E5BBB9E5BCB9EBC2BFE9BFBCEFC3C0EFC3C0F1C7C3F8C9C6EFBC
+ B9F0BFBCF1C3C0EAB6B2EAB2AEEDB3B0E9A7A3ECAAA5ECAEAAF0ABA7EDABA6EF
+ B1ACEDAAA5EEACA6F4A8A2FFB4AEFCA69FFCABA4F2A59FF6A39DF9B4AEFFB6AF
+ FAADA7FBB2ACF9B0AAECA29DF3AEA9ECA49FEEB6B1EBB1ACF2B2ADEAB1ACF0AF
+ AAE9ABA7F1BDB9EAB3AFECB0ACFAC2BFFBC7C4FACAC7F8C8C5EDBEBCF0C2BFF6
+ C7C5EDBEBCF3C4C2ECC0BEF0C4C3ECC4C2E7C4C2E8C9C7E2C4C3E9C9C7E2C0BE
+ E3C1C0E6C6C3F4D6D4EED0CEDDBEBDDFC1BFE3C5C4EED1D0E0C5C4EFD3D2E8CC
+ CBEBD1D0E6CBCAEED4D3F7DEDDF2DAD9ECD3D2E8CFCEF1D8D6E7CECDF2D9D7E1
+ C8C7F3DAD9F7E0DFECD5D4E2CCCCE2CCCBDFCAC9DFCAC8DCC7C6E7D1CFDDC7C6
+ E2CCCBD8C3C2DDC8C6DEC8C7E1CCCBDAC6C4DBC6C5DAC5C4DECAC8D5C2C0DBC7
+ C5DFCBCAD5C1C0DFCCCCDBC9C8DECBCAE0CECDD9C7C6E7D6D5E3D0CF6C636200
+ 00006C6464E9D7D7EDDDDCDCCBCADECDCCDECCCBE1CFCEDCCAC9E2CFCFE8D5D5
+ D8C4C4DAC6C6DECACADAC6C6DFCBCAE5D2D1DECAC9DECAC9DAC8C73935359286
+ 86E5D2D1E0CCCBE5D0CFEDD7D6544C4B766B6BE7D0CFE1CACAE4CDCCE3CCCCCD
+ B8B7221F1FBCA8A7EDD4D35149486C605FD6BEBDCFB7B6C1ABAA635858CFB7B6
+ E3C8C7E9CDCCEBCDCBE2C4C2DFC0BFE3C4C2E3C4C1E8C8C6DFBEBCE8C7C5EBCA
+ C8E9C6C4E8C4C2E3BDBAE0B9B6E0B9B6E6BFBDE4BDBBE6C1BFE4BEBBF0C8C6ED
+ C3C0E6BDBAE8BFBDEBBFBCEEBFBCEBBEBCEABFBCE9B7B4EBB5B2EEB7B3ECAEAB
+ ECACA8EEB3AFF1B2AEEBAAA6EEB4AFF2B3AEEEAFAAEFADA7EDA5A0F5B0AAF4A4
+ 9EF0A7A1F1A7A1F9ACA6F5B4AEF1AFA9F2ACA6F6B3ADF6B3AEF1A9A4F2B0ABED
+ A9A4F2B3AEF0BEB9ECAFABEBAFABF0B9B5E9AAA7E9AFABEEBDB9EEBBB7E9B1AE
+ E8B3B0F0C1BDF2C4C1E9BCBAE7BDBBE9BFBCE8BEBCE7BDBAE4BBB9E8C0BEE8C0
+ BFE5BEBDE9C5C3E7C6C5E6C9C8E9CBCAE7C9C7E7C7C5EFCFCDEDCECDDFC2C0E4
+ C7C6E0C3C2E9CDCBE9CDCCE2C6C6E4C9C8E9CFCEE3C9C8EAD1D0ECD4D3E5CECE
+ E4CCCCE0C9C8EBD3D2E5CECDE3CAC9E3CACAEDD5D4EED7D6E0CAC9E9D2D2EDD7
+ D6E4CECDE6D1D0E0CAC9E3CDCCE2CDCCE3CDCCD8C2C1DFC9C8DAC5C3DBC6C5DB
+ C7C5E5D0CFDEC9C8DFCBCAE0CCCBE3D0CFE2CECDDECACAE0CDCDE1CFCFE6D4D3
+ DDCACAE5D3D2EEDDDCEEDBDA756C6C000000746C6BF7E5E5E9D9D8E7D6D6E9D8
+ D7EDDBDAF1DFDEF2E0DFF1DDDDF4E1E1EAD6D6ECD9D8F2DFDEEEDBD9EEDBDAEA
+ D7D6E9D7D6E9D7D6EDDADA585152AEA1A0F2E0DFE5D2D2EAD7D7F9E3E36E6564
+ 8A7E7EF4DCDCE2CCCBE2CCCBECD5D5E6D0CE403A3AD4BEBEFCE1E17065648779
+ 77F7DDDCE8CECDF4D9D7D3BCBBD7BFBEE8CCCBEDD0CEF1D3D1F5D6D4F2D3D2ED
+ CECCEECFCDEBCBC9E6C5C3EDCCC9EBC8C6EBC7C6EBC5C4E8C3C0EDC8C5EDC8C5
+ EFCBC9EFCCCAF1CCCBF0C9C7F0C8C6EFC8C5EFC6C3EEC1BFEEC1BFEAC1BEEAC1
+ BEECBBB8EFBCB9F1BEBAEFB6B2EFB3AFF0B7B3EDB2AFF2B4B0F2B9B5F1B9B5F3
+ B5B0F4B8B3F5B3AEF6B1ACF8B4AFF9ADA7F8B3ADF5ADA7F7ADA7F6B7B1F8BAB4
+ F8B3AEF5B4AFF2B1ACF2AEAAF4B3AEF4B6B1F4B3AFF5BEB9F3C1BCF2B6B2F4BD
+ BAF4BEBBF6BAB6F6BFBBEABBB7E9B9B5EDB9B6F2BFBCF6C7C5F1C4C1F1C7C4F3
+ C9C7EEC5C3F3CCC9EEC6C5EFC8C6F3CCCAF1CBC9EFCAC9EDC8C7EFCCCBF2D3D1
+ EED1CFF2D7D4EDD0CEEFD1CFF1D3D2EFD1D0F1D4D2EACECCEED2D1EACFCEE8CD
+ CCE5CBC9EAD0CFECD3D2EDD4D3E6CECDEED6D5EAD3D2EBD3D2EDD5D4F0D7D6F0
+ D6D6EBD3D1EFD7D6F1DAD9F0DAD9EFD8D7F4DDDCF7DFDFF4DDDCF1DBDAF3DDDC
+ EFD8D7EFD8D7F0DAD8EAD5D4E7D1CFEAD5D4EAD6D5E2CDCDE9D4D4E3CFCEE9D5
+ D4EAD7D6E7D5D4EDDBDAEEDCDCF4E3E2EDDCDBEFDEDEEEDDDDF9E7E778707000
+ 0000756D6DFEEDEBE7D6D6E5D4D4E5D3D2E4D0D0E6D4D3E4D2D1EAD7D6E8D6D4
+ E3D0D0E4D1D0E5D3D2E7D4D3EBD9D8EAD8D8E8D7D6EAD8D7EDDBDB575051AA9D
+ 9DEFDDDCE6D4D3E9D6D6F7E2E16D63638F8282FFEBEBF2DCDBF1DAD9F3DBDAED
+ D6D5403939CCB7B6F8DFDD6C6161897B7BF9DFDEF2D7D7D1BBB9E4CBCAEDD2D1
+ E7CCCBECCFCEF0D2D1EDCFCDEDCFCEE6C8C7ECCCCBECCCCAE6C4C3E8C7C5EBC8
+ C7EBC8C6EECBC9EAC7C5EBC9C7E7C5C3E9C6C4E9C5C2ECC7C5EDC7C5ECC5C3E7
+ BEBCEBBFBDEBC1BEEEC7C4EEC4C2EDBEBBECBDBAEEBEBBF1BBB8EFB6B3F0BAB6
+ F0B9B6EEB3AFF0B6B2F2BEBAF2B8B4F1B9B4F2B6B2F5B3AEF4B3AFF3AFABF5AC
+ A6F8B7B2F2ACA7F3AEA9F0B1ACF4B8B2F3B0ABF6B8B3F1B1ACF2B4AFF2B1ADF2
+ B7B3F3B5B2F5BAB6F2C2BEEDB9B5F2BAB6F0BDB9F1BEBBF3BAB7ECB8B5E9BCB8
+ E9BCB9EEBDBAF5C4C0F2C4C2F3C9C6F2C9C6ECC4C3F2CCCAF0CAC8EDC7C6EFCA
+ C8F0CACAEFCBCAEDC9C8EECAC9F0CCCBEECCCBF0D2CFEFD4D2EFD4D2F1D7D6EF
+ D3D1F1D5D3EED1D0EBCFCEF1D5D3EDD3D2E5CBCAEBD1D0EED5D4EED6D5EBD3D2
+ EFD7D5ECD4D2E4CAC9EAD0CFE8CFCDE7CECCE2C9C7E6CECEE9D2D2EBD4D3E4CD
+ CCE8D2D1EFD9D8EDD6D5E6D0CFE6D0CFE7D1CFE6D0CFE7D0CFE9D3D2E3CECDE2
+ CDCCE5D1D0E3CECCE7D2D1E3CFCEE9D6D5E8D5D4DFCDCCEBD9D8E7D6D5EDDCDB
+ EFDEDDF1E0DFF0E0E0FEEDED766E6D000000766E6EFFF0EFEEDCDCE7D6D5E9D6
+ D5E2CDCCE3D0CFDECCCBEAD7D7EEDCDAE8D5D4E9D7D6E8D6D5EAD8D7E7D6D6E7
+ D6D5E1CFCEE7D4D4ECDADA565050A99C9CF0DDDDE6D3D3E7D4D3F7E1E1706666
+ 4B44448A7D7D8478788477778376757D7170292424CFBBBAF7DFDE6F64645950
+ 50AA9898A392914B4343D0BAB9ECD3D2E8CECDE7CCCBEDD1D0ECCFCEEED0CFEA
+ CBCAEFCFCEEECECDEBCBC9E7C5C5EAC9C8EAC8C7EBCAC9EECECDEDCDCBEBC9C7
+ EAC7C5EAC6C4EECAC8ECC7C5F0C8C7EFC6C3EFC7C5F0CBC9F1C8C6EEC2BFE9BC
+ BAECBEBBECB9B7ECB6B3EDB9B6F0BDBBF0B9B5EFB8B4F1BDBAF1BCB8F2BAB6F5
+ BEBAF6BBB7F7B7B3F8BCB8F5B2AEF2AEA9F6B9B5F4B1ADF2B0ACEDB2ADF1B9B4
+ F4B5B1F5B9B4F5B8B4F2B8B3F0B2ADEEB4B0F0B7B3F1B6B3F2BEBAF1C4C1F0BC
+ B9EEBAB6F1C2BEEEBCBAEFBAB8F3C2C0F0C5C3EDC3C0EFC1BEEEBFBDEEC3C1EE
+ C6C4E9C2C0EBC6C4EDC9C7EBC7C6EDCAC8EDCAC9EDCBC9E8C6C5EAC8C7EECCCC
+ ECCBCAECCBCAEDCDCCEDD0CEECD2D0E7CECDF0D6D5EED4D3EBD0CFF3D6D4F4D8
+ D6EDD1D0E2C8C7E6CCCBEED6D5EAD1D0EED4D3ECD3D1E9CECDEDD3D2EBD2D1EE
+ D5D4ECD4D2EFD7D6EDD7D5EED8D7E8D1D1E6D0CFECD7D6EED8D7EAD5D4E8D2D1
+ E9D2D1EBD5D3EDD6D5EDD6D5EAD4D3E6D2D0E5D0CFE3CECCE8D5D3E6D3D2E6D4
+ D2E8D5D5E3D1D0EBDAD9E8D8D7EBDBDAEDDCDCF0DFDFF2E2E1FFF0F079717100
+ 0000746C6BFAE8E7E6D5D4E9D7D6EFDAD9F1DDDCEEDBDAE7D4D4F2DFDEEEDCDB
+ E3D1D0E8D6D5E9D7D6E6D3D3E9D7D6E7D5D4D9C7C7E4D2D2EAD7D6564F4FA79A
+ 9AEAD7D7E2CFCFE2CFCFF5DFDF6E6564766C6BD4C1C0C4B1B0CAB7B6C8B5B4BD
+ ABAB363130C7B4B3F7DFDE6E6362796C6CDEC7C6D7C0BF9D8D8CD6BFBEE9CFCE
+ E8CDCDE0C4C3E6CAC9E3C6C6ECCECDE4C5C3E7C8C6E7C8C6ECCCCBE7C8C6E6C7
+ C5E8C9C7E9C9C7E8C9C7ECCBC9E9C6C5ECCBC9EAC8C7ECC8C5EAC4C2EDC7C4EA
+ C4C2EECAC7EDC4C2EDC1BEEDC1BFEBBFBCECBCB9EDBAB8EEBCB9EFBEBBEBB7B4
+ EBB5B3F1BDBAF0BFBDF2BCB8EFBAB7EFB9B4F4BBB6F1B4B0EEB5B1F2B2ADF3B2
+ AEF4BBB7F4B4AFF4B5B1F1B7B3EDB8B3F2B6B2F4B9B5F2B9B5F0B7B3EEB4B0EF
+ B4B1F3BDB9F5BDB9F0B9B5F2C5C2F2C5C3F0BEBBF2C2BEEDC1BFEDBDBBF4C1BE
+ F0C2BFEDC3C0F2C9C6F0C5C2F0C4C2F0C7C5EEC7C5ECC7C5EDC9C7E7C5C3EBC9
+ C8E9C6C5E9C9C7DFBEBDE7C6C5EECECDE5C5C4EAC9C9E7C8C7E6C8C7E1C5C4E0
+ C5C5EBD1D0EED6D6EAD2D1EED5D4F0D6D5E9CECCEBD0CFDCC2C1E4CBC9E1C8C6
+ E9CFCEE3CAC8DFC7C5E7CFCCE4CBC9E5CCCAE2CAC9E5CDCBEFD7D5E8D1D0EBD4
+ D3E7D1D1EDD7D6EBD6D5E7D1D0E6CFCFE6D0CEE5CECEE6D0CEE6CFCEE9D2D1E4
+ CFCDE4CFCEEAD5D4E3D0CFEBD8D7EBD8D7E6D4D3DCCACAE6D4D4E4D3D2E6D5D5
+ EBDBDAE6D7D6EBDBDAFEF0EF7971710000006E6665E5D3D2E4D2D1DCC8C6D3C0
+ BEEFDBD9D7C5C4DECCCCE6D5D3DDCBCAE4D2D1E8D5D5DFCCCBDECCCBDCCBCAEE
+ DCDBDECCCBE4D1D0E1CFCE524B4AA69999E5D2D2E0CDCDDFCCCCF2DDDD69605F
+ 8A7F7EF1DBDAE2CCCBE2CCCBE4CFCEDCC8C73D3736CBB7B6F7DEDD6E63638173
+ 72EED5D4E0C8C7E9D1D0DCC4C3DFC5C4DDC3C1DCC0BFEBCFCEE7CAC9E9CBC9DD
+ BFBDE2C4C2E4C6C4EFD0CEE1C3C2E2C5C3E2C3C1EECDCBDDBCBAE3C3C1E6C5C4
+ DFBEBCE3BFBDDEB9B7EBC6C4E8C4C2E3BFBDE9C2BFE4BAB8E5BBB8E3B7B5E9BA
+ B8E3B2AFEEBCBAEEC0BDE8B7B4E3B0ADEAB8B4EDBEBBE5B4B0ECB9B5E9B7B3E8
+ B3AFEDB4B0E8AEABEBB2ADEDAEAAE5A7A3EBB3AEEAACA8EBAFAAEEB5B2E7B2AE
+ E8AFABF0B8B4E9B3AFEDB6B2ECB6B2E7ADA9E9B5B1EEB8B5E3ADA9EBB9B6F0C6
+ C3F0C3C0EABAB6E5B7B5E6BBB8EDBEBBE5B6B3E6B9B6EDC5C3E3BDBBE9C0BEF1
+ C7C5EDC5C4F2CCCAE9C5C4E3C0C0E7C5C4E0C0BFEBCCCAE0C1C0E7C8C7ECCDCB
+ DBBBBAE9CAC9E9CCCAE6C9C8E3C6C5E1C4C4E2C6C6E4CBCAE1C9C8E0C9C8E0C9
+ C8E0C8C6EAD0CEDBC3C1DDC4C3E2CAC8E2C9C7DDC4C3DAC1BFE5CCCBDCC3C2DC
+ C4C2D9C1C0DBC3C1EBD4D3DCC5C3E7D0CFDEC8C7E1CBCAD9C4C2E5D0CFE6D0CF
+ D2BDBCE5D0CEF1DBD9EFD9D7E3CDCBD0BAB9DBC5C4DAC6C4DCC9C7DCC8C7EEDB
+ DADBC8C7DBC9C8DAC9C9E6D5D5E7D6D5EDDDDCD8C9C8D9C8C8ECDAD9766E6D00
+ 0000736A6AE6D2D0F6E2E1E2CECDD9C6C4ECD9D8DAC8C7DECDCCE6D5D4DECCCB
+ EEDCDBE8D5D5D8C5C5EFDDDCE2D1CFC5B5B5BEAEACE8D5D6DECCCC4741419C8F
+ 8FE5D3D3CABABAB1A2A2FDE8E75C5454776D6DE2CBCAEAD5D4E2CDCDDAC4C3D1
+ BCBC2E2A2AC9B6B5F6DDDD615757756867EDD4D3DCC3C2CEB7B6968584E4CBCA
+ E3C8C7DDC2C1EED1D0E6CAC9E1C5C3DFC2C1E9CBCADEC2C0E6CAC9E2C6C4F0D1
+ D0DEBDBBE9C9C7DDBEBBE4C4C2E7C6C4E0BDBBE9C5C3DEBAB8EFCDCAE4C2C0EB
+ C4C2E7BFBCE7BEBCE8BEBBE6B9B7EBBBB9E1B2AFF1C4C2F1C3BFE5B4B2E3B1AE
+ EEC0BCEEC0BDE7B5B2E9B8B5E9B8B4F2BEBAE6AEAAE9B3AFECB3AFF3B7B3EBB2
+ AEEAB3B0EBAFABF1B8B4E9B2AFEFBCB9ECB6B2ECB5B1EBB6B3EFBAB6F1BEBAE8
+ B1ADEEB9B5EDBBB8E2AEABE8B5B1F2C4C1F1C8C5E6B8B6E6B7B4EABFBCEEC4C1
+ E8BAB8EABCB9EBC0BEE2BDBBE4BFBEF0C9C7EEC7C5F4CDCAE7C2C0E6C3C2EECC
+ CBE2C2C0EDCDCCE1C1C0E3C4C3E5C6C5DFC0C0E6C9C8EED1D0E9CDCBE4C7C6E6
+ CAC9EACFCEDFC5C4DEC3C3E9CFCEE6CFCEE3CCCBE4CDCBE1CAC8E4CCCBE1C8C7
+ E0C8C6E3C9C9E1C8C6E0C7C6DDC5C3E0C9C7DBC3C2E1CBC9E9D2D1DAC4C2E4CE
+ CDDAC5C3E3CECCD9C4C2E4CFCEDFCBC9D8C2C1DFCAC9F0DBDAF4DFDDEED9D7D6
+ C1C0EAD5D4D6C3C2E8D6D5D7C4C3E4D2D1D6C3C3EEDCDBDBCBCAE2D2D2EFDFDE
+ E6D6D5D8C8C8EADADAE9D9D86F67670000006A6160DDC9C8E3D0CFDAC7C6D5C3
+ C2DBCAC9DDCCCBDECDCCDECDCDD9C8C7DCCACADFCDCCD7C5C4EFDCDCDFCECDBD
+ AFAE635B59A699989C8F8E696161877B7BA39696807575796F6EDAC8C7655B5A
+ 6B6160C8B3B3E0CBC9DCC7C7DEC8C7AD9B9B504847968786D2BDBC7166657C6F
+ 6EA49291A08D8C877877877776EBD1D0E2C7C6DFC4C3EDD2D1E5CAC9E3C9C8DF
+ C4C3E0C5C4E3C7C6E2C5C4E4C6C4EBCCCADCBDBBDEC0BEE2C3C1E3C1C0E4C0BF
+ E1BEBCE4C1BFDBBAB8EBC9C7DFB9B7E7BFBDE9C1BFE1B9B7E2B8B5E3B5B3E6B8
+ B6DFB4B1F4C8C5F5C6C3E7B6B3DEB0ADE5B9B6E7B9B6E4B4B2E7B9B6E6B4B1E8
+ B5B1E5B0ACEAB7B3E6ADAAE8AEAAF4BDB9E3ADAAE5ABA8F0BAB6E6B0ADE9B9B6
+ E8B5B2E8B3AFE9B7B4E7B4B0EAB8B4E5B2AEEAB5B2E7B6B3EAB8B5E3B1AEEDBD
+ B9F1C7C4E9C0BDE5B7B5E4B7B4E8BFBDE6BDBBE6BBB8E3B8B6EAC2C1E4C0BEE6
+ C3C1EFCAC8EFC8C6E1BCBAE5C1BFE9C8C6DEBEBDE8C8C7E0C1C0E5C7C6DCBFBD
+ E8CBCBDFC4C3ECD0D0ECD0CFE4C8C8E3C8C7E4CAC9E4C9C9E3C8C8DFC4C3DFC5
+ C4E2C9C8E5CDCCDDC6C6DFC8C7DDC5C3DBC3C2E0C8C7E6CECDD7BFBEDFC7C6E9
+ D2D1D8C2C1DCC5C4E2CDCBDAC6C5E7D3D1DCC9C7E0CDCBDAC6C5E4D0CFD9C5C4
+ E4CFCED7C3C2EBD8D7EEDBDAE2D0D0D5C3C3E6D3D4DAC8C7DAC8C8D9C8C7E8D7
+ D6D6C5C5EAD9D9D8C8C8E1D2D1E8D8D8DECFCFD7C8C8E4D5D4E9D9D96C646400
+ 0000706766F0DDDBE2CECDE4D1CFE2D0CEE5D3D2E7D6D5E4D2D2E5D5D4E3D1D0
+ E6D4D3E5D3D2E3D1D0EEDDDCE1CFCEE3D0D0E1CECDE9D7D6DECCCAE8D5D4E2CF
+ CFDDCBCAE2CFCEE1CDCBDFCAC8E0CAC8EAD3D2EAD4D3E4CFCDE8D2D2E5D0CEDB
+ C5C4E6CFCEDFC8C8DFC8C7EBD4D2E3CCCBD9C1C0DEC6C4E8CECCE5CACAE9CFCE
+ E3CAC9E3C9C8EBD2D1EAD1D0E9D0CFE3CACAE6CCCAECCFCEE3C5C4E9CBC9E8CB
+ C9E4C7C5E3C4C2EAC9C7E9C7C5EBC9C7E9C8C7E9C9C7E9C8C5F0CAC8E3BDBBE5
+ BFBDEAC4C1E7BEBBEABFBDECC0BEECC1BFE9BFBCF1C4C2F0C2BFEEC1BEE9BFBC
+ EBC1BDECBEBBEBBEBBECBFBCEBBAB7E9B7B4EEBBB8F2C0BDEEB7B4EFB7B3F7C3
+ BFE4B0ACE7B0ACEFBBB6E5B2AFEDC0BCE9B8B4EAB6B2F0BFBCECBBB8EFBEBBEF
+ BEBBEDB9B6EBBBB8F0C1BEECBCB9EFBFBCEDC1BEEBC4C1EAC1BEEABDBAECC1BF
+ ECC5C2F0C8C6E7BEBBEAC1BFE8C1BFE7C5C2EFCCCAECC8C6E7C2C0E6C1BFECC9
+ C8E8C8C6E8C9C7E8CAC9E8CAC9E4C7C6E7CCCBE8CCCBEDD3D2EFD4D4E4CAC9E2
+ C8C7E2C8C7E1C8C8ECD2D2E5CBCAE5CBCAE8CECDEED4D3E3C9C8E3CAC9E3CBCA
+ E3CCCBE3CCCBE8D1D0D7C0BFE1CAC9ECD5D5E4CECDE2CCCBE5CFCEE7D2D2EAD5
+ D4E3CECEDFCBCAE0CCCBDFCBCAE2CECDE5D1D0DFCCCBE8D6D5E9D7D6E0CECEDF
+ CCCCEEDBDBEFDEDDE1CFCEE7D5D4ECDBDAE1D0D0EEDDDDE1D1D0EADADAEADCDC
+ E2D4D5DCCCCDEFDFDFEBDCDB706969000000776E6DFFF1EFF2E1DFF5E1E0F1DF
+ DDEDDBDAEDDBDAECDBDAEFDDDDEFDDDCF1DFDEEFDEDDF3E1E1F1DFDEECDAD9ED
+ DAD9F4E1E0EFDBDBF2DEDDF3DFDEEBD6D5ECD7D5F2DCDBF1DBDAEBD6D4E7D1D0
+ F0DAD9EDD7D5EAD5D4EED8D8E7D1D1E8D2D1EFD8D7EFD7D6E6CECEEDD4D5EBD3
+ D2EBD2D0EDD3D2EFD4D3E9CFCEE6CDCDE9D1D0E7CECDEAD1D0EAD1D1E9D0CFE2
+ C8C7E0C5C4E2C6C5E4C7C5ECD0CEEFD2D0EED0CEEBCBC9E9C9C8EBCAC9E8C8C6
+ ECCDCBEECCC9EECAC7F4CFCEF1CCCAEBC7C4EDC6C3ECC3C0EEC4C1EDC4C2EEC6
+ C4F2C9C7F2C7C5EFC4C1F2C8C6F1C8C6F2C6C3F4C7C4F0C5C2EFC2BFEFBFBCF0
+ BEBBF0BFBCF2C0BDEEB8B6EFB9B6ECBAB7DFACA8ECB7B4EFBCB9E8B6B3E6BBB8
+ E6B6B3EAB8B5EFC0BEF0C1BEEFC0BDF3C4C0EDBCB9EBBAB9EEC1BFEFC2BFEFC1
+ BEEEC1BEEAC2BFEFC9C7F0C7C4EBBFBDE4BCB9EAC3C1F0C9C7EFC8C6EFC8C6EF
+ CAC8EFCDCCEFCDCCF2D0CFEECBC9F1CDCCF2CFCDF2D3D1F2D4D3EBCECDEED1D0
+ EACFCEEFD4D3E8CECDEAD0CFE9CECEE0C6C6E0C7C6E1C7C7EDD3D3F0D6D5EDD4
+ D3EDD2D1F1D5D3E9CDCCEDD2D1EBD1D0EED5D4EDD6D5DFC9C8D8C3C1E8D2D1EA
+ D4D3EDD7D6F3DDDCEFD9D8F0DCDBEDD9D8EAD6D5E8D4D4E9D5D4E6D3D1E9D6D5
+ E6D2D1E8D6D5E7D4D4E8D6D4EDDADAE3D0CFE7D5D3F1DEDEE5D2D2EAD8D7ECDB
+ DAE4D3D3E5D6D6E9DAD9EADADAE6D8D8EBDEDEDBCCCCE2D3D3EBDBDB766F6E00
+ 00006F6665F3E0DFE9D7D6EBD8D7EDDBD9EFDDDCEDDCDBEBDADAE8D7D6E9D8D7
+ EFDEDDECDADAEDDBDBEFDDDCE3D1D0EAD7D6F1DDDBF0DBD9F6E1DFF7E2E0EED7
+ D6ECD6D4EED7D6EED8D6EBD5D3E9D2D2EED8D7F0DBDAEED8D8EDD8D7E5CFCEE7
+ D0CFE8D1D1EBD4D3E2CAC9E9D1D0ECD4D3E8CFCEE9D0CEF2D8D7E6CECCE9D0CF
+ E9D1D0E8D0CFE9D1D0E9D0CFECD2D1E7CCCBE3C8C7E8CDCBE0C4C2E4C7C5E6C8
+ C6EACBC9EECECCE9CAC8ECCDCCEECFCDEECDCBEBC8C6ECC8C6F3CFCDEFCBC9EA
+ C5C2EAC3C1EAC2C0EDC5C3E9C4C2EAC2C0EDC4C2EDC3C1EEC5C2EEC6C4EBC3C1
+ EBC0BDF4C8C6EFC4C2F0C3C1F0C1BEF0BEBBEEC0BDF1C0BCEFBCB9EFBCB9EFC1
+ BDEBBAB7F3C0BDEFBEBBEFC0BDE7BDBAEBBDBAEDBDBAEDBFBCECBFBCECBEBAED
+ BFBBEDBFBCECBBB8EBBFBDECC1BEEDC1BEECC0BEEBC1BEEEC8C5EFC9C6EFC7C4
+ E8BFBCEFC8C5F2CDCAF4CECBF1C9C7F0C9C8F1CDCBF0CFCDEFCFCEEECECCF2D0
+ CEF3CFCDF2D0CEF2D2D1E8CBCAEACECDEACECDEDD2D1EBD0CFE4CBCAEED4D3E6
+ CDCCE3CAC9E4CAC9E8CECEE9CFCEE9CECDE8CDCCEFD4D3EDD2D0EBD1CFE9CFCE
+ E9D0CFEED6D5E5CECDE5D0CFEED9D8EED9D8ECD7D6EED9D7EAD5D4EED8D7ECD8
+ D7EAD6D5E8D4D3E6D2D2E2CECDE7D3D2E6D3D2E5D4D3E9D6D6E8D6D5ECDAD9F0
+ DCDCEFDDDCF4E1E1EDDCDBF1E0DFF2E0DFECDCDBE4D5D5E6D6D6EDDEDDE4D5D5
+ ECDEDDE8D9D9DBCDCDF7E6E6776F6F000000746B6BFCE9E8EDDBD9E8D6D4E7D5
+ D4E3D1D0E3D2D1EFDEDDEAD9D8EBDAD9F0DFDEEFDEDDEDDCDBF0DDDDE9D7D6EE
+ DBDAF1DBD9F3DDDCE7D1CFDFC9C7D9C3C1E6D1D0E9D3D3E8D3D2E6D1D0E6D0CF
+ EAD4D2EDD8D6E0CAC9E6D1D1EAD4D4EED8D7EDD6D6EED7D6ECD5D4E3CCCBE6CE
+ CDF0D7D6ECD2D1F2D9D8EAD3D2E6CFCDEAD3D2E9D1D0E6CDCDE7CDCCEBD1D0E4
+ CAC9EBD1D0EFD4D3EBCFCDEBCDCCECCDCCE8C9C7E0C2C0E9CCCAE8CBC9EAC9C8
+ EECBC9EAC7C5E9C5C4F1CECCEFCAC8EAC4C3ECC5C3E8C2C0EAC4C2EBC6C3EBC3
+ C1E2BAB7E6BEBDEDC7C5EFC9C6EFC6C4ECC1BFEDC5C2ECC2BFEEC3C0EEC0BDEF
+ C0BEECC0BDEFBEBCF0BFBCEEBEBBF2C5C2F3C2BFEEBEBBEABBB8EEBEBCEAC0BD
+ EBC0BCEABDBAEDBFBCEEC2BFF0C3C0F0C3C0EDC2BEEBBDBAE8BCBAE9BFBDEEC3
+ C1EDC2BFE4B9B7EDC6C4EDCAC7ECC7C4EAC2BFF2CAC8F1CCCAE8C4C1EFCAC8F2
+ CAC9EEC9C6EFCDCAEAC9C7ECCCCBF3D2D0EAC8C6E0BDBBE3C2C0EACBCAECD0CF
+ EED3D1EFD3D2E3C9C7E8CECDF2D9D7F1D8D7EDD4D3E8CFCEF1D7D7F2D8D7EED3
+ D2EBD1CFECD2D0EED3D2E6CCCBE7CECDE2C9C7E5CCCBF0D9D7ECD5D4E9D3D1EF
+ DBDAECD7D6ECD8D7EAD6D5DCC8C7E5D0D0EBD6D5EBD6D6ECD7D7E5D2D1E4D0D0
+ DFCCCBDECCCBE8D6D6E8D7D6E9D7D8EEDCDCF1E0DFF1DFDFF0DEDEF3E2E1F4E3
+ E2F0E0E0EADADAE6D6D6ECDDDDEADCDBEDDDDDF3E4E4F0E2E2FFF0EF79717000
+ 0000746C6BF4E1DFE8D6D5E2D0CEE8D5D4DDCBCADECFCEF2E0E0E3D3D2E0CFCE
+ EEDCDCEBD9D9E6D5D4EAD8D7EEDBDAF0DCDBE5CFCDEFD9D7EBD5D4E8D3D2D9C5
+ C4DCC7C6F2DCDCE9D4D3ECD6D5E8D2D1E6CFCEE9D4D2DCC7C6DEC8C7E6D0CFE7
+ D0D0E7D1CFE5CECDE6CFCEDBC4C3DFC8C7EFD7D6E5CBCAECD4D2ECD5D4E8D2D0
+ EBD3D2E9D0D0E7CECEE6CCCBEAD1D0DDC3C2E8CDCCE9CECDE6CACAE9CCCCE8CA
+ C9EACDCBD9BDBBE7CAC9E9C9C7E2C2C0EECDCBF1CFCEEBC8C6E5C2C0EFCAC8E7
+ C2C0E9C4C2E9C5C3E5C1BFE9C4C2EBC4C2DEB7B5E7C2C0ECC7C5E9C3C1EAC2C0
+ E6BFBDEDC5C3E9BFBCEDC2BFE9BCB9E9BDBAE9BEBBEEBEBBE8B9B6E5B6B3EDC1
+ BFF0C0BDEABBB8EBBDBAF0C2BFEAC2BFEAC0BDEBBFBDECBFBCE8BFBCEBC0BDEC
+ C1BEEEC3C1EBC0BDEABDBBEBC2C0EFC5C2EDC3C1E1B7B5E9C1BEE9C5C2E9C7C5
+ E8C2C0E6BFBDE6C0BFDBB8B6EAC6C4F4CECDF0CAC8F1CCCAE6C3C1F2D0CFEDCC
+ CAEACAC7EBCAC9DCBCBADDBEBDE8CAC9EBD0CFEFD4D3DCC0BFE4CACAEBD2D1E7
+ CECDE9D0CFEBD2D1E7CECDEDD4D3F1D8D6ECD2D1E6CBCAEDD4D2DFC5C5E2C9C8
+ D9C1C0DBC3C1EED6D5E7D0CFDDC5C4ECD5D4E7D1D0E3CFCDE5D2D1D5C2C1E2CE
+ CDE8D3D2E7D3D2E5D0D0E0CCCCE5D1D1E2CFCFD8C7C7DFCECEF0DFDFF2E1E0ED
+ DCDBE5D4D4E7D6D5F0DFDEEBDAD9E8D8D7EEDEDEECDBDBE2D3D2E4D4D4E2D3D3
+ EDDEDEE8D9D9ECDEDDF9EAEA736B6B000000746B6AE4D1CFE3D1D0D2C1C0E4D1
+ D1E0CECDDECFCEE2D2D1DECECDDBCACAE2D0D0DBC9C8DDCBCAD7C4C3E3CFCED8
+ C4C3E0CBCADDC9C8E9D5D4D9C5C4D5C1C0E4D0CEF3DEDCE5D0CFD6C0C0E4CECD
+ D9C3C2E0CAC9DFCAC9DDC7C6E2CCCBD7C0C0E2CCCBD8C1C1E2CCCBDCC6C4E3CC
+ CBEFD9D7D4BCBADFC7C6EDD6D5E7D0CFE1C8C8DCC4C3DFC6C6DDC5C4E7CFCEDD
+ C3C2E7CCCBE1C5C4E1C6C5E3C8C6DFC4C3EED3D2DCBFBEE9CAC8E4C4C2DABBB9
+ EACAC9F0CFCDEDCAC9DBB8B6ECC7C6E3BFBDE1BEBCE1BFBDE3C0BDE8C2C0EAC5
+ C3DFBAB8E7C3C1E2BEBCE2BBB9E1BAB8E1BBB8E9C0BEECC3C0EBC1BEE1B5B2E6
+ BDBAE3B7B5EABCB9E4B6B3E4B8B5E5BBB9E8B9B7E2B5B2E9BDBAEBBEBBE4BDBA
+ E6BCBAE9C0BDE6BAB7E5BCBAE5BBB8E4BAB7EBC1BFE3BAB7E4B7B5EAC2BFEDC5
+ C3EDC4C1E0B8B5E5BDBBE3BDBBE2C0BEE4C2BFDEB9B7ECC6C4DEBAB7EBC7C5F2
+ CFCDF0CCCAE2BDBCDBB7B5F0CECCE1C0BEE8CAC8E0C2C0E0C1C0E8C9C8EACBCA
+ E9CCCBEBCFCEDAC0BFE7CDCCE4CACADEC5C4E7CECEE9D1D0D9C1C0DFC6C6F1D9
+ D8E5CCCBD8BFBEEFD6D5DBC2C1E3CAC9E0C7C6E0C8C7EAD2D0DEC6C5DEC6C5E3
+ CBCAE5CDCCD8C1C0EAD5D5D9C5C4EAD6D5EDDAD9E3CFCFD6C3C1DECBCAE3D0CF
+ DECCCCDAC9C9E3D3D3EEDDDDE3D2D3DACAC9E3D2D2DAC9C9E2D2D1DCCCCBE1D1
+ D0DFCFCFE0D0D0DDCDCDDDCDCDD7C8C8EEDFDED8C9C9E8D9D9EADAD96E666500
+ 0000766D6CE6D2D1F5E3E1DCCBC9EBD8D7E4D2D1E1CFCEDFCECDEAD8D7E2D0D0
+ DDCCCADBC9C8EFDCDBD9C6C5E2CFCED5C1C1E9D5D4DECAC9D2BEBDE1CDCCECD9
+ D7E2CECDF0DBDAE4CECDD1BCBBE5CFCEDCC6C5DEC8C7DEC9C9DFCBCBE5D0CFD9
+ C3C3EBD6D5DDC7C6EBD5D4E0CAC9E3CECDE8D2D1D9C1C0DDC5C3ECD4D3EDD5D5
+ DFC8C7E2CBC9EBD3D2DEC5C4E8CFCEDDC3C2E6CBCAE0C6C5E3C8C7E7CDCBE1C8
+ C7EED2D1DEC0BFECCDCBE0C2C0DDBDBCE6C7C5EDCDCBEBC9C7E1BEBCE3C0BFE1
+ C0BEE8C6C4E2BFBEE6C3C1E8C4C2E2BEBCE5C1C0E4C2BFE2BDBBEAC3C1EBC5C2
+ E5BFBCE4BCBAEDC4C2EBC1BFE1B7B4ECC4C1E2B8B5E4B8B5E6BAB7E9BEBCE1B8
+ B5E4B7B4E3B7B4EBBFBDE8BDBAE2BCB9E6BDBAE7BEBCE2B6B4E9C1BEE6BDBBE8
+ C0BEEBC2BFE1BAB7E3B8B6E7BEBBF1CBC8F0C8C6DFB9B6ECC4C2E9C2C0E6C2C0
+ EAC8C7E1BDBCEBC6C3DCB7B5E8C5C3EFCDCBEECCCBDFBCBADFBCBAE5C4C3E1C1
+ C0DEC1C0E6C9C8EBCFCEE4C8C6E5C7C6E8CAC9DFC2C1E1C7C6DFC6C5E5CCCBE0
+ C7C6EED6D6E6CFCEE0C8C7E1C9C9ECD5D4E0C9C8DFC7C6E4CCCCDEC6C5E6CECC
+ E1C8C7E0C7C6E4CCCBE3CBC9EDD5D4DBC3C2EDD6D5DEC6C6EED8D6D8C4C2E7D3
+ D1EFDBDAECD9D8DBC8C6E8D5D5E0D0D0DACACAE7D6D6E8D8D8E9D8D8DCCCCCD7
+ C7C7ECDBDBDECECEDDCDCEE1D1D1E9DADAD9C9C9D8C8C8E3D4D3E0D1D1D7C8C8
+ E5D6D5D9CACAEEDFDFE8D8D7746C6B000000726969E3CFCEE7D4D3D6C4C3DECC
+ CBDBC9C8E1D0D0E0CFCEDAC9C8D6C4C4DACAC8DCCBCADECCCCDAC9C9E5D3D2D5
+ C1C0E7D4D3DBC7C6E9D4D4E8D4D3DEC9C9D6C1C0F0DBDAF0DADADBC6C5DFCACA
+ DBC7C6E2CDCDDCC8C8E2CECEE5D1D1D7C3C2E4D0D0D9C5C5E2CECCDAC6C6E4CF
+ CEDCC6C4E2CAC9DCC3C2E0C8C7EED7D6E5CFCEDEC6C5E2C9C9DFC6C5E7CECDDD
+ C3C3E6CDCCDEC5C4E2C9C8E4CBCADEC3C2E4C7C6E1C3C2E6C8C6DCBEBDE5C7C5
+ E2C3C1EDCCCBEAC8C6E5C4C3DDBBBAE4C3C2EBCAC7E0BDBBE0BDBBE2BEBCDFBB
+ BAEAC8C5E0BDBBE3BEBCE6C0BEEAC6C3E0BAB8E6BFBDECC4C1EAC1BFE2BAB8E6
+ C0BEE2B8B6E9BFBCE5BAB7E3BBB8E6BEBBE5B9B6E2B8B5EFC5C3EEC3C0E4BEBB
+ E2BBB9E3BCB9E3B9B6E3BBB9E1B9B8E6BFBCE4BCBAE5BEBCE5BDBBE2B8B6ECC7
+ C4E8C2C0DDB7B5E7C0BEE4BDBBE3BFBCE4C2C1DCBBB9E1BEBCDDBAB8ECC9C7EB
+ CAC8ECCBC9DEBEBBDDBCBBE1C0BFE0C0BFE5C7C6E3C7C6E0C4C4E1C6C4EBCFCE
+ E7CAC9DBBFBDE9CCCBDDC3C2DDC3C2DEC5C4E0C8C8DCC5C4E5CDCCE4CDCCDEC7
+ C6DEC7C6E5CDCDDEC7C6DDC6C5E2CAC9DCC5C3E7CECDE5CDCCDFC7C6E5CECCD8
+ C1C0E7D0CFDAC3C2E0CAC9D7C1C0EBD5D4EBD6D6E5D1D1D9C6C6DDCCCBE3D3D3
+ E1D2D1E2D3D3E9DADAF0E0E0DECFCEDAC9CAE6D5D5D9CAC9E7D6D6DECFCEE0D1
+ D2E1D3D2DFD0D0DCCDCCDBCCCCDFD0D0E3D4D4D4C5C6E6D7D7EBDADA69616100
+ 00007B7272F9E6E5EFDEDDECDBDAE9D9D8EDDDDDECDCDBECDBDBE6D5D5DFCFCE
+ E8D7D6EDDCDBE5D3D3E7D6D5EDDADAEAD6D5ECD8D7E5D1D0EAD6D5E7D3D2E6D1
+ D1EBD6D6EEDAD9EAD6D5E7D3D2E7D2D1E7D3D2EBD6D6E1CDCCE3CFCEE6D3D3E5
+ D1D1E9D4D4E4D1D0EBD7D6E5D1D0E9D4D3E8D1D1F1DAD8F2DAD9EDD6D5F1DBD9
+ F0DAD9E9D2D1E6CECDEBD2D1EBD1D1EAD1D0E8CFCDE8CFCEE8CFCEEAD0CEE7CC
+ CAE7CAC9EACDCBEBCDCCE4C6C4E7C8C7EDCECBEDCDCBEAC9C8EACAC9DFBFBDE6
+ C7C5EACAC7E8C5C3E8C5C3E7C4C3E8C6C4ECCBC8ECC9C7ECC7C5EBC7C5ECC8C6
+ EBC6C4ECC6C3EBC4C2EAC2C0EAC3C1E8C2BFEBC2BFECC3C1EAC0BEEAC3C1EBC4
+ C1EFC3C2EBC2C0EBC2BFECC2C0EBC6C4EAC3C1ECC6C3EDC4C2EAC2C0EBC5C2EF
+ C9C6EAC4C1EFC8C6EFCAC7ECC4C2EEC7C5F1CCCAEBC5C4EBC5C3EBC5C3EFCBC9
+ F0CCCBEDCDCCE7C7C5E6C5C3ECCBC9E7C6C5ECCDCBEACCCAEACBCAEACAC9ECCD
+ CCEFD0CFEDCFCEE7CCCBEED3D2EFD4D3EACFCFE9CECEECD0CFEFD3D3ECD3D2EA
+ D2D1EFD7D6E9D2D1ECD4D4EFD8D6EED7D6EED6D6EED7D6ECD5D4EFD8D7EFD8D8
+ EAD3D3F1D9D8E4CDCCE1CAC9F1DAD9DBC4C3F3DCDBEFD9D7E8D2D1EAD5D4EDD8
+ D7ECD7D6EEDADAEBD7D6E5D4D3ECDCDCDED0D0DFD1D1E5D7D7EDDEDEE3D4D4EB
+ DBDBE9D9DAE9D8D8EEDDDDE6D6D6EDDFDFEADCDBEADCDCEADCDBECDDDDECDDDC
+ F0E1E1E6D9D8EBDDDCFBEDEC746C6C0000007A7271F5E4E3EAD9D8E8D8D7E7D8
+ D7EFDFDFF0E0E0EEDEDDEFDFDFE1D0CFE7D6D5EADBD9F0DFDEEBDAD9EDDBDAED
+ D9D8E7D4D3E8D4D3E2CECDE8D4D3EFDAD9ECD6D5E9D5D5E9D6D5E7D3D3E7D3D2
+ EAD6D5ECD8D7ECD8D7EBD7D6EDDAD9EBD9D8EDDADAE8D5D5E9D5D5E9D4D3EDD8
+ D7EBD5D4EED9D7F1DBDAEDD6D6E8D2D0EFD8D7EFD7D6EBD4D3EED6D5EBD1D0EE
+ D5D5E8D0CEEBD2D1EED4D3EBD0D0E7CBCAE7CCCAEACECDF2D4D3F0D2D0ECCDCB
+ F0D0CEF0D0CEEBCBC9E1C1C0E1C2C0EBCBC9ECCAC8EBC9C8F1CFCDEBC9C8EBCB
+ C9ECCBC9EBC8C6EAC7C5ECCAC7EDC9C7ECC8C6EDC7C5EFC9C8EDC5C4EDC9C7EF
+ C8C6EEC6C4EDC4C2EAC2C0EBC5C3E6C1BEECC3C1E9C2C0EBC3C1ECC4C2E9C6C3
+ EBC6C4EEC8C5ECC5C4EAC3C1E9C5C2EEC8C5E9C4C2EDC7C5EDC8C5ECC5C3E8C1
+ BFE9C5C3E9C5C2E6C1BFE9C4C2EECAC8EECBC9EECFCDEBCDCBE9C9C8EBCBCAE5
+ C5C4E9CAC9E3C5C4EACCCBEBCDCCECCECCEBCDCBECCECDE8CCCBEAD0CFEED4D3
+ ECD1D1EED3D3EFD4D4F0D5D4EED3D3EDD4D4ECD5D4EED7D6E7CFCEE9D2D1F1DA
+ D9ECD5D4EBD3D3E7D0CFE9D3D2EED9D9EAD6D5EBD5D5EBD6D5DAC5C4DBC6C5E0
+ CACAF1DCDBF0DBDCEBD7D7EDDADAF1DDDCEDD9D8F0DCDBF2DEDDE7D5D5E8D7D7
+ DACBCCE0D1D0E3D4D4EDE0E0E8D9DAEBDDDDE9DADAEBDBDBE5D5D5DFD0D0DED0
+ CFE0D1D1E5D5D5E3D4D4ECDEDDEADBDBECDEDDF2E3E3F2E4E4FFF5F47A727200
+ 000078706FF7E6E5EBDADAEBDBDBEBDCDCE9DADAEDDDDDEEDFDEEDDDDDE0CFCF
+ E1D1D0E8D7D6E8D7D6E9D7D7EDDAD9F0DDDCEEDBD9F1DEDDEFDBDAE9D5D4E8D3
+ D3E9D5D4EFDBDAEDDAD9EAD7D6E6D3D3ECD9D8ECD8D8EFDCDBECD8D8EBD9D7EA
+ D7D6EEDADAECD8D8EBD6D6E9D4D4ECD7D6E8D2D2EDD8D7EBD5D5ECD4D5E7D0CF
+ EED6D5F0D9D7ECD4D4EBD3D2E7CFCEEBD4D2E6CDCCE7CDCCEED3D2EDD1D0EACF
+ CEEBD0CFECD0CFEACDCBECCDCCEECFCDEDCFCDECCDCCEECFCDECCDCBECCDCCEC
+ CDCCECCBC9EBCBC9F0CFCDE7C7C5E9C8C6ECCBC9E8C5C4E8C6C4EDCAC8EDCAC8
+ EBC7C4E6C1BFEEC8C7ECC6C5EBC8C6E8C1BFEAC2C1EFC7C6EEC7C4EFCBC9EDC8
+ C6F0C8C6ECC6C3ECC6C3EBC4C1EBC8C5EAC6C3EEC8C7EDC7C5EDC5C3EECAC8EE
+ C9C7EAC6C3EEC9C7F0CBCAF2CDCBF2CCCAEAC6C5EBC9C7EBC8C7EAC6C5EAC8C6
+ EBCAC9ECCCCAECCFCDECCECDEDCDCDEACBC9ECCDCBE7C9C7E6C9C8E4C8C6E5C8
+ C7EBCDCCF0D2D1E8CCCAE5CAC9EBD0D0E9D0CFECD3D2EDD4D3EAD0D0EBD1D1ED
+ D4D4E9D1D1EBD4D3E5CFCEE9D2D2F0D9D8F0DAD9F1DBDBEBD6D5E8D4D3E9D5D5
+ E7D3D3E6D2D1F0DCDBE9D4D3E5D2D1E6D3D2ECD9D8ECD9D8E5D1D1E3CFCFE9D5
+ D4EAD6D6EEDBDBF3E0DFEDDADAEBDAD9E9D9D9E4D4D4E6D7D7EADCDDE8D9DAEA
+ DCDCE5D7D7EBDCDBECDCDCE9DBDBE7D9D8ECDDDDEEDDDDEDDDDDEAD9D9E1D1D1
+ E3D4D4E9D9D8E9DAD9FFF4F37B7272000000787070E8D7D7E5D3D4E9DAD9EDDF
+ DEEDDEDEEFE0DFF0E0DFDBCBCADECECEECDBDBF3E3E2DFCECDDFCCCBEFDBDAF1
+ DEDDF7E3E2F6E2E1F2DEDDF2DEDCDECAC9DBC7C6E0CDCCEFDCDCF0DDDCEAD7D6
+ F1DEDEEEDBDAEEDCDBECD9D9EFDBDAEEDAD9F0DBDAF1DBDBEFD9D9EEDAD9F1DC
+ DBEBD6D5EFD8D8EDD6D6EDD6D5E8D0D0EED7D6EFD7D6F1D9D8EFD9D7EED7D6F1
+ D9D7EFD5D4EDD3D1F3D8D7EFD4D3E9CFCDECD1CFF1D5D3F0D3D1EED0CFEED0CE
+ F1D3D1ECCFCDEDD0CEF0D2D0F0D2D0EFD0CEE3C3C1E8C9C6F5D5D3EACBC9EBCB
+ C9F4D3D0EECCCAE9C7C5EDCBC9EFCCCAF0CCCAE8C4C2ECC7C5ECC8C6EDCBC9E9
+ C3C1E8C3C1EEC8C6EBC6C3EECAC9EBC7C5F0C8C6EDC7C5EEC9C7ECC5C3EBC8C7
+ E9C5C3EDC8C6F0CCCAEFC9C7EFCCCAF2CECCEDC9C7F0CCCAF3D0CDF4D1CFF5D1
+ CFF4D0CEEDCBCAEFCECCEDCCCBE6C5C4EBCAC8ECCBCAEBCDCCEDD1D0ECCFCDEA
+ CCCAECCDCCEED0CFEED1D0EED3D1E9CDCCE7CAC9ECCECDEACDCCDFC3C2E4CAC9
+ EDD4D3EFD7D6F1DAD8EAD1D0ECD2D2EED5D4EBD2D1F0D7D7E9D1D0EAD3D2EED8
+ D8E8D2D1ECD6D6DFCAC9EAD6D6EDD9D9EEDADAE9D5D5EFDBDAF0DCDBF0DCDCDF
+ CACAE3CFCFF2DFDEECD8D8EAD7D6EFDCDBEBD7D7EEDADAF0DDDCF3DFDFEEDCDC
+ F0DEDEEBDADAE9D9D9EADBDBE8D8D8F0DFDFE8D8D8EADADAEADCDCEEE0DFE9DA
+ DAEADADAE9D8D7ECDBDAF4E4E3EDDDDCEDDDDDF0E0E0E7D8D6FFF6F4736A6A00
+ 0000797071E8D6D6E1D0D0E5D6D5DDCFCEDDCFCFE0D1D1EADAD9D8C7C7DACACA
+ E1D1CFE6D5D5DECDCDD8C6C5DBC8C7DBC7C6E5D2D1DFCBCADAC7C6ECD9D8EDD9
+ D8E2CECED3C0C0E7D5D4F0DDDDEBD8D7DFCCCBE0CDCCDDCAC9E1CDCDDECAC9DB
+ C7C6E5D0D0F1DCDCE0CCCBE3CECDEBD6D5E0CBCAE3CDCDEFD8D7E7D0CFDBC4C3
+ DFC8C7E9D3D1EFD9D8E9D3D2EAD3D2EFD5D4E8CECCE3C8C7EACFCEF1D7D6E2C7
+ C6E5C9C7F1D4D2E8CAC9E0C3C1E4C7C5EDD1CFE8CCCAE3C6C4E9CBC9E4C6C4EC
+ CDCBE4C4C2E2C2C1EACBC9EECFCDE8C8C6E5C4C2E5C4C2EDCDCBEDCCCAE1BEBC
+ F2CECCF0CCCAF0CCCAE7C6C4E5C3C1E6C1BFE6C1BFE4BFBDE7C3C1E1BEBDE3BE
+ BCF0C9C7E6C1BFE5C1BFE7C2C0E5C3C0EFCDCAE2BEBBECC9C7EEC9C8E0BDBCEA
+ C7C5EDCAC8E5C2C0E8C5C3F2D0CEE8C4C3EDC9C7EECECDE4C3C2F1D0CFEDCDCC
+ E9C9C7E0C0BEE2C2C1E7CAC9E2C7C5E7CAC9E1C3C2E3C6C5E3C6C6EACFCEE0C5
+ C4EDD1D0EFD3D1EFD3D2DFC3C2E3C8C7E7CCCCE1C8C7E5CDCCEDD5D3E9CFCEE1
+ C8C7E7CFCDF1D8D7E0C8C8E9D2D1E7D0CFDFC9C8E9D4D3DAC6C7E8D4D4E5D1D2
+ DECBCAE3CFCFE9D4D4DCC8C7E6D1D1DCC9C8E1CECCF2DEDDE1CCCCEAD5D4F0DB
+ DBDECAC9DECAC9DCCAC8E5D1D1DECBCAE9D6D5F1DFDFEFDEDEEFDDDDEDDDDDE8
+ D7D7E4D2D2E4D4D4E1D2D2DFD0CFE1D2D1EADBDAE1D2D1E5D5D4E1D1D1E7D8D7
+ E0CFCFE4D4D4E7D7D7F5E8E7746B6B0000007E7575F7E5E3F8E7E6F3E2E2E6D6
+ D5F8E7E8E6D5D5FEEDEDEAD9D8F5E3E2ECDAD8EFDDDDF2DFDFEEDAD9F9E4E3E8
+ D3D2EAD5D4F1DCDBEDD8D7E8D4D2E7D2D1EED8D7FAE6E5FBE7E7F8E4E4E9D6D5
+ ECD7D7F3DFDEEDD9D8F7E2E2E9D3D3F2DDDBE9D3D3FDE9E7E8D3D2F5DFDEEDD6
+ D5F7E0DFEFD7D6F5DDDCEFD6D6F5DDDDEDD5D5F2DBD9FFEDEBFFEAE9FFE6E4FC
+ DFDEE7CBCAFADFDDEDD1CFF2D4D3ECCFCDF9DAD9FFE0DEECCDCCF6D8D6EED0CE
+ FBDEDCF4D6D5F1D2D1F2D1D0F1D0CEFFDEDCF2D1CFF2D2D0EFCFCCEFCECCEBCA
+ C7FAD7D5EFCBCAF6D2D1F9D5D3E6C1BFFCD7D5FFDCDAFBD5D3F0CDCBF5CFCDFA
+ D3D2F1CAC8F3CBC9F5CECDF4D0CEF2CCCAF8CFCDF1CBC9FAD3D1F8D1CEF0CCCA
+ FDD9D8F1CBC9FAD6D3F3CCCAFBD7D5F3CFCEFDD8D6EFCBCAF7D2D1FFDDDAEECA
+ C7FCD7D5F8D4D3E9C7C5FDDAD9FFDDDCFEDDDBF1CFCDF3D2D1F4D5D4F9DBDAF1
+ D4D3F6D7D7F0D1CFF5D6D5F6D7D6F1D3D2FFE5E4FEE2E1FDE0DFEBCDCCF1D4D4
+ F4D8D7F1D5D4FEE2E1FADFDEEED3D1E6CCCBF6DCDBF4DAD9E6CCCBF1D8D7F3DA
+ D9ECD4D3FDE6E6ECD6D7F8E4E3ECD8D7F0DBDAEDD8D7FBE6E6E8D2D2FAE5E4F0
+ DBD9F5DFDFFCE6E5E2CDCCF6E0DFF4DEDDEDD8D7F2DDDCE8D3D2F5E2E1E4CFCE
+ F7E2E2FBE7E7FEEAE9FFECEBF5E1E0E3CFCEFAE5E5E7D5D4F9E7E6ECDADAF8E7
+ E6F0E0DFEBDBDAEFDEDDEEDEDEFEEDECEEDEDDEBDADAEBD9D8FFF5F5837A7A00
+ 00003B3737756D6C787070776F6E6D6565756E6D6D65657870706F6666746B6B
+ 7168687169697168686E65647268686B61616A6160766C6B736969685E5D6F65
+ 657C72717D73737B72727970706D6564716867736969716767756B6A6E646472
+ 69686C6262766C6C6D6363756B6B6E6363786E6D7267677065656E6463726767
+ 6F65656E6463766A6A786C6C776A697669686C5F5E766A697163637467667162
+ 627667677A6B6A6E605F7869697062617467667365647365647466656E5F5E79
+ 69687363637667667566656E5F5E6F5F5E7B6C6A74636372616171605F6C5B5A
+ 715F5E78666575646374636272615F7A68677362607462617361617867667462
+ 627462617463617564627A686774636273636274626175656372615F7A696874
+ 64637867667262617665647A696870605F76656470605F6E5F5E736463796968
+ 7767677363626E5F5E7364637668676F61617769687263637466657365647264
+ 647A6C6C776B6A7366666D605F6E6160746665716363786B6A776B6A6E62616E
+ 6262766A697064646D61606E61607165657065647469686E64647369696E6464
+ 736969706666746A6A6F6565776D6D706666736968746A6A6F6565756B6A7168
+ 67736969766C6C6F6565736A696B6261776D6D776E6D746B6A766D6C72696869
+ 5F5E7065656B6160746B6B6D6565776E6E6F6867726A6A746C6C6D65657A7272
+ 736B6B6961616C6464817B7B3D3939000000}
+ ShowHint = True
+ Transparent = True
+ OnClick = Image1Click
+ end
+ object MediaPlayer1: TMediaPlayer
+ Left = 88
+ Top = 1
+ Width = 253
+ Height = 30
+ Display = Panel1
+ FileName = 'C:\WINNT\winnt256.bmp'
+ Visible = False
+ TabOrder = 0
+ end
+ end
+ object pnlAvailable: TPanel
+ Left = 0
+ Top = 81
+ Width = 281
+ Height = 326
+ Align = alLeft
+ BevelOuter = bvNone
+ TabOrder = 1
+ object Panel2: TPanel
+ Left = 0
+ Top = 296
+ Width = 281
+ Height = 30
+ Align = alBottom
+ BevelOuter = bvNone
+ TabOrder = 0
+ object SpeedButton4: TSpeedButton
+ Left = 200
+ Top = 3
+ Width = 65
+ Height = 25
+ Caption = 'I&nstall'
+ Flat = True
+ Glyph.Data = {
+ 76010000424D7601000000000000760000002800000020000000100000000100
+ 0400000000000001000000000000000000001000000010000000000000000000
+ 800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
+ FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
+ 33333333FF33333333FF333993333333300033377F3333333777333993333333
+ 300033F77FFF3333377739999993333333333777777F3333333F399999933333
+ 33003777777333333377333993333333330033377F3333333377333993333333
+ 3333333773333333333F333333333333330033333333F33333773333333C3333
+ 330033333337FF3333773333333CC333333333FFFFF77FFF3FF33CCCCCCCCCC3
+ 993337777777777F77F33CCCCCCCCCC3993337777777777377333333333CC333
+ 333333333337733333FF3333333C333330003333333733333777333333333333
+ 3000333333333333377733333333333333333333333333333333}
+ NumGlyphs = 2
+ OnClick = Button2Click
+ end
+ object SpeedButton5: TSpeedButton
+ Left = 4
+ Top = 3
+ Width = 65
+ Height = 25
+ Caption = '&Info'
+ Flat = True
+ OnClick = SpeedButton5Click
+ end
+ object SpeedButton6: TSpeedButton
+ Left = 69
+ Top = 3
+ Width = 65
+ Height = 25
+ Caption = '&Select'
+ Flat = True
+ OnClick = Button5Click
+ end
+ object SpeedButton7: TSpeedButton
+ Left = 135
+ Top = 3
+ Width = 65
+ Height = 25
+ Caption = 'Select &All'
+ Flat = True
+ OnClick = Button6Click
+ end
+ end
+ object PageControl1: TPageControl
+ Left = 0
+ Top = 24
+ Width = 281
+ Height = 272
+ ActivePage = TabSheet1
+ Align = alClient
+ MultiLine = True
+ TabOrder = 1
+ object TabSheet1: TTabSheet
+ Caption = 'Local'
+ object localTree: TTreeView
+ Left = 0
+ Top = 0
+ Width = 273
+ Height = 244
+ Align = alClient
+ Images = ImageList1
+ Indent = 19
+ ReadOnly = True
+ StateImages = ImageList2
+ TabOrder = 0
+ OnDblClick = localTreeDblClick
+ end
+ end
+ end
+ object Panel8: TPanel
+ Left = 0
+ Top = 0
+ Width = 281
+ Height = 24
+ Align = alTop
+ Alignment = taLeftJustify
+ BevelOuter = bvNone
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -12
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ TabOrder = 2
+ object Label1: TLabel
+ Left = 0
+ Top = 0
+ Width = 53
+ Height = 24
+ Align = alLeft
+ BiDiMode = bdLeftToRight
+ Caption = 'Available'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -12
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentBiDiMode = False
+ ParentFont = False
+ Layout = tlCenter
+ end
+ object Panel3: TPanel
+ Left = 53
+ Top = 0
+ Width = 228
+ Height = 24
+ Align = alClient
+ BevelOuter = bvNone
+ TabOrder = 0
+ object SpeedButton2: TSpeedButton
+ Left = 180
+ Top = 0
+ Width = 23
+ Height = 22
+ Enabled = False
+ Glyph.Data = {
+ 76010000424D7601000000000000760000002800000020000000100000000100
+ 0400000000000001000000000000000000001000000010000000000000000000
+ 800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
+ FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
+ 333333333333333FF3FF3333333333CC30003333333333773777333333333C33
+ 3000333FF33337F33777339933333C3333333377F33337F3333F339933333C33
+ 33003377333337F33377333333333C333300333F333337F33377339333333C33
+ 3333337FF3333733333F33993333C33333003377FF33733333773339933C3333
+ 330033377FF73F33337733339933C33333333FF377F373F3333F993399333C33
+ 330077F377F337F33377993399333C33330077FF773337F33377399993333C33
+ 33333777733337F333FF333333333C33300033333333373FF7773333333333CC
+ 3000333333333377377733333333333333333333333333333333}
+ NumGlyphs = 2
+ Visible = False
+ end
+ object Image2: TImage
+ Left = 72
+ Top = 8
+ Width = 14
+ Height = 16
+ Picture.Data = {
+ 07544269746D617076010000424D760100000000000076000000280000002000
+ 0000100000000100040000000000000100000000000000000000100000001000
+ 0000000000000000800000800000008080008000000080008000808000007F7F
+ 7F00BFBFBF000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF
+ FF0033333333333333333FF3333333333333447333333333333377FFF3333333
+ 3333744473333333333337773FF3333333333444447333333333373F773FF333
+ 333333444444733333333373F3773FF3333333744444447333333337F333773F
+ F333333444444444733333373F3333773FF333334444444444733FFF7FFFFFFF
+ 77FF999999999999999977777777777733773333CCCCCCCCCC3333337333333F
+ 7733333CCCCCCCCC33333337F3333F773333333CCCCCCC3333333337333F7733
+ 333333CCCCCC3333333333733F77333333333CCCCC333333333337FF77333333
+ 33333CCC3333333333333777333333333333CC33333333333333773333333333
+ 3333}
+ Transparent = True
+ end
+ object Label2: TLabel
+ Left = 92
+ Top = 8
+ Width = 87
+ Height = 13
+ Caption = 'Selected for Install'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -12
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ ParentFont = False
+ end
+ object SpeedButton1: TSpeedButton
+ Left = 8
+ Top = 0
+ Width = 23
+ Height = 22
+ Hint = 'Manage Remote Sources'
+ Flat = True
+ Glyph.Data = {
+ 76010000424D7601000000000000760000002800000020000000100000000100
+ 0400000000000001000000000000000000001000000010000000000000000000
+ 800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
+ FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00555555555555
+ 5555555555FFFFF555555555544C4C5555555555F777775FF5555554C444C444
+ 5555555775FF55775F55554C4334444445555575577F55557FF554C4C334C4C4
+ 335557F5577FF55577F554CCC3334444335557555777F555775FCCCCC333CCC4
+ C4457F55F777F555557F4CC33333CCC444C57F577777F5F5557FC4333333C3C4
+ CCC57F777777F7FF557F4CC33333333C4C457F577777777F557FCCC33CC4333C
+ C4C575F7755F777FF5755CCCCC3333334C5557F5FF777777F7F554C333333333
+ CC55575777777777F755553333CC3C33C555557777557577755555533CC4C4CC
+ 5555555775FFFF77555555555C4CCC5555555555577777555555}
+ NumGlyphs = 2
+ ParentShowHint = False
+ ShowHint = True
+ OnClick = SpeedButton1Click
+ end
+ end
+ end
+ end
+ object pnlInstalled: TPanel
+ Left = 284
+ Top = 81
+ Width = 305
+ Height = 326
+ Align = alClient
+ BevelOuter = bvNone
+ TabOrder = 2
+ object Panel5: TPanel
+ Left = 0
+ Top = 296
+ Width = 305
+ Height = 30
+ Align = alBottom
+ BevelOuter = bvNone
+ TabOrder = 0
+ object SpeedButton3: TSpeedButton
+ Left = 8
+ Top = 3
+ Width = 77
+ Height = 25
+ Caption = '&Remove'
+ Flat = True
+ Glyph.Data = {
+ 76010000424D7601000000000000760000002800000020000000100000000100
+ 0400000000000001000000000000000000001000000010000000000000000000
+ 800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
+ FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
+ 333333333333333333FF33333333333330003333333333333777333333333333
+ 300033FFFFFF3333377739999993333333333777777F3333333F399999933333
+ 3300377777733333337733333333333333003333333333333377333333333333
+ 3333333333333333333F333333333333330033333F33333333773333C3333333
+ 330033337F3333333377333CC3333333333333F77FFFFFFF3FF33CCCCCCCCCC3
+ 993337777777777F77F33CCCCCCCCCC399333777777777737733333CC3333333
+ 333333377F33333333FF3333C333333330003333733333333777333333333333
+ 3000333333333333377733333333333333333333333333333333}
+ NumGlyphs = 2
+ OnClick = Button4Click
+ end
+ end
+ object Panel7: TPanel
+ Left = 0
+ Top = 0
+ Width = 305
+ Height = 24
+ Align = alTop
+ Alignment = taLeftJustify
+ BevelOuter = bvNone
+ Caption = 'Installed'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -12
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsBold]
+ ParentFont = False
+ TabOrder = 1
+ end
+ object Panel6: TPanel
+ Left = 0
+ Top = 24
+ Width = 305
+ Height = 272
+ Align = alClient
+ BevelOuter = bvNone
+ TabOrder = 2
+ object installTree: TTreeView
+ Left = 0
+ Top = 0
+ Width = 305
+ Height = 272
+ Align = alClient
+ Indent = 19
+ ParentShowHint = False
+ ReadOnly = True
+ ShowHint = False
+ TabOrder = 0
+ end
+ end
+ end
+ object statusBar: TPanel
+ Left = 0
+ Top = 407
+ Width = 589
+ Height = 22
+ Align = alBottom
+ Alignment = taLeftJustify
+ BevelOuter = bvLowered
+ TabOrder = 3
+ object Panel4: TPanel
+ Left = 436
+ Top = 1
+ Width = 152
+ Height = 20
+ Align = alRight
+ Caption = 'Panel4'
+ TabOrder = 0
+ object progressBar: TProgressBar
+ Left = 1
+ Top = 1
+ Width = 150
+ Height = 18
+ Align = alRight
+ BorderWidth = 2
+ Min = 0
+ Max = 100
+ TabOrder = 0
+ end
+ end
+ end
+ object MainMenu1: TMainMenu
+ Left = 748
+ Top = 4
+ object File1: TMenuItem
+ Caption = '&File'
+ object Exit1: TMenuItem
+ Caption = 'E&xit'
+ OnClick = Exit1Click
+ end
+ end
+ object Option1: TMenuItem
+ Caption = '&Options'
+ object LocalPath1: TMenuItem
+ Caption = '&Local Path...'
+ OnClick = LocalPath1Click
+ end
+ object ManageRemoteSources1: TMenuItem
+ Caption = '&Manage Remote Sources...'
+ OnClick = SpeedButton1Click
+ end
+ end
+ object View1: TMenuItem
+ Caption = '&View'
+ object LockedModules1: TMenuItem
+ Caption = '&Locked Modules'
+ OnClick = LockedModules1Click
+ end
+ end
+ object Help1: TMenuItem
+ Caption = '&Help'
+ object Contents1: TMenuItem
+ Caption = '&Contents'
+ OnClick = Contents1Click
+ end
+ end
+ end
+ object localPathDlg: TOpenDialog
+ Options = [ofNoChangeDir, ofEnableSizing]
+ Left = 716
+ Top = 4
+ end
+ object Timer1: TTimer
+ Left = 524
+ Top = 78
+ end
+ object ImageList1: TImageList
+ Left = 524
+ Top = 110
+ Bitmap = {
+ 494C010105000900040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+ 0000000000003600000028000000400000003000000001002000000000000030
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000FFFF000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FF
+ FF00000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000FFFFFF0000FFFF00FFFFFF0000000000FFFF
+ FF00000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000FFFF0000000000000000
+ 000000000000000000008080800000000000FFFFFF0000FFFF000000000000FF
+ FF00000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000FFFF0000808080008080
+ 80008080800080808000808080000000000000000000FFFFFF00000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000FFFF0000000000000000
+ 0000000000000000000080808000000000000000000000FFFF00000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000FFFF0000FFFF0000FFFF
+ 0000FFFF0000FFFF0000FFFF00000000000000000000FFFFFF00000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000FFFF00000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000FFFF00000000
+ 00000000000080808000000000000000000000000000FFFFFF00000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000FFFF0000FFFF
+ 0000FFFF0000FFFF000000000000000000000000000000FFFF00000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000FF000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000FFFF000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000FF00000000000000FF0000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000BFBFBF000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000C0C0C0000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000FF00000000000000FFFFFF0000000000FF00000000000000000000000000
+ 000000000000000000000000000000000000000000000000000000FFFF000000
+ 00000000000000FFFF0000000000000000000000000000FFFF00000000000000
+ 000000FFFF000000000000000000000000000000000000000000000000000000
+ 000000000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00000000
+ 000000000000000000000000000000000000000000000000000000FFFF000000
+ 00000000000000FFFF0000000000000000000000000000FFFF00000000000000
+ 000000FFFF00000000000000000000000000000000000000000000000000FF00
+ 000000000000FFFFFF00FFFFFF00FFFFFF0000000000FF000000000000000000
+ 00000000000000000000000000000000000000000000000000000000000000FF
+ FF0000FFFF0000FFFF000000000000FFFF000000000000FFFF0000FFFF0000FF
+ FF00000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000000000000000000000FF
+ FF0000FFFF0000FFFF000000000000FFFF000000000000FFFF0000FFFF0000FF
+ FF00000000000000000000000000000000000000000000000000FF000000FF00
+ 0000FF00000000000000FFFFFF00FFFFFF00FFFFFF0000000000FF0000000000
+ 00000000000000000000000000000000000000000000000000000000000000FF
+ FF0000FFFF0000FFFF0000000000FFFFFF000000000000FFFF0000FFFF0000FF
+ FF00000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF000000
+ 00000000000000000000000000000000000000000000000000000000000000FF
+ FF0000FFFF0000FFFF0000000000FFFFFF000000000000FFFF0000FFFF0000FF
+ FF000000000000000000000000000000000000000000FF000000FF000000FF00
+ 0000FF000000FF00000000000000FFFFFF00FFFFFF00FFFFFF0000000000FF00
+ 000000000000000000000000000000000000000000000000000000FFFF0000FF
+ FF0000FFFF0000000000FFFFFF007F7F7F00FFFFFF000000000000FFFF0000FF
+ FF0000FFFF000000000000000000000000000000000000000000000000000000
+ 00000000000000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FF
+ FF0000000000000000000000000000000000000000000000000000FFFF0000FF
+ FF0000FFFF0000000000FFFFFF0080808000FFFFFF000000000000FFFF0000FF
+ FF0000FFFF0000000000000000000000000080000000FF000000FF000000FF00
+ 0000FF000000FF000000FF00000000000000FFFFFF00FFFFFF00FFFFFF000000
+ 0000FF000000000000000000000000000000000000000000000000FFFF0000FF
+ FF0000000000FFFFFF0000FFFF007F7F7F0000FFFF00FFFFFF000000000000FF
+ FF0000FFFF000000000000000000000000000000000000000000000000000000
+ 000000000000FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000000000FFFF
+ FF00000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000008080800000FFFF00FFFFFF000000000000FF
+ FF0000FFFF00000000000000000000000000FF00000080000000FF000000FF00
+ 0000FF000000FF000000FF000000FF00000000000000FFFFFF00FFFFFF00FFFF
+ FF0000000000FF000000000000000000000000FFFF0000FFFF0000FFFF0000FF
+ FF000000000000FFFF00FFFFFF007F7F7F00FFFFFF0000FFFF000000000000FF
+ FF0000FFFF0000FFFF0000FFFF00000000000000000000000000000000000000
+ 00000000000000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF000000000000FF
+ FF000000000000000000000000000000000000000000FFFF0000000000000000
+ 000000000000000000008080800000000000FFFFFF0000FFFF000000000000FF
+ FF0000FFFF0000FFFF0000FFFF000000000000000000FF00000080000000FF00
+ 0000FF00000000000000FF000000FF000000FF00000000000000FFFFFF00FFFF
+ FF00FFFFFF0000000000FF00000000000000000000000000000000FFFF0000FF
+ FF0000000000FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF000000000000FF
+ FF0000FFFF000000000000000000000000000000000000000000000000000000
+ 000000000000FFFFFF0000000000FFFFFF0000000000FFFFFF00000000000000
+ 00000000000000000000000000000000000000000000FFFF0000808080008080
+ 80008080800080808000808080000000000000FFFF00FFFFFF000000000000FF
+ FF0000FFFF000000000000000000000000000000000000000000FF0000008000
+ 0000FF000000FF000000FF00000000000000FF000000FF00000000000000FFFF
+ FF0000000000FF0000000000000000000000000000000000000000FFFF0000FF
+ FF0000FFFF0000000000FFFFFF0000FFFF00FFFFFF000000000000FFFF0000FF
+ FF0000FFFF000000000000000000000000000000000000000000000000000000
+ 00000000000000FFFF000000000000FFFF000000000000FFFF00000000000000
+ 00000000000000000000000000000000000000000000FFFF0000000000000000
+ 000000000000000000008080800000000000FFFFFF000000000000FFFF0000FF
+ FF0000FFFF00000000000000000000000000000000000000000000000000FF00
+ 000080000000FF0000000000000000000000FF000000FF000000FF0000000000
+ 00000000000000000000000000000000000000000000000000000000000000FF
+ FF0000FFFF0000FFFF0000000000000000000000000000FFFF0000FFFF0000FF
+ FF00000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000FFFFFF0000000000FFFFFF00000000000000
+ 00000000000000000000000000000000000000000000FFFF0000FFFF0000FFFF
+ 0000FFFF0000FFFF0000FFFF0000000000000000000000FFFF0000FFFF0000FF
+ FF00000000000000000000000000000000000000000000000000000000000000
+ 0000FF00000080000000FF000000FF000000FF000000FF000000FF000000FF00
+ 00000000000000000000000000000000000000000000000000000000000000FF
+ FF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FF
+ FF00000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000FFFF00000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000FFFF0000FFFF0000FFFF0000FF
+ FF00000000000000000000000000000000000000000000000000000000000000
+ 000000000000FF00000080000000FF000000FF000000FF000000FF0000000000
+ 000000000000000000000000000000000000000000000000000000FFFF000000
+ 00000000000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00000000000000
+ 000000FFFF000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000FFFFFF00000000000000
+ 0000000000000000000000000000000000000000000000000000FFFF00000000
+ 000000000000808080000000000000FFFF0000FFFF0000FFFF00000000000000
+ 000000FFFF000000000000000000000000000000000000000000000000000000
+ 00000000000000000000FF00000080000000FF00000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000FFFF000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000FFFF00000000000000
+ 0000000000000000000000000000000000000000000000000000FFFF0000FFFF
+ 0000FFFF0000FFFF00000000000000FFFF000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000FFFF000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000FFFF000000000000000000000000000000
+ 000000000000000000000000000000000000424D3E000000000000003E000000
+ 2800000040000000300000000100010000000000800100000000000000000000
+ 000000000000000000000000FFFFFF0000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000E00F000000000000E00F000000000000
+ E00F000000000000F00F000000000000F00F000000000000F80F000000000000
+ F00700000000000080070000000000000007000000000000000F000000000000
+ 001F000000000000001F000000000000001F000000000000811F000000000000
+ 811F000000000000C3BF000000000000FFFFFEFFE00FFEFFFDFFFC7FE00FFC7F
+ F8FFFC7FE00FFC7FF07FD837F00FD837E03FE00FF00FE00FC01FE00FF80FE00F
+ 800FC007F007C0070007C007F007800700030001F00700018001C007F00F0007
+ C003C007F01F0007E00FE00FF81F000FF00FE00FFE1F000FF81FD837FF1F8037
+ FC7FFEFFFF1F80FFFFFFFEFFFFBFC2FF00000000000000000000000000000000
+ 000000000000}
+ end
+ object ImageList2: TImageList
+ Left = 524
+ Top = 142
+ Bitmap = {
+ 494C010102000400040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+ 0000000000003600000028000000400000001000000001002000000000000010
+ 00000000000000000000000000000000000000000000FFFFFF00FFFFFF000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000007F7F7F007F7F7F00FFFFFF00FFFF
+ FF00FFFFFF000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000080000000800000007F7F7F000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000007F7F7F007F7F7F007F7F
+ 7F0000000000FFFFFF00FFFFFF00000000000000000000000000000000000000
+ 0000000000000000000000000000000000007F7F7F0080000000800000008000
+ 00007F7F7F000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000007F7F7F0000000000FFFF
+ FF007F7F7F007F7F7F0000000000FFFFFF00FFFFFF0000000000000000000000
+ 0000000000000000000000000000000000000000000080000000800000008000
+ 000080000000800000007F7F7F00000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000000000007F7F7F000000
+ 0000FFFFFF00000000007F7F7F007F7F7F0000000000FFFFFF00FFFFFF000000
+ 0000000000000000000000000000000000000000000000000000800000008000
+ 0000800000008000000080000000800000007F7F7F0000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000007F7F
+ 7F00FFFFFF000000000000000000000000007F7F7F007F7F7F0000000000FFFF
+ FF00FFFFFF0000000000000000000000000000000000000000007F7F7F008000
+ 00008000000080000000800000008000000080000000800000007F7F7F000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000007F7F
+ 7F0000000000FFFFFF00000000000000000000000000000000007F7F7F007F7F
+ 7F0000000000FFFFFF00FFFFFF00000000000000000000000000000000008000
+ 0000800000008000000080000000800000008000000080000000800000008000
+ 00007F7F7F000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF
+ FF007F7F7F00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF007F7F7F007F7F7F00FFFFFF00FFFFFF000000000000000000000000000000
+ 0000800000008000000080000000800000008000000080000000800000008000
+ 000080000000800000007F7F7F00000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000007F7F7F007F7F7F007F7F7F007F7F
+ 7F007F7F7F007F7F7F007F7F7F007F7F7F007F7F7F007F7F7F007F7F7F007F7F
+ 7F0000000000000000007F7F7F007F7F7F000000FF000000FF000000FF000000
+ FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000
+ FF000000FF000000FF000000FF000000FF000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00007F7F7F00000000000000000000000000000000000000000000000000FFFF
+ FF007F7F7F007F7F7F0000000000000000000000000000000000000000000000
+ 0000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00
+ 0000FF000000FF00000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000007F7F
+ 7F00FFFFFF0000000000000000000000000000000000FFFFFF007F7F7F007F7F
+ 7F0000000000000000000000000000000000000000000000000000000000FF00
+ 0000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000007F7F
+ 7F00000000000000000000000000FFFFFF007F7F7F007F7F7F00000000000000
+ 000000000000000000000000000000000000000000000000000000000000FF00
+ 0000FF000000FF000000FF000000FF000000FF000000FF000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000000000007F7F7F000000
+ 000000000000FFFFFF007F7F7F007F7F7F000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000FF000000FF00
+ 0000FF000000FF000000FF000000FF0000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000007F7F7F00FFFFFF00FFFF
+ FF007F7F7F007F7F7F0000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000FF000000FF000000FF00
+ 0000FF000000FF00000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000000000007F7F7F007F7F7F007F7F
+ 7F00000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000000000000000000000000000FF000000FF000000FF00
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000007F7F7F007F7F7F00000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000FF000000FF000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000000000000000000000424D3E000000000000003E000000
+ 2800000040000000100000000100010000000000800000000000000000000000
+ 000000000000000000000000FFFFFF009FFFFFFF0000000007FF1FFF00000000
+ 89FF07FF00000000A27F81FF00000000D49FC07F00000000E727C01F00000000
+ EBC9E007000000008000F00100000000000C000000000000F7E3F00300000000
+ E78FE00F00000000EE3FE03F00000000D8FFC0FF0000000083FF83FF00000000
+ 8FFF8FFF000000003FFF3FFF0000000000000000000000000000000000000000
+ 000000000000}
+ end
+end
diff --git a/apps/windoze/CBuilder5/InstallMgr/MainFrm.h b/apps/windoze/CBuilder5/InstallMgr/MainFrm.h
new file mode 100644
index 0000000..47fe65c
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/MainFrm.h
@@ -0,0 +1,146 @@
+//---------------------------------------------------------------------------
+#ifndef MainFrmH
+#define MainFrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <Dialogs.hpp>
+#include <Menus.hpp>
+#include <ExtCtrls.hpp>
+#include <MPlayer.hpp>
+#include <Graphics.hpp>
+#include <ComCtrls.hpp>
+#include <swmgr.h>
+#include <ImgList.hpp>
+#include <Buttons.hpp>
+#include <NMFtp.hpp>
+#include <NMHttp.hpp>
+#include <Psock.hpp>
+
+
+class VersionInfo {
+ public:
+ int major, minor, minor2, minor3;
+
+ VersionInfo(const char *version);
+ int compare(const VersionInfo &vi) const;
+ bool operator>(const VersionInfo &vi) const {return (compare(vi) > 0);}
+ bool operator<(const VersionInfo &vi) const {return (compare(vi) < 0);}
+ bool operator==(const VersionInfo &vi) const {return (compare(vi) == 0);}
+};
+
+
+class InstallSourceTab : public TControl {
+public:
+ __fastcall InstallSourceTab(TComponent *Owner, const char *confEnt, const char *type);
+ __fastcall ~InstallSourceTab();
+ string Type;
+ string Source;
+ string Directory;
+ string Caption;
+ TTreeView *tree;
+ SWMgr *mgr;
+};
+
+
+//---------------------------------------------------------------------------
+class TMainForm : public TForm
+{
+ class TWebThread;
+ friend class TWebThread;
+__published: // IDE-managed Components
+ TMainMenu *MainMenu1;
+ TMenuItem *File1;
+ TMenuItem *Exit1;
+ TMenuItem *Option1;
+ TMenuItem *LocalPath1;
+ TOpenDialog *localPathDlg;
+ TPanel *Panel1;
+ TMediaPlayer *MediaPlayer1;
+ TImage *Image1;
+ TPanel *pnlAvailable;
+ TPanel *pnlInstalled;
+ TSplitter *Splitter1;
+ TPanel *Panel2;
+ TPanel *Panel5;
+ TPageControl *PageControl1;
+ TTabSheet *TabSheet1;
+ TTreeView *localTree;
+ TPanel *Panel8;
+ TPanel *Panel7;
+ TPanel *Panel6;
+ TTreeView *installTree;
+ TTimer *Timer1;
+ TLabel *Label1;
+ TImageList *ImageList1;
+ TPanel *Panel3;
+ TImageList *ImageList2;
+ TPanel *statusBar;
+ TPanel *Panel4;
+ TProgressBar *progressBar;
+ TSpeedButton *SpeedButton2;
+ TImage *Image2;
+ TLabel *Label2;
+ TMenuItem *ManageRemoteSources1;
+ TSpeedButton *SpeedButton1;
+ TSpeedButton *SpeedButton3;
+ TSpeedButton *SpeedButton4;
+ TSpeedButton *SpeedButton5;
+ TSpeedButton *SpeedButton6;
+ TSpeedButton *SpeedButton7;
+ TMenuItem *View1;
+ TMenuItem *LockedModules1;
+ TMenuItem *Help1;
+ TMenuItem *Contents1;
+ void __fastcall LocalPath1Click(TObject *Sender);
+ void __fastcall FormCreate(TObject *Sender);
+ void __fastcall Button5Click(TObject *Sender);
+ void __fastcall localTreeDblClick(TObject *Sender);
+ void __fastcall Button6Click(TObject *Sender);
+ void __fastcall Image1Click(TObject *Sender);
+ void __fastcall Button4Click(TObject *Sender);
+ void __fastcall Button2Click(TObject *Sender);
+ void __fastcall SpeedButton1Click(TObject *Sender);
+ void __fastcall SpeedButton5Click(TObject *Sender);
+ void __fastcall Exit1Click(TObject *Sender);
+ void __fastcall FormShow(TObject *Sender);
+ void __fastcall LockedModules1Click(TObject *Sender);
+ void __fastcall Contents1Click(TObject *Sender);
+
+private: // User declarations
+
+ SWMgr *manager;
+ SWConfig *installConf;
+ const char *getLocalDir();
+ void setLocalDir(const char *idir);
+ void refreshPageControl();
+ void addSource(InstallSourceTab *ist);
+ void fillAllSourceTrees();
+ void deleteAllModules();
+
+public: // User declarations
+ __fastcall TMainForm(TComponent* Owner);
+ __fastcall ~TMainForm();
+ void __fastcall RefreshRemoteSource(TObject *Sender);
+ int selectAll(TTreeView *tree, bool sel);
+ int removeModule(const char *modName);
+ int installModule(const char *modName, InstallSourceTab *ist = 0);
+ static int createParent(const char *pName);
+ int createPathAndFile(const char *fName);
+ int copyFile(const char *sourceFile, const char *targetFile);
+ int copyFileToCWD(const char *sourceDir, const char *fName);
+ int FTPCopy(InstallSourceTab *ist, const char *src, const char *dest, bool dirTransfer = false, const char *suffix = "");
+ SWMgr *localMgr;
+ bool passive;
+
+protected:
+ virtual void fillInstallTree();
+ virtual void fillSourceTree(const char *sourceConf, TTreeView *tree);
+};
+
+//---------------------------------------------------------------------------
+extern PACKAGE TMainForm *MainForm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/InstallMgr/RemoteMntFrm.cpp b/apps/windoze/CBuilder5/InstallMgr/RemoteMntFrm.cpp
new file mode 100644
index 0000000..148a7fd
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/RemoteMntFrm.cpp
@@ -0,0 +1,160 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "RemoteMntFrm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+
+TRemoteMntForm *RemoteMntForm;
+
+
+class TRemoteSource : public TObject {
+public:
+ string name;
+ string machine;
+ string dir;
+ TRemoteSource(const char *confEnt) {
+ char *buf = new char [ strlen(confEnt) + 1 ];
+
+ strcpy(buf, confEnt);
+
+ name = strtok(buf, "|");
+ machine = strtok(0, "|");
+ dir = strtok(0, "|");
+ delete [] buf;
+ }
+ string getConfEnt() {
+ return name +"|" + machine + "|" + dir;
+ }
+};
+
+
+//---------------------------------------------------------------------------
+__fastcall TRemoteMntForm::TRemoteMntForm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TRemoteMntForm::FormShow(TObject *Sender)
+{
+ ConfigEntMap::iterator loop, end;
+ config = new SWConfig("./InstallMgr.conf");
+ ListBox1->Clear();
+ loop = config->Sections["Sources"].lower_bound("FTPSource");
+ end = config->Sections["Sources"].upper_bound("FTPSource");
+ while (loop != end) {
+ TRemoteSource *rs = new TRemoteSource(loop->second.c_str());
+ ListBox1->Items->AddObject(rs->name.c_str(), rs);
+ loop++;
+ }
+ ListBox1->ItemIndex = 0;
+ ListBox1Click(0);
+ CheckBox1->Checked = (!stricmp((*config)["General"]["PassiveFTP"].c_str(), "true"));
+ checkDisabled();
+}
+
+
+void TRemoteMntForm::checkDisabled() {
+ bool enabled = ListBox1->Items->Count;
+ NameEdit->Enabled = enabled;
+ MachineEdit->Enabled = enabled;
+ DirEdit->Enabled = enabled;
+}
+
+
+//---------------------------------------------------------------------------
+void __fastcall TRemoteMntForm::FormClose(TObject *Sender,
+ TCloseAction &Action)
+{
+ delete config;
+}
+
+
+void __fastcall TRemoteMntForm::SpeedButton4Click(TObject *Sender)
+{
+ ModalResult = mrCancel;
+}
+
+
+void __fastcall TRemoteMntForm::ListBox1Click(TObject *Sender)
+{
+ if (ListBox1->ItemIndex >= 0) {
+ TRemoteSource *rs = (TRemoteSource *)ListBox1->Items->Objects[ListBox1->ItemIndex];
+
+ NameEdit->Text = rs->name.c_str();
+ MachineEdit->Text = rs->machine.c_str();
+ DirEdit->Text = rs->dir.c_str();
+ }
+ else {
+ NameEdit->Text = "";
+ MachineEdit->Text = "";
+ DirEdit->Text = "";
+ }
+}
+
+
+void __fastcall TRemoteMntForm::NameEditChange(TObject *Sender)
+{
+ if (ListBox1->ItemIndex < 0)
+ return;
+ TRemoteSource *rs = (TRemoteSource *)ListBox1->Items->Objects[ListBox1->ItemIndex];
+ rs->name = NameEdit->Text.c_str();
+ ListBox1->Items->Strings[ListBox1->ItemIndex] = rs->name.c_str();
+}
+
+
+void __fastcall TRemoteMntForm::MachineEditChange(TObject *Sender)
+{
+ if (ListBox1->ItemIndex < 0)
+ return;
+ TRemoteSource *rs = (TRemoteSource *)ListBox1->Items->Objects[ListBox1->ItemIndex];
+ rs->machine = MachineEdit->Text.c_str();
+}
+
+
+void __fastcall TRemoteMntForm::DirEditChange(TObject *Sender)
+{
+ if (ListBox1->ItemIndex < 0)
+ return;
+ TRemoteSource *rs = (TRemoteSource *)ListBox1->Items->Objects[ListBox1->ItemIndex];
+ rs->dir = DirEdit->Text.c_str();
+}
+
+void __fastcall TRemoteMntForm::SpeedButton2Click(TObject *Sender)
+{
+ if (ListBox1->ItemIndex < 0)
+ return;
+ int delItem = ListBox1->ItemIndex;
+ ListBox1->Items->Delete(delItem);
+ ListBox1->ItemIndex = (delItem < ListBox1->Items->Count) ? delItem : delItem - 1;
+ checkDisabled();
+ ListBox1Click(0);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TRemoteMntForm::SpeedButton1Click(TObject *Sender)
+{
+ TRemoteSource *rs = new TRemoteSource("[New Remote Site]|ftp.domain.org|/pub/sword/raw/");
+ ListBox1->ItemIndex = ListBox1->Items->AddObject(rs->name.c_str(), rs);
+
+ checkDisabled();
+ ListBox1Click(0);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TRemoteMntForm::SpeedButton3Click(TObject *Sender)
+{
+ TRemoteSource *rs;
+ config->Sections["Sources"].erase("FTPSource");
+ for (int i = 0; i < ListBox1->Items->Count; i++) {
+ rs = (TRemoteSource *)ListBox1->Items->Objects[i];
+ config->Sections["Sources"].insert(ConfigEntMap::value_type("FTPSource", rs->getConfEnt().c_str()));
+ }
+ (*config)["General"]["PassiveFTP"] = (CheckBox1->Checked) ? "true" : "false";
+ config->Save();
+ ModalResult = mrOk;
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder5/InstallMgr/RemoteMntFrm.dfm b/apps/windoze/CBuilder5/InstallMgr/RemoteMntFrm.dfm
new file mode 100644
index 0000000..e2b7c64
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/RemoteMntFrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder5/InstallMgr/RemoteMntFrm.h b/apps/windoze/CBuilder5/InstallMgr/RemoteMntFrm.h
new file mode 100644
index 0000000..67c825d
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/RemoteMntFrm.h
@@ -0,0 +1,52 @@
+//---------------------------------------------------------------------------
+#ifndef RemoteMntFrmH
+#define RemoteMntFrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <Buttons.hpp>
+#include <ExtCtrls.hpp>
+#include <swconfig.h>
+//---------------------------------------------------------------------------
+class TRemoteMntForm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TPanel *Panel2;
+ TPanel *Panel3;
+ TListBox *ListBox1;
+ TSpeedButton *SpeedButton1;
+ TSpeedButton *SpeedButton2;
+ TEdit *NameEdit;
+ TEdit *MachineEdit;
+ TEdit *DirEdit;
+ TPanel *Panel4;
+ TSpeedButton *SpeedButton3;
+ TSpeedButton *SpeedButton4;
+ TLabel *Label1;
+ TLabel *Label2;
+ TLabel *Label3;
+ TCheckBox *CheckBox1;
+ void __fastcall FormShow(TObject *Sender);
+ void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
+ void __fastcall NameEditChange(TObject *Sender);
+ void __fastcall SpeedButton4Click(TObject *Sender);
+ void __fastcall ListBox1Click(TObject *Sender);
+ void __fastcall MachineEditChange(TObject *Sender);
+ void __fastcall DirEditChange(TObject *Sender);
+ void __fastcall SpeedButton2Click(TObject *Sender);
+ void __fastcall SpeedButton1Click(TObject *Sender);
+ void __fastcall SpeedButton3Click(TObject *Sender);
+private: // User declarations
+ SWConfig *config;
+ void checkDisabled();
+
+public: // User declarations
+ __fastcall TRemoteMntForm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TRemoteMntForm *RemoteMntForm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/InstallMgr/StatusFrm.cpp b/apps/windoze/CBuilder5/InstallMgr/StatusFrm.cpp
new file mode 100644
index 0000000..e565c0a
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/StatusFrm.cpp
@@ -0,0 +1,201 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "StatusFrm.h"
+#include "MainFrm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma link "IdBaseComponent"
+#pragma link "IdComponent"
+#pragma link "IdFTP"
+#pragma link "IdTCPClient"
+#pragma link "IdTCPConnection"
+#pragma resource "*.dfm"
+TStatusForm *StatusForm;
+//---------------------------------------------------------------------------
+__fastcall TStatusForm::TStatusForm(TComponent* Owner)
+ : TForm(Owner) {
+ suffix = "";
+ passive = false;
+}
+//---------------------------------------------------------------------------
+void __fastcall TStatusForm::FormShow(TObject *Sender)
+{
+ abort = false;
+ ftpThread = new TFTPThread(ist, src.c_str(), dest.c_str(), dirTransfer, passive, true, suffix.c_str());
+ ftpThread->OnTerminate = Cleanup;
+ ftpThread->Resume();
+}
+//---------------------------------------------------------------------------
+__fastcall TStatusForm::TFTPThread::TFTPThread(InstallSourceTab *iist, const char *isrc, const char *idest, bool idirTransfer, bool CreateSuspended, bool ipassive, const char *isuffix)
+ : TThread(CreateSuspended)
+{
+ ist = iist;
+ src = isrc;
+ dest = idest;
+ suffix = isuffix;
+ dirTransfer = idirTransfer;
+ Priority = tpNormal;
+ passive = ipassive;
+ FreeOnTerminate = true;
+ Synchronize((TThreadMethod)&CreateFTPObject);
+}
+
+__fastcall TStatusForm::TFTPThread::~TFTPThread()
+{
+}
+
+
+void __fastcall TStatusForm::TFTPThread::Execute()
+{
+ Synchronize((TThreadMethod)&PreConnect);
+ StatusForm->ftpCon->Host = ist->Source.c_str();
+ StatusForm->ftpCon->Username = "ftp";
+ StatusForm->ftpCon->Password = "installmgr@user.com";
+ StatusForm->ftpCon->Passive = passive;
+
+ try {
+ StatusForm->ftpCon->Connect(true, -1);
+ StatusForm->ftpCon->TransferType = ftBinary;
+ StatusForm->ftpCon->ChangeDir(ist->Directory.c_str());
+ }
+ catch(...) {
+ MessageBox(0, "Can't connect. Please check your configuration.", "Connection Error", MB_OK);
+ StatusForm->Button1Click(0); // abort thread
+ }
+
+ if (!Terminated) {
+ if (dirTransfer) {
+ StatusForm->ftpCon->ChangeDir(src.c_str());
+ TStringList *dirText = new TStringList();
+ StatusForm->ftpCon->List(dirText, "*", true);
+ TIdFTPListItems *dirList = StatusForm->ftpCon->DirectoryListing;
+ for (int i = 0; i < dirList->Count; i++) {
+ if (dirList->Items[i]->ItemType != ditDirectory) {
+ buffer = dest + "/" + (dirList->Items[i]->FileName.c_str() /*+ 55*/);
+// files->Strings[i].c_str();
+ if (!strcmp(&buffer.c_str()[buffer.length()-suffix.length()], suffix.c_str())) {
+ buffer2 = "Downloading (";
+ buffer2 += IntToStr(i+1).c_str();
+ buffer2 += " of ";
+ buffer2 += IntToStr(dirList->Count).c_str();
+ buffer2 += "): ";
+ buffer2 += (dirList->Items[i]->FileName.c_str() /*+ 55*/);
+ // SWLog::systemlog->LogInformation("%s", buffer.c_str());
+ TMainForm::createParent(buffer.c_str()); // make sure parent directory exists
+ Synchronize((TThreadMethod)&PreDownload1);
+ try {
+ StatusForm->currentFileSize = dirList->Items[i]->Size;
+ StatusForm->ftpCon->Get(dirList->Items[i]->FileName.c_str() /* + 55*/, buffer.c_str(), true, false);
+ }
+ catch(...) {
+ MessageBox(0, "Can't download file. If you have not done so recently, you might try pressing the Refresh from Remote Source button.", "Download Error", MB_OK);
+ StatusForm->Button1Click(0); // abort thread
+ }
+ if (Terminated)
+ break;
+ }
+ }
+ }
+ }
+ else {
+ Synchronize((TThreadMethod)&PreDownload2);
+ try {
+ StatusForm->ftpCon->Get(src.c_str(), dest.c_str(), true, false);
+ }
+ catch(...) {StatusForm->abort = true;}
+ }
+ try {
+ StatusForm->ftpCon->Disconnect();
+ }
+ catch(...){}
+ }
+}
+
+
+void __fastcall TStatusForm::TFTPThread::FTPLinkPacketRecvd(TObject *Sender)
+{
+// Synchronize((TThreadMethod)&UpdateBytes);
+}
+
+
+//void __fastcall TStatusForm::TFTPThread::UpdateBytes(void) {
+void __fastcall TStatusForm::UpdateBytes(void) {
+ StatusForm->statusBar->Caption = IntToStr(StatusForm->currentByteCount) + " bytes out of " + IntToStr(StatusForm->currentFileSize) + " transferred (" + IntToStr((int)((float)(StatusForm->currentByteCount + 1) / (float)(StatusForm->currentFileSize + 1) * 100)) + "%)";
+ StatusForm->statusBar->Repaint();
+}
+
+
+void __fastcall TStatusForm::TFTPThread::CreateFTPObject(void)
+{
+// FTPLink = new TNMFTP(0);
+}
+
+
+void __fastcall TStatusForm::TFTPThread::PreConnect(void)
+{
+ buffer = "Connecting to server at ";
+ buffer += ist->Source.c_str();
+ buffer += "...";
+ StatusForm->actionBar->Caption = buffer.c_str();
+ StatusForm->statusBar->Caption = "";
+ StatusForm->Repaint();
+}
+
+
+void __fastcall TStatusForm::TFTPThread::PreDownload1(void)
+{
+// SWLog::systemlog->LogInformation("Creating parent dir: %s", buffer.c_str());
+// SWLog::systemlog->LogInformation("Return: %d", ret);
+ StatusForm->actionBar->Caption = buffer2.c_str();
+ StatusForm->statusBar->Caption = "";
+ StatusForm->Repaint();
+}
+
+
+void __fastcall TStatusForm::TFTPThread::PreDownload2(void)
+{
+ buffer = "Downloading: ";
+ buffer += src.c_str();
+ StatusForm->actionBar->Caption = buffer.c_str();
+ StatusForm->statusBar->Caption = "";
+ StatusForm->Repaint();
+ MainForm->createParent(dest.c_str()); // make sure parent directory exists
+}
+
+
+void __fastcall TStatusForm::Cleanup(TObject *Sender)
+//void __fastcall TStatusForm::TFTPThread::Cleanup()
+{
+ if (abort)
+ StatusForm->ModalResult = mrCancel;
+ else StatusForm->ModalResult = mrOk;
+// StatusForm->Close();
+}
+
+void __fastcall TStatusForm::FormClose(TObject *Sender, TCloseAction &Action)
+{
+ suffix = "";
+ MainForm->SetFocus();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TStatusForm::Button1Click(TObject *Sender)
+{
+ abort = true;
+ ftpCon->Abort();
+ ftpThread->Terminate();
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TStatusForm::ftpConWork(TObject *Sender,
+ TWorkMode AWorkMode, const int AWorkCount)
+{
+ currentByteCount = AWorkCount;
+// Synchronize((TThreadMethod)&UpdateBytes);
+ UpdateBytes();
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder5/InstallMgr/StatusFrm.dfm b/apps/windoze/CBuilder5/InstallMgr/StatusFrm.dfm
new file mode 100644
index 0000000..a6ce359
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/StatusFrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder5/InstallMgr/StatusFrm.h b/apps/windoze/CBuilder5/InstallMgr/StatusFrm.h
new file mode 100644
index 0000000..6e07c8d
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/StatusFrm.h
@@ -0,0 +1,74 @@
+//---------------------------------------------------------------------------
+#ifndef StatusFrmH
+#define StatusFrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+#include <NMFtp.hpp>
+#include "MainFrm.h"
+#include "IdBaseComponent.hpp"
+#include "IdComponent.hpp"
+#include "IdFTP.hpp"
+#include "IdTCPClient.hpp"
+#include "IdTCPConnection.hpp"
+//---------------------------------------------------------------------------
+class TStatusForm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TPanel *Panel2;
+ TButton *Button1;
+ TPanel *statusBar;
+ TPanel *Panel3;
+ TPanel *actionBar;
+ TIdFTP *ftpCon;
+ void __fastcall FormShow(TObject *Sender);
+ void __fastcall Cleanup(TObject *Sender);
+ void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
+ void __fastcall Button1Click(TObject *Sender);
+ void __fastcall ftpConWork(TObject *Sender, TWorkMode AWorkMode,
+ const int AWorkCount);
+private: // User declarations
+ class TFTPThread : public TThread {
+ bool abort;
+ InstallSourceTab *ist;
+ string src;
+ string dest;
+ string buffer;
+ string buffer2;
+ string suffix;
+ bool dirTransfer;
+ bool passive;
+ protected:
+ void __fastcall Execute();
+ public:
+// TNMFTP *FTPLink;
+ __fastcall TFTPThread(InstallSourceTab *iist, const char *isrc, const char *idest, bool idirTransfer = false, bool CreateSuspended = false, bool ipassive = false, const char *suffix = "");
+ __fastcall TFTPThread::~TFTPThread();
+ void __fastcall FTPLinkPacketRecvd(TObject *Sender);
+ void __fastcall CreateFTPObject(void);
+ void __fastcall PreConnect(void);
+ void __fastcall PreDownload1(void);
+ void __fastcall PreDownload2(void);
+// void __fastcall Cleanup(void);
+ } *ftpThread;
+public: // User declarations
+ long currentByteCount;
+ long currentFileSize;
+ InstallSourceTab *ist;
+ string src;
+ string dest;
+ string suffix;
+ bool dirTransfer;
+ bool passive;
+ bool abort;
+ void __fastcall UpdateBytes();
+ __fastcall TStatusForm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TStatusForm *StatusForm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/InstallMgr/UninstallFrm.cpp b/apps/windoze/CBuilder5/InstallMgr/UninstallFrm.cpp
new file mode 100644
index 0000000..98a97d9
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/UninstallFrm.cpp
@@ -0,0 +1,15 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "UninstallFrm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TUninstallForm *UninstallForm;
+//---------------------------------------------------------------------------
+__fastcall TUninstallForm::TUninstallForm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder5/InstallMgr/UninstallFrm.dfm b/apps/windoze/CBuilder5/InstallMgr/UninstallFrm.dfm
new file mode 100644
index 0000000..3a2f310
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/UninstallFrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder5/InstallMgr/UninstallFrm.h b/apps/windoze/CBuilder5/InstallMgr/UninstallFrm.h
new file mode 100644
index 0000000..45fdd7f
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/UninstallFrm.h
@@ -0,0 +1,26 @@
+//---------------------------------------------------------------------------
+#ifndef UninstallFrmH
+#define UninstallFrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ComCtrls.hpp>
+#include <ExtCtrls.hpp>
+//---------------------------------------------------------------------------
+class TUninstallForm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TPanel *Panel2;
+ TProgressBar *ProgressBar1;
+ TLabel *Label1;
+private: // User declarations
+public: // User declarations
+ __fastcall TUninstallForm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TUninstallForm *UninstallForm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/InstallMgr/arrow2r.bmp b/apps/windoze/CBuilder5/InstallMgr/arrow2r.bmp
new file mode 100644
index 0000000..8d5713f
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/arrow2r.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/InstallMgr/arrow3u.bmp b/apps/windoze/CBuilder5/InstallMgr/arrow3u.bmp
new file mode 100644
index 0000000..a1c4068
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/arrow3u.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/InstallMgr/back.bmp b/apps/windoze/CBuilder5/InstallMgr/back.bmp
new file mode 100644
index 0000000..966e157
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/back.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/InstallMgr/bookshut.bmp b/apps/windoze/CBuilder5/InstallMgr/bookshut.bmp
new file mode 100644
index 0000000..5389910
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/bookshut.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/InstallMgr/bulblk.bmp b/apps/windoze/CBuilder5/InstallMgr/bulblk.bmp
new file mode 100644
index 0000000..0da70ab
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/bulblk.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/InstallMgr/bulbon.bmp b/apps/windoze/CBuilder5/InstallMgr/bulbon.bmp
new file mode 100644
index 0000000..61c7e5b
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/bulbon.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/InstallMgr/check.bmp b/apps/windoze/CBuilder5/InstallMgr/check.bmp
new file mode 100644
index 0000000..09307a9
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/check.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/InstallMgr/cipherfrm.cpp b/apps/windoze/CBuilder5/InstallMgr/cipherfrm.cpp
new file mode 100644
index 0000000..5b77797
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/cipherfrm.cpp
@@ -0,0 +1,67 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "cipherfrm.h"
+#include <swmgr.h>
+#include <swconfig.h>
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TCipherForm *CipherForm;
+//---------------------------------------------------------------------------
+__fastcall TCipherForm::TCipherForm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TCipherForm::Button2Click(TObject *Sender)
+{
+ SectionMap::iterator section;
+ ConfigEntMap::iterator entry;
+ SWConfig *modconf = new SWConfig(confFile.c_str());
+ string tmpBuf;
+
+ section = modconf->Sections.find(modName);
+ if (section != modconf->Sections.end()) {
+ entry = section->second.find("CipherKey");
+ if (entry != section->second.end()) {
+ entry->second = CipherForm->cipherEdit->Text.c_str();
+ modconf->Save();
+ delete modconf; // close file
+ modconf = 0;
+ SWMgr *mgr = new SWMgr();
+ SWModule *mod = mgr->Modules[modName];
+ mod->SetKey("Ipet 2:12");
+ tmpBuf = mod->StripText();
+ mod->SetKey("gen 1:10");
+ tmpBuf += "\r\n\r\n";
+ tmpBuf += mod->StripText();
+ Memo1->Text = tmpBuf.c_str();
+ delete mgr;
+ }
+ }
+ if (modconf)
+ delete modconf;
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TCipherForm::FormShow(TObject *Sender)
+{
+ string tmpCaption;
+ tmpCaption = "Cipher Key: [";
+ tmpCaption += modName;
+ tmpCaption += "]";
+ Caption = tmpCaption.c_str();
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TCipherForm::FormClose(TObject *Sender,
+ TCloseAction &Action)
+{
+ Memo1->Text = "";
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder5/InstallMgr/cipherfrm.dfm b/apps/windoze/CBuilder5/InstallMgr/cipherfrm.dfm
new file mode 100644
index 0000000..98d9beb
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/cipherfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder5/InstallMgr/cipherfrm.h b/apps/windoze/CBuilder5/InstallMgr/cipherfrm.h
new file mode 100644
index 0000000..dba1e59
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/cipherfrm.h
@@ -0,0 +1,37 @@
+//---------------------------------------------------------------------------
+#ifndef cipherfrmH
+#define cipherfrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+#include <string>
+//---------------------------------------------------------------------------
+class TCipherForm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TPanel *Panel2;
+ TPanel *Panel3;
+ TLabel *Label1;
+ TLabel *Label2;
+ TEdit *cipherEdit;
+ TMemo *Memo1;
+ TButton *Button1;
+ TButton *Button2;
+ TButton *Button3;
+ void __fastcall Button2Click(TObject *Sender);
+ void __fastcall FormShow(TObject *Sender);
+ void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
+private: // User declarations
+public: // User declarations
+ std::string confFile;
+ std::string modName;
+ __fastcall TCipherForm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TCipherForm *CipherForm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/InstallMgr/delete.bmp b/apps/windoze/CBuilder5/InstallMgr/delete.bmp
new file mode 100644
index 0000000..d20cbf9
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/delete.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/InstallMgr/filenew.bmp b/apps/windoze/CBuilder5/InstallMgr/filenew.bmp
new file mode 100644
index 0000000..59fb3db
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/filenew.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/InstallMgr/floppy.bmp b/apps/windoze/CBuilder5/InstallMgr/floppy.bmp
new file mode 100644
index 0000000..5fbef0a
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/floppy.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/InstallMgr/globe.bmp b/apps/windoze/CBuilder5/InstallMgr/globe.bmp
new file mode 100644
index 0000000..e4b661d
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/globe.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/InstallMgr/insert.bmp b/apps/windoze/CBuilder5/InstallMgr/insert.bmp
new file mode 100644
index 0000000..7cc35c5
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/insert.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/InstallMgr/installmgr.conf b/apps/windoze/CBuilder5/InstallMgr/installmgr.conf
new file mode 100644
index 0000000..04a349b
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/installmgr.conf
@@ -0,0 +1,8 @@
+
+[General]
+PassiveFTP=true
+
+[Sources]
+FTPSource=crosswire|ftp.crosswire.org|/pub/sword/raw/
+LocalPath=C:\tmp
+
diff --git a/apps/windoze/CBuilder5/InstallMgr/query.bmp b/apps/windoze/CBuilder5/InstallMgr/query.bmp
new file mode 100644
index 0000000..36cd506
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/query.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/InstallMgr/sword.bmp b/apps/windoze/CBuilder5/InstallMgr/sword.bmp
new file mode 100644
index 0000000..32c5606
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/sword.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/InstallMgr/trash.bmp b/apps/windoze/CBuilder5/InstallMgr/trash.bmp
new file mode 100644
index 0000000..effbab9
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/trash.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/InstallMgr/undo.bmp b/apps/windoze/CBuilder5/InstallMgr/undo.bmp
new file mode 100644
index 0000000..fc4fff6
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/undo.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/InstallMgr/upgdlk.bmp b/apps/windoze/CBuilder5/InstallMgr/upgdlk.bmp
new file mode 100644
index 0000000..4158452
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/upgdlk.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/InstallMgr/zlib.bpf b/apps/windoze/CBuilder5/InstallMgr/zlib.bpf
new file mode 100644
index 0000000..a725d34
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/zlib.bpf
@@ -0,0 +1,25 @@
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+USEUNIT("..\..\..\..\src\utilfuns\zlib\adler32.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\compress.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\crc32.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\deflate.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\gzio.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\infblock.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\infcodes.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\inffast.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\inflate.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\inftrees.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\infutil.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\maketree.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\trees.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\uncompr.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\untgz.c");
+USEUNIT("..\..\..\..\src\utilfuns\zlib\zutil.c");
+//---------------------------------------------------------------------------
+#define Library
+
+// To add a file to the library use the Project menu 'Add to Project'.
+
diff --git a/apps/windoze/CBuilder5/InstallMgr/zlib.bpr b/apps/windoze/CBuilder5/InstallMgr/zlib.bpr
new file mode 100644
index 0000000..635316b
--- /dev/null
+++ b/apps/windoze/CBuilder5/InstallMgr/zlib.bpr
@@ -0,0 +1,126 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="zlib.lib"/>
+ <OBJFILES value="..\..\..\..\src\utilfuns\zlib\adler32.obj
+ ..\..\..\..\src\utilfuns\zlib\compress.obj
+ ..\..\..\..\src\utilfuns\zlib\crc32.obj
+ ..\..\..\..\src\utilfuns\zlib\deflate.obj
+ ..\..\..\..\src\utilfuns\zlib\gzio.obj
+ ..\..\..\..\src\utilfuns\zlib\infblock.obj
+ ..\..\..\..\src\utilfuns\zlib\infcodes.obj
+ ..\..\..\..\src\utilfuns\zlib\inffast.obj
+ ..\..\..\..\src\utilfuns\zlib\inflate.obj
+ ..\..\..\..\src\utilfuns\zlib\inftrees.obj
+ ..\..\..\..\src\utilfuns\zlib\infutil.obj
+ ..\..\..\..\src\utilfuns\zlib\maketree.obj
+ ..\..\..\..\src\utilfuns\zlib\trees.obj
+ ..\..\..\..\src\utilfuns\zlib\uncompr.obj
+ ..\..\..\..\src\utilfuns\zlib\untgz.obj
+ ..\..\..\..\src\utilfuns\zlib\zutil.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <IDLGENFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value=""/>
+ <LIBRARIES value=""/>
+ <PACKAGES value=""/>
+ <PATHCPP value=".;..\..\..\..\src\utilfuns\zlib"/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <LINKER value="TLib"/>
+ <USERDEFINES value=""/>
+ <SYSDEFINES value="_RTLDLL;NO_STRICT"/>
+ <MAINSOURCE value="zlib.bpf"/>
+ <INCLUDEPATH value="..\..\..\..\src\utilfuns\zlib;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include"/>
+ <LIBPATH value="..\..\..\..\src\utilfuns\zlib;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par"/>
+ <LISTFILE value=""/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I..\..\..\..\src\utilfuns\zlib -I$(BCB)\include -I$(BCB)\include\vcl
+ -I..\..\..\..\include -src_suffix cpp -boa"/>
+ <CFLAG1 value="-O2 -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -a8 -b- -k- -vi -c -tW -tWM"/>
+ <PFLAGS value="-$Y- -$L- -$D- -v -JPHNE -M"/>
+ <AFLAGS value="/mx /w2 /zn"/>
+ <LFLAGS value=""/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="$(OBJFILES)"/>
+ <ALLLIB value=""/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+Count=2
+Item0=..\..\..\..\src\utilfuns\zlib;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
+Item1=..\..\..\..\src\utilfuns\zlib;$(BCB)\include;$(BCB)\include\vcl
+
+[HistoryLists\hlLibraryPath]
+Count=1
+Item0=..\..\..\..\src\utilfuns\zlib;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=1
+Item0=_DEBUG
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=0
+
+[CORBA]
+AddServerUnit=1
+AddClientUnit=1
+PrecompiledHeaders=1
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/prototype/AboutBoxfrm.cpp b/apps/windoze/CBuilder5/prototype/AboutBoxfrm.cpp
new file mode 100644
index 0000000..39ca670
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/AboutBoxfrm.cpp
@@ -0,0 +1,85 @@
+//---------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "AboutBoxfrm.h"
+#include "mainfrm.h"
+//---------------------------------------------------------------------
+#pragma resource "*.dfm"
+TAboutBox *AboutBox;
+//---------------------------------------------------------------------
+__fastcall TAboutBox::TAboutBox(TComponent* AOwner)
+ : TForm(AOwner)
+{
+}
+//---------------------------------------------------------------------
+void __fastcall TAboutBox::FormShow(TObject *Sender)
+{
+ int i;
+ static char *modtypes[] = {"Biblical Texts", "Commentaries", "Lexicons / Dictionaries"};
+
+ AnsiString newtext, tmptext;
+ ModMap::iterator it;
+ SectionMap::iterator it2;
+ TMemoryStream *RTFStream = new TMemoryStream();
+
+ newtext = "{\\rtf1\\ansi{\\fonttbl{\\f4\\froman\\fcharset0\\fprq2 Times New Roman;}}{\\colortbl;\\red0\\green0\\blue255;\\red0\\green200\\blue50;}";
+ newtext += "\\pard\\qc\\cf2\\nowidctlpar{\\fs30\\b Installed Modules } \\par \\pard \\nowidctlpar \\cf0 ";
+
+ for (i = 0; i < 3; i++) {
+ newtext += "\\par {\\fs28\\b ";
+ newtext += modtypes[i];
+ newtext += " }\\par \\par ";
+ for (it = Form1->mainmgr->Modules.begin(); it != Form1->mainmgr->Modules.end(); it++) {
+ if (!strcmp((*it).second->Type(), modtypes[i])) {
+ it2 = Form1->mainmgr->config->Sections.find((*it).second->Name());
+ if (it2 != Form1->mainmgr->config->Sections.end()) {
+ newtext = newtext + "{\\fs24\\cf1\\b " + (*it).second->Name() + " }\t";
+ newtext = newtext + "{\\fs24\\i " + (*it).second->Description() + " } \\par ";
+ newtext = newtext + "{\\fs20\\cf0 " + (*it2).second["About"].c_str() + " }\\par \\par";
+ }
+ }
+ }
+ }
+ newtext += "{\\fs24 \\par }}";
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(newtext.c_str(), newtext.Length());
+ RTFStream->Position = 0;
+ ModulesAbout->Lines->LoadFromStream(RTFStream);
+
+ newtext = "{\\rtf1\\ansi{\\fonttbl{\\f4\\froman\\fcharset0\\fprq2 Times New Roman;}}{\\colortbl;\\red0\\green0\\blue255;\\red0\\green200\\blue50;}";
+ newtext += "\\fs20 Thanx to God for His GREAT MERCY and LOVE: Never did anyone have so much, give it up so completely, to humble Himself and die such a death, all for such an ENEMY as me. -Philippians 2:6-8; Romans 5:6-10 \\par\\par ";
+ newtext += "For the latest updates and info, visit us on the net at: \\par ";
+ newtext += "http://www.crosswire.org \\par\\par ";
+ newtext += "Send us feedback, bug reports, or patches/additions: \\par ";
+ newtext += "sword-feedback@crosswire.org \\par ";
+ newtext += "sword-bugs@crosswire.org \\par ";
+ newtext += "sword-patches@crosswire.org (please include unified diffs if possible (diff -u)) \\par\\par ";
+ newtext += "To be on our mailing list: \\par ";
+ newtext += "sword-list-info@crosswire.org \\par\\par ";
+ newtext += "This software is provided free for the study of God and His Word. You DO NOT NEED TO license or pay for this software. Please: copy it freely and distribute it to athiests in Russia :), post it on your favorite FTP site, write your own modules and features for it, include it on your lastest freeware CDROM, incorporate all the cool utility classes into a product of your own, write a tract module for the program and sneak it onto all of your co-workers' computers and blame it on a virus, make fun of your pastor for spending $400 dollars on a similar package, give it to your pastor who can't figure out how to use his $400 dollar package :) \\par\\par ";
+ newtext += "OK, if you still feel the need, you can help our organization out at: \\par\\par ";
+ newtext += "CrossWire Software & Bible Society \\par ";
+ newtext += "P. O. Box 2528 \\par ";
+ newtext += "Tempe, AZ 85280-2528 \\par\\par ";
+ newtext += "... but I must warn you, your contributions will probably just go toward paying my way through college, or to give me a little more time to spend on the project :) \\par\\par ";
+ newtext += "\tMay the peace of GOD consume your heart, \\par ";
+ newtext += "\t\tThe SWORD Project Development Team \\par ";
+ newtext += "_________________________________________ \\par ";
+ newtext += "Thanks be to God for all the wonderful people who have contributed in so many ways to make this project possible. These are just a few (I could not possibly name them all) who have directly contributed an abundance of their time and talents: \\par\\par ";
+ newtext += "All the people at The Outpost in Scottsdale for testing and suggestions; The Bible Foundation: Jerry Kingery, Jerry Hastings; Geoffrey W. Hastings; William Dicks; Everyone on b-greek@virginia.edu; Michael Paul Johnson; Roland Nygren; Bill Kincaid; Mark Fuller; Larry Pierce; Franklin Bratcher; Gregory Hall; Luis Cortes\\par \\par ";
+ newtext += "{\\i And the list goes on...} \\par \\par ";
+ newtext += "{\\fs24 \\par }}";
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(newtext.c_str(), newtext.Length());
+ RTFStream->Position = 0;
+ CreditAbout->Lines->LoadFromStream(RTFStream);
+ delete RTFStream;
+
+
+}
+//---------------------------------------------------------------------------
+
+
+
+
diff --git a/apps/windoze/CBuilder5/prototype/AboutBoxfrm.dfm b/apps/windoze/CBuilder5/prototype/AboutBoxfrm.dfm
new file mode 100644
index 0000000..4911690
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/AboutBoxfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder5/prototype/AboutBoxfrm.h b/apps/windoze/CBuilder5/prototype/AboutBoxfrm.h
new file mode 100644
index 0000000..77da4f8
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/AboutBoxfrm.h
@@ -0,0 +1,36 @@
+//----------------------------------------------------------------------------
+#ifndef AboutBoxfrmH
+#define AboutBoxfrmH
+//----------------------------------------------------------------------------
+#include <vcl\System.hpp>
+#include <vcl\Windows.hpp>
+#include <vcl\SysUtils.hpp>
+#include <vcl\Classes.hpp>
+#include <vcl\Graphics.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Buttons.hpp>
+#include <vcl\ExtCtrls.hpp>
+#include <vcl\ComCtrls.hpp>
+//----------------------------------------------------------------------------
+class TAboutBox : public TForm
+{
+__published:
+ TPanel *Panel1;
+ TImage *ProgramIcon;
+ TLabel *ProductName;
+ TLabel *Version;
+ TLabel *Copyright;
+ TButton *OKButton;
+ TRichEdit *CreditAbout;
+ TRichEdit *ModulesAbout;
+ void __fastcall FormShow(TObject *Sender);
+private:
+public:
+ virtual __fastcall TAboutBox(TComponent* AOwner);
+};
+//----------------------------------------------------------------------------
+extern TAboutBox *AboutBox;
+//----------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/prototype/AppBar.cpp b/apps/windoze/CBuilder5/prototype/AppBar.cpp
new file mode 100644
index 0000000..8d7cf98
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/AppBar.cpp
@@ -0,0 +1,234 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "AppBar.h"
+#include "DockCanvas.h"
+#include "ModTabPanel.h"
+#include "biblecsmgr.h"
+#include "BookMarkPanel.h"
+#include "DeskTopNameForm.h"
+#include <versekey.h>
+#include "vrslstfrm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+//#pragma link "MenuBar"
+#pragma resource "*.dfm"
+TAppBarFrm *AppBarFrm;
+//---------------------------------------------------------------------------
+__fastcall TAppBarFrm::TAppBarFrm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TAppBarFrm::FormCreate(TObject *Sender)
+{
+ ImageList1->Add(BackBtnImage->Picture->Bitmap, NULL);
+ ImageList1->Add(SearchBtnImage->Picture->Bitmap, NULL);
+ mainmgr = new BibleCSMGR(ModInstFrm);
+ commonVK = new VerseKey();
+ commonVK->Persist(true);
+ commonSK = new SWKey();
+ commonSK->Persist(true);
+ *commonVK = "Jas 1:19";
+ fillVKeySelector(commonVK);
+ ModMap::iterator it;
+ SWKey *tryKey;
+ for (it = mainmgr->Modules.begin(); it != mainmgr->Modules.end(); it++) {
+ tryKey = it->second->CreateKey();
+ const SWClass *keyClass = tryKey->getClass();
+ bool yes = (keyClass->isAssignableFrom("VerseKey"));
+ SWKey *vkey = (yes) ? commonVK:commonSK;
+ it->second->SetKey(vkey);
+ delete tryKey;
+ }
+ activeDesktop = 0;
+ TextKeyChanged();
+}
+//---------------------------------------------------------------------------
+void __fastcall TAppBarFrm::SpeedButton2Click(TObject *Sender)
+{
+ if (activeDesktop) {
+ TModTabPanel *textTabs = new TModTabPanel(activeDesktop, mainmgr, "Biblical Texts");
+ textTabs->ManualDock(activeDesktop, NULL, alLeft);
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TAppBarFrm::SpeedButton5Click(TObject *Sender)
+{
+ if (activeDesktop) {
+ TBookMarkPanel *bookmarks = new TBookMarkPanel(activeDesktop);
+ bookmarks->ManualDock(activeDesktop, NULL, alLeft);
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TAppBarFrm::SpeedButton3Click(TObject *Sender)
+{
+ if (activeDesktop) {
+ TModTabPanel *textTabs = new TModTabPanel(activeDesktop, mainmgr, "Commentaries");
+ textTabs->ManualDock(activeDesktop, NULL, alLeft);
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TAppBarFrm::SpeedButton4Click(TObject *Sender)
+{
+ if (activeDesktop) {
+ TModTabPanel *textTabs = new TModTabPanel(activeDesktop, mainmgr, "Lexicons / Dictionaries");
+ textTabs->ManualDock(activeDesktop, NULL, alLeft);
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TAppBarFrm::TabControl1Change(TObject *Sender)
+{
+ int index = TabControl1->TabIndex;
+ if (index > -1) {
+ activeDesktop = ((TForm *)(TabControl1->Tabs->Objects[index]));
+ activeDesktop->Show();
+ }
+ else activeDesktop = 0;
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TAppBarFrm::SpeedButton1Click(TObject *Sender)
+{
+ DeskTopNameFrm->ShowModal();
+ activeDesktop = new TDockCanvasFrm(this);
+ activeDesktop->OnClose = FormClose;
+ activeDesktop->OnActivate = FormActivate;
+ activeDesktop->Caption = DeskTopNameFrm->desktopName->Text;
+ TabControl1->Tabs->AddObject(activeDesktop->Caption, activeDesktop);
+ if (activeDesktop->Top < (this->Top + this->Height))
+ activeDesktop->Top = this->Top + this->Height + 1;
+ activeDesktop->Show();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TAppBarFrm::FormClose(TObject *Sender,
+ TCloseAction &Action)
+{
+ int index = TabControl1->Tabs->IndexOfObject(Sender);
+ TabControl1->Tabs->Delete(index);
+ TabControl1->TabIndex = 0;
+ TabControl1Change(Sender);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TAppBarFrm::FormActivate(TObject *Sender)
+{
+ int index = TabControl1->Tabs->IndexOfObject(Sender);
+ TabControl1->TabIndex = index;
+ TabControl1Change(Sender);
+}
+//---------------------------------------------------------------------------
+
+void TAppBarFrm::fillVKeySelector(VerseKey *vk) {
+ VerseKey *myVk = (VerseKey *)vk->clone();
+ myVk->Error(); //clear error
+ (*myVk) = TOP;
+ cbBook->Clear();
+ while (!myVk->Error()) {
+ AnsiString s1 = (const char *)(*myVk);
+ s1.SetLength(s1.Length() - 4);
+ cbBook->Items->Add(s1);
+ myVk->Book(myVk->Book() + 1);
+ }
+ delete myVk;
+}
+
+
+void __fastcall TAppBarFrm::FormDestroy(TObject *Sender)
+{
+ delete commonVK;
+ delete commonSK;
+}
+void TAppBarFrm::RefreshActiveSheet(TPageControl *pc)
+{
+ ModMap::iterator it;
+ if (mainmgr) {
+ it = mainmgr->Modules.find(pc->ActivePage->Caption.c_str());
+ if (it != mainmgr->Modules.end()) {
+ (*it).second->Display();
+// if (logmodstate)
+// modstates.insert(modstates.begin(), new ModState(pc, pc->ActivePage, (*it).second->KeyText()));
+ }
+ }
+}
+//---------------------------------------------------------------------------
+void TAppBarFrm::TextKeyChanged()
+{
+ cbBook->ItemIndex = cbBook->Items->IndexOf(commonVK->books[commonVK->Testament()-1][commonVK->Book()-1].name);
+ CHBox->Text = commonVK->Chapter();
+ VSBox->Text = commonVK->Verse();
+ freeHandLookup->Text = (const char *)*commonVK;
+
+ if (activeDesktop) {
+ for (int i = 0; i < activeDesktop->DockClientCount; i++) {
+ TPanel *panel = dynamic_cast<TPanel *>(activeDesktop->DockClients[i]);
+ if (panel) {
+ TPageControl *pc = dynamic_cast<TPageControl *>(panel->Controls[0]);
+ if (pc)
+ RefreshActiveSheet(pc);
+ }
+ }
+ }
+
+// RefreshActiveSheet(PageControl1);
+// logmodstate = false; // only log state once
+// RefreshActiveSheet(PageControl2);
+// logmodstate = true;
+}
+void __fastcall TAppBarFrm::btnLookupClick(TObject *Sender)
+{
+ if (!(StrToInt(CHBox->Text)) || (!StrToInt(VSBox->Text)))
+ commonVK->AutoNormalize(0);
+
+ if (StrToInt(CHBox->Text) < 0)
+ CHBox->Text = StrToInt(CHBox->Text) + 1;
+ if (StrToInt(VSBox->Text) < 0)
+ VSBox->Text = StrToInt(VSBox->Text) + 1;
+
+ *commonVK = (cbBook->Text + " " + CHBox->Text + ":" + VSBox->Text).c_str();
+ TextKeyChanged();
+ commonVK->AutoNormalize(1);
+}
+
+void __fastcall TAppBarFrm::UpDown1Click(TObject *Sender,
+ TUDBtnType Button)
+{
+ btnLookupClick(Sender);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TAppBarFrm::freeHandLookupKeyPress(TObject *Sender,
+ char &Key)
+{
+ if (Key == '\r') {
+ ListKey tmpVerseList = commonVK->ParseVerseList(freeHandLookup->Text.c_str(), *commonVK);
+
+ if (tmpVerseList.Count()) {
+ int index = freeHandLookup->Items->IndexOf(freeHandLookup->Text);
+ freeHandLookup->Items->Insert(0, freeHandLookup->Text);
+
+ if (index >= 0)
+ freeHandLookup->Items->Delete(index+1);
+
+ freeHandLookup->ItemIndex = 0;
+
+ if (tmpVerseList.Count() > 1) {
+ TVerseListFrm *tmpForm = new TVerseListFrm(this, tmpVerseList);
+ tmpForm->Caption = "User Verse List";
+ tmpForm->Show();
+ }
+
+ tmpVerseList = TOP;
+ *commonVK = tmpVerseList;
+ TextKeyChanged();
+ }
+ }
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder5/prototype/AppBar.dfm b/apps/windoze/CBuilder5/prototype/AppBar.dfm
new file mode 100644
index 0000000..f11d879
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/AppBar.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder5/prototype/AppBar.h b/apps/windoze/CBuilder5/prototype/AppBar.h
new file mode 100644
index 0000000..4839b2f
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/AppBar.h
@@ -0,0 +1,94 @@
+//---------------------------------------------------------------------------
+#ifndef AppBarH
+#define AppBarH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <Buttons.hpp>
+#include <ComCtrls.hpp>
+#include <ExtCtrls.hpp>
+#include <Graphics.hpp>
+#include <ToolWin.hpp>
+#include <Menus.hpp>
+//#include <MenuBar.hpp>
+#include <ImgList.hpp>
+//#include <DockCanvas.h>
+class SWMgr;
+class VerseKey;
+class SWKey;
+//---------------------------------------------------------------------------
+class TAppBarFrm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TPanel *Panel2;
+ TTabControl *TabControl1;
+ TCoolBar *CoolBar1;
+ TImage *BackBtnImage;
+ TImage *SearchBtnImage;
+ TToolBar *ToolBar2;
+ TToolButton *ToolButton3;
+ TToolButton *ToolButton4;
+ TPanel *Panel3;
+ TSpeedButton *btnLookup;
+ TComboBox *cbBook;
+ TEdit *CHBox;
+ TUpDown *UpDown1;
+ TEdit *VSBox;
+ TUpDown *UpDown2;
+ TToolBar *ToolBar1;
+ TSpeedButton *Bookmarkbtn;
+ TPanel *pnlSpeed;
+ TCoolBar *CoolBar2;
+ TMainMenu *MainMenu2;
+ TMenuItem *File1;
+ TMenuItem *Options1;
+ TMenuItem *SaveLayout1;
+ TMenuItem *N1;
+ TMenuItem *Exit1;
+ TMenuItem *Edit2;
+ TMenuItem *Copy3;
+ TMenuItem *Search3;
+ TMenuItem *NewSearchWindow1;
+ TMenuItem *Help4;
+ TMenuItem *About1;
+ TImageList *ImageList1;
+ TImage *Image2;
+ TImage *Image1;
+ TPanel *Panel4;
+ TSpeedButton *SpeedButton1;
+ TSpeedButton *SpeedButton2;
+ TSpeedButton *SpeedButton3;
+ TSpeedButton *SpeedButton4;
+ TSpeedButton *SpeedButton5;
+ TComboBox *freeHandLookup;
+ void __fastcall FormCreate(TObject *Sender);
+ void __fastcall SpeedButton2Click(TObject *Sender);
+ void __fastcall SpeedButton5Click(TObject *Sender);
+ void __fastcall SpeedButton3Click(TObject *Sender);
+ void __fastcall SpeedButton4Click(TObject *Sender);
+ void __fastcall TabControl1Change(TObject *Sender);
+ void __fastcall SpeedButton1Click(TObject *Sender);
+ void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
+ void __fastcall FormActivate(TObject *Sender);
+ void __fastcall btnLookupClick(TObject *Sender);
+ void __fastcall FormDestroy(TObject *Sender);
+ void __fastcall UpDown1Click(TObject *Sender, TUDBtnType Button);
+ void __fastcall freeHandLookupKeyPress(TObject *Sender, char &Key);
+private: // User declarations
+ void RefreshActiveSheet(TPageControl *pc);
+ void TextKeyChanged();
+ void fillVKeySelector(VerseKey *vk);
+ VerseKey *commonVK;
+ SWKey *commonSK;
+public: // User declarations
+ __fastcall TAppBarFrm(TComponent* Owner);
+ SWMgr *mainmgr;
+ TForm *activeDesktop;
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TAppBarFrm *AppBarFrm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/prototype/Bitmap1.bmp b/apps/windoze/CBuilder5/prototype/Bitmap1.bmp
new file mode 100644
index 0000000..cab8e28
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/Bitmap1.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/prototype/BookMarkPanel.cpp b/apps/windoze/CBuilder5/prototype/BookMarkPanel.cpp
new file mode 100644
index 0000000..78dd615
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/BookMarkPanel.cpp
@@ -0,0 +1,352 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "BookMarkPanel.h"
+#pragma package(smart_init)
+#include "newbmfilefrm.h"
+//#include <dir.h>
+#include <io.h>
+#include <dirent.h>
+#include <swconfig.h>
+//---------------------------------------------------------------------------
+// ValidCtrCheck is used to assure that the components created do not have
+// any pure virtual functions.
+//
+
+static inline void ValidCtrCheck(TBookMarkPanel *)
+{
+ new TBookMarkPanel(NULL);
+}
+//---------------------------------------------------------------------------
+__fastcall TBookMarkPanel::TBookMarkPanel(TComponent* Owner)
+ : TPanel(Owner)
+{
+ BMPopup = new TPopupMenu(this);
+ TMenuItem * newitem;
+ newitem = new TMenuItem(BMPopup);
+ newitem->Caption = "&Add Child";
+ newitem->OnClick = AddChild1Click;
+ BMPopup->Items->Add(newitem);
+ newitem = new TMenuItem(BMPopup);
+ newitem->Caption = "&Delete";
+ newitem->OnClick = Delete1Click;
+ BMPopup->Items->Add(newitem);
+ newitem = new TMenuItem(BMPopup);
+ newitem->Caption = "&Rename";
+ newitem->OnClick = Rename1Click;
+ BMPopup->Items->Add(newitem);
+ newitem = new TMenuItem(BMPopup);
+ newitem->Caption = "-";
+ BMPopup->Items->Add(newitem);
+ newitem = new TMenuItem(BMPopup);
+ newitem->Caption = "&New Bookmark File";
+ newitem->OnClick = NewBookmarkFile1Click;
+ BMPopup->Items->Add(newitem);
+}
+
+
+__fastcall TBookMarkPanel::~TBookMarkPanel()
+{
+ list <String *>::iterator it;
+
+ SaveBookmarks();
+
+ for (it = bmfiles.begin(); it != bmfiles.end(); it++)
+ delete *it;
+}
+
+
+void __fastcall TBookMarkPanel::CreateWnd() {
+
+ TPanel::CreateWnd();
+
+ SWConfig *bookmarks;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ TTreeNode *node;
+
+ DIR *dir;
+ struct dirent *ent;
+ string conffile;
+ bmdir = "";
+ SWConfig optionsconf("./options.conf");
+
+ this->DragMode = dmAutomatic;
+ this->DragKind = dkDock;
+ this->UseDockManager = true;
+
+ bmtree = new TTreeView(this);
+ bmtree->Parent = this;
+ bmtree->Align = alClient;
+ bmtree->Items->Clear();
+ bmtree->PopupMenu = BMPopup;
+
+ if ((sit = optionsconf.Sections.find("Bookmarks")) != optionsconf.Sections.end())
+ bmdir = ((eit = (*sit).second.find("Directory")) != (*sit).second.end()) ? (*eit).second : (string)"";
+
+// Add Personal Bookmarks first, or if they don't exist, ADD A BLANK BRANCH first in the tree
+// --------------------------------------------------------------------------
+
+ if (bmdir == "")
+ bmdir = "./bookmarks/";
+
+ if (access(bmdir.c_str(), 0)) { // directory does not exist
+ _mkdir(bmdir.c_str());
+ }
+
+ conffile = bmdir + "personal.conf";
+ bookmarks = new SWConfig(conffile.c_str());
+ if ((sit = bookmarks->Sections.find("ROOT")) != bookmarks->Sections.end()) {
+ if ((eit = (*sit).second.begin()) != (*sit).second.end()) {
+ node = bmtree->Items->AddObject(bmtree->Selected, (*eit).second.c_str(), *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ AddSection(bookmarks, bmtree, node, (*eit).first.c_str());
+ }
+ }
+ else bmtree->Items->AddObject(bmtree->Selected, "Personal Bookmarks", *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ delete bookmarks;
+// --------------------------------------------------------------------------
+
+// Add all other bookmark files ---------------------------------------------
+ if (dir = opendir(bmdir.c_str())) {
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, "personal.conf")) && (strcmp(ent->d_name, "."))&& (strcmp(ent->d_name, ".."))) {
+ conffile = bmdir;
+ conffile += ent->d_name;
+ bookmarks = new SWConfig(conffile.c_str());
+ if ((sit = bookmarks->Sections.find("ROOT")) != bookmarks->Sections.end()) {
+ if ((eit = (*sit).second.begin()) != (*sit).second.end()) { // Currently supports only ONE topsection per file because on save, each topsection designates which file to rewrite
+ node = bmtree->Items->AddObject(bmtree->Selected, (*eit).second.c_str(), *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ AddSection(bookmarks, bmtree, node, (*eit).first.c_str());
+ }
+ }
+ delete bookmarks;
+ }
+ }
+ closedir(dir);
+ }
+/*
+ SWConfig *bookmarks;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ TTreeNode *node;
+
+ DIR *dir;
+ struct dirent *ent;
+ string conffile;
+ bmdir = "";
+ SWConfig optionsconf("./options.conf");
+
+ this->DragMode = dmAutomatic;
+ this->DragKind = dkDock;
+ this->UseDockManager = true;
+
+ bmtree = new TTreeView(this);
+ bmtree->Parent = this;
+ bmtree->Align = alClient;
+ bmtree->DragMode = dmAutomatic;
+ bmtree->Indent = 19;
+ bmtree->PopupMenu = BMPopup;
+ bmtree->TabOrder = 0;
+ bmtree->OnDblClick = bmtreeDblClick;
+ bmtree->OnDragDrop = bmtreeDragDrop;
+ bmtree->OnDragOver = bmtreeDragOver;
+
+
+
+ bmtree->Items->Clear();
+
+ if ((sit = optionsconf.Sections.find("Bookmarks")) != optionsconf.Sections.end())
+ bmdir = (*sit).second["Directory"];
+
+// Add Personal Bookmarks first, or if they don't exist, ADD A BLANK BRANCH first in the tree
+// --------------------------------------------------------------------------
+
+ if (bmdir == "")
+ bmdir = "./bookmarks/";
+
+ if (access(bmdir.c_str(), 0)) { // directory does not exist
+ _mkdir(bmdir.c_str());
+ }
+
+ conffile = bmdir + "personal.conf";
+ bookmarks = new SWConfig(conffile);
+ if ((sit = bookmarks->Sections.find("ROOT")) != bookmarks->Sections.end()) {
+ if ((eit = (*sit).second.begin()) != (*sit).second.end()) {
+ node = bmtree->Items->AddObject(bmtree->Selected, (*eit).second.c_str(), *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ AddSection(bookmarks, bmtree, node, (*eit).first.c_str());
+ }
+ }
+ else bmtree->Items->AddObject(bmtree->Selected, "Personal Bookmarks", *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ delete bookmarks;
+// --------------------------------------------------------------------------
+
+// Add all other bookmark files ---------------------------------------------
+ if (dir = opendir(bmdir.c_str())) {
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, "personal.conf")) && (strcmp(ent->d_name, "."))&& (strcmp(ent->d_name, ".."))) {
+ conffile = bmdir;
+ conffile += ent->d_name;
+ bookmarks = new SWConfig(conffile);
+ if ((sit = bookmarks->Sections.find("ROOT")) != bookmarks->Sections.end()) {
+ if ((eit = (*sit).second.begin()) != (*sit).second.end()) { // Currently supports only ONE topsection per file because on save, each topsection designates which file to rewrite
+ node = bmtree->Items->AddObject(bmtree->Selected, (*eit).second.c_str(), *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ AddSection(bookmarks, bmtree, node, (*eit).first.c_str());
+ }
+ }
+ delete bookmarks;
+ }
+ }
+ closedir(dir);
+ }
+*/
+}
+
+
+void TBookMarkPanel::AddSection(SWConfig *config, TTreeView *tree, TTreeNode *parent, String section)
+{
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ TTreeNode *node;
+
+ if ((sit = config->Sections.find(section.c_str())) != config->Sections.end()) {
+ for (eit = (*sit).second.begin(); eit != (*sit).second.end(); eit++) {
+ node = tree->Items->AddChild(parent, (*eit).second.c_str());
+ AddSection(config, tree, node, (*eit).first.c_str());
+ }
+ }
+}
+
+
+void __fastcall TBookMarkPanel::bmtreeDragDrop(TObject *Sender, TObject *Source,
+ int X, int Y)
+{
+ bmtree->Selected->MoveTo(bmtree->DropTarget, naAddChildFirst);
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookMarkPanel::bmtreeDragOver(TObject *Sender, TObject *Source,
+ int X, int Y, TDragState State, bool &Accept)
+{
+ Accept = false;
+
+ if (String(Source->ClassName()) == "TTreeView") {
+ if (Source == bmtree) {
+ if (bmtree->Selected->Data) {
+ if (strcmp((*(String*)(bmtree->Selected->Data)).c_str(),(bmdir + "personal.conf").c_str())) {
+ Accept = true;
+ }
+ }
+ else Accept = true;
+ }
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookMarkPanel::bmtreeDblClick(TObject *Sender)
+{
+ if (!bmtree->Selected->getFirstChild()) {
+// Form1->DefaultVSKey = bmtree->Selected->Text.c_str();
+// Form1->TextKeyChanged();
+ }
+
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookMarkPanel::AddChild1Click(TObject *Sender)
+{
+ bmtree->Selected->Expand(false);
+ bmtree->Items->AddChildFirst(bmtree->Selected, "New Topic")->EditText();
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookMarkPanel::Delete1Click(TObject *Sender)
+{
+ if (bmtree->Selected->Data) {
+ if (strcmp((*(String*)(bmtree->Selected->Data)).c_str(),(bmdir + "personal.conf").c_str())) {
+ bmtree->Selected->Delete();
+ }
+ }
+ else bmtree->Selected->Delete();
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookMarkPanel::Rename1Click(TObject *Sender)
+{
+ bmtree->Selected->EditText();
+}
+//---------------------------------------------------------------------------
+
+void TBookMarkPanel::SaveBookmarks()
+{
+ TTreeNode *tree = 0;
+ SWConfig *bmconf;
+ ConfigEntMap emap;
+ SectionMap::iterator sit;
+ char buf[15];
+ bool personal, other;
+ list <String *>::iterator it;
+ string persfile;
+ SWConfig optionsconf("./options.conf");
+
+ if (bmtree->Items->Count)
+ tree = bmtree->Items->Item[0];
+
+ if ((sit = optionsconf.Sections.find("Bookmarks")) != optionsconf.Sections.end()) {
+ personal = (atoi((*(*sit).second.find("AutoSavePersonal")).second.c_str())) ? true:false;
+ other = (atoi((*(*sit).second.find("AutoSaveOther")).second.c_str())) ? true:false;
+ }
+
+ persfile = bmdir + "personal.conf";
+ for (it = bmfiles.begin(); it != bmfiles.end(); it++) { // delete all bookmark files before saving in case a top level was deleted
+ if (((!strcmp((*it)->c_str(), persfile.c_str())) && personal) || ((strcmp((*it)->c_str(), persfile.c_str())) && other))
+ unlink((*it)->c_str());
+ }
+
+ for (;tree;tree = tree->getNextSibling()) {
+ if (((*((String *)tree->Data) == persfile.c_str()) && personal) || ((*((String *)tree->Data) != persfile.c_str()) && other)) {
+ bmconf = new SWConfig(((String *)tree->Data)->c_str());
+ emap = bmconf->Sections["ROOT"];
+ sprintf(buf, "branch%d", tree->AbsoluteIndex);
+ emap.erase(buf); emap.insert(ConfigEntMap::value_type(buf, tree->Text.c_str()));
+ AddSectionToConf(bmconf, buf, tree);
+ bmconf->Sections["ROOT"] = emap;
+ bmconf->Save();
+ delete bmconf;
+ }
+ }
+}
+
+
+void TBookMarkPanel::AddSectionToConf(SWConfig *config, String section, TTreeNode *tree) {
+ ConfigEntMap sit;
+ char buf[15];
+
+ if (tree = tree->getFirstChild()) {
+ sit = config->Sections[section.c_str()];
+ for (; tree; tree = tree->getNextSibling()) {
+ sprintf(buf, "branch%d", tree->AbsoluteIndex);
+ sit.erase(buf); sit.insert(ConfigEntMap::value_type(buf, tree->Text.c_str()));
+ AddSectionToConf(config, buf, tree);
+ }
+ config->Sections[section.c_str()] = sit;
+ }
+}
+
+void __fastcall TBookMarkPanel::NewBookmarkFile1Click(TObject *Sender)
+{
+ if (NewBMfrm->ShowModal() == mrOk) {
+ bmtree->Items->AddObject(bmtree->Items->Item[0], NewBMfrm->bmtitle->Text, *bmfiles.insert(bmfiles.begin(), new String(String(bmdir.c_str()) + NewBMfrm->bmfile->Text + String(".conf"))));
+ }
+}
+
+
+
+//---------------------------------------------------------------------------
+namespace Bookmarkpanel
+{
+ void __fastcall PACKAGE Register()
+ {
+ TComponentClass classes[1] = {__classid(TBookMarkPanel)};
+ RegisterComponents("Samples", classes, 0);
+ }
+}
+//---------------------------------------------------------------------------
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/prototype/BookMarkPanel.h b/apps/windoze/CBuilder5/prototype/BookMarkPanel.h
new file mode 100644
index 0000000..c998b76
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/BookMarkPanel.h
@@ -0,0 +1,39 @@
+//---------------------------------------------------------------------------
+#ifndef BookMarkPanelH
+#define BookMarkPanelH
+//---------------------------------------------------------------------------
+#include <SysUtils.hpp>
+#include <Controls.hpp>
+#include <Classes.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+#include <swconfig.h>
+#include <list>
+//---------------------------------------------------------------------------
+class PACKAGE TBookMarkPanel : public TPanel
+{
+private:
+ void AddSection(SWConfig *config, TTreeView *tree, TTreeNode *parent, String section);
+ list <String *> bmfiles; // so we can delete each display we create
+protected:
+public:
+ __fastcall TBookMarkPanel(TComponent* Owner);
+ virtual __fastcall ~TBookMarkPanel();
+ virtual void __fastcall CreateWnd();
+ string bmdir;
+ void SaveBookmarks();
+ void AddSectionToConf(SWConfig *config, String section, TTreeNode *tree);
+__published:
+ TTreeView *bmtree;
+ TPopupMenu *BMPopup;
+ void __fastcall bmtreeDragDrop(TObject *Sender, TObject *Source, int X, int Y);
+ void __fastcall bmtreeDragOver(TObject *Sender, TObject *Source, int X, int Y,
+ TDragState State, bool &Accept);
+ void __fastcall bmtreeDblClick(TObject *Sender);
+ void __fastcall AddChild1Click(TObject *Sender);
+ void __fastcall Delete1Click(TObject *Sender);
+ void __fastcall Rename1Click(TObject *Sender);
+ void __fastcall NewBookmarkFile1Click(TObject *Sender);
+};
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/prototype/CommentPanel.cpp b/apps/windoze/CBuilder5/prototype/CommentPanel.cpp
new file mode 100644
index 0000000..dbf8adf
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/CommentPanel.cpp
@@ -0,0 +1,222 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#include <vcl/clipbrd.hpp>
+#pragma hdrstop
+
+#include "CommentPanel.h"
+#pragma package(smart_init)
+#include "swdisprtfchap.h"
+#include <swconfig.h>
+#include <swmodule.h>
+#include "Greek2Greek.h"
+#include <utilfuns.h>
+#include <swmgr.h>
+#include <shellapi.h>
+
+class RTFDisp : public SWDisplay {
+ SWDispRTF *edit;
+public:
+ RTFDisp(SWDispRTF *iedit) { edit = iedit; }
+ RTFDisp() {}
+ char Display(SWModule &imodule) {
+ edit->Display(imodule);
+ }
+};
+
+class DispExternal : public SWDisplay {
+public:
+ DispExternal() {}
+ char Display(SWModule &imodule) {
+ SHELLEXECUTEINFO info;
+ info.cbSize = sizeof(SHELLEXECUTEINFO);
+ info.fMask = SEE_MASK_NOCLOSEPROCESS; //SEE_MASK_CLASSNAME;
+ info.hwnd = GetFocus();
+ info.lpVerb = "open";
+ info.lpFile = (char *)imodule;
+ info.lpParameters = NULL;
+ info.lpDirectory = NULL;
+ info.nShow = 0;
+// info.lpClass = ".html";
+ ShellExecuteEx(&info);
+// ShellExecute(edit->Handle, "open", (char *)imodule, NULL, NULL, SW_SHOWNORMAL);
+ }
+};
+
+//---------------------------------------------------------------------------
+// ValidCtrCheck is used to assure that the components created do not have
+// any pure virtual functions.
+//
+
+static inline void ValidCtrCheck(TCommentPanel *)
+{
+ new TCommentPanel(NULL);
+}
+//---------------------------------------------------------------------------
+__fastcall TCommentPanel::TCommentPanel(TComponent* Owner, SWModule *mod, SWMgr *imgr)
+ : TPanel(Owner)
+{
+ module = mod;
+ mgr = imgr;
+ this->font = 0;
+ stdstr(&(this->font), font);
+ menu = new TPopupMenu(this);
+ menu->OnPopup = PopupMenuPopup;
+
+ TMenuItem * newitem;
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "&Copy";
+ newitem->Hint = "Copy text to clipboard";
+ newitem->Default = false;
+ newitem->OnClick = Copy1Click;
+ menu->Items->Add(newitem);
+ if (!strcmp(mod->Name(), "N27U4")) {
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "Copy as &B-Greek Transliteration";
+ newitem->Hint = "Copy text to clipboard as B-Greek Transliteration";
+ newitem->Default = false;
+ newitem->OnClick = CopyasBGreekTransliteration1Click;
+ menu->Items->Add(newitem);
+ }
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "Dictionary Lookup";
+ newitem->Hint = "Send text to dictionary key for lookup";
+ newitem->Default = false;
+ newitem->OnClick = DictionaryLookup1Click;
+ menu->Items->Add(newitem);
+}
+
+
+void __fastcall TCommentPanel::CreateWnd() {
+ TPanel::CreateWnd();
+
+ TWinControl *newrtf;
+
+ if (mgr->config->Sections[module->Name()]["ModDrv"] == "HREFCom") {
+// if (mainmgr->config->Sections[mod->Name()]["External"] == "1") {
+ newrtf = new TPanel(this);
+ ((TPanel *)newrtf)->Caption = "Syncronizing to External Viewer";
+ display = new DispExternal();
+ module->Disp(display);
+/*
+ }
+ else {
+ // newrtf = new THTML(this->Handle);
+ // newrtf = new SWDispRTF(this);
+ newrtf = HTML1;
+ newrtf->Visible = true;
+ mod->Disp(*displays.insert(displays.begin(), new HREFDisp((THTML *)newrtf)));
+ // mod->Disp(*displays.insert(displays.begin(), new RTFDisp((SWDispRTF *)newrtf)));
+ }
+*/
+ }
+ else {
+ newrtf = new SWDispRTF(this);
+ display = new RTFDisp((SWDispRTF *)newrtf);
+ module->Disp(display);
+ ((SWDispRTF *)newrtf)->ScrollBars = ssVertical;
+ ((SWDispRTF *)newrtf)->ReadOnly = true;
+ if (mgr->config->Sections[module->Name()]["ModDrv"] == "RawFiles") {
+// ((SWDispRTF *)newrtf)->PopupMenu = PopupMenu3;
+ ((SWDispRTF *)newrtf)->ExpandNewLine = false;
+ }
+// else ((SWDispRTF *)newrtf)->PopupMenu = PopupMenu2;
+ ((SWDispRTF *)newrtf)->OnMouseDown = RTFMouseDown;
+ }
+
+ newrtf->Parent = this;
+ newrtf->Align = alClient;
+
+// mod->SetKey(DefaultVSKey);
+// return 0;
+
+
+}
+__fastcall TCommentPanel::~TCommentPanel() {
+ delete display;
+ if (font)
+ delete font;
+}
+//---------------------------------------------------------------------------
+namespace Commentpanel
+{
+ void __fastcall PACKAGE Register()
+ {
+ TComponentClass classes[1] = {__classid(TCommentPanel)};
+ RegisterComponents("Samples", classes, 0);
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TCommentPanel::PopupMenuPopup(TObject *Sender)
+{
+}
+void TCommentPanel::BuildRTFHeader(char *buf, char *font, int max)
+{
+ char buf1[1024], buf2[1024];
+ SectionMap::iterator sit;
+
+ sprintf(buf1, "{\\rtf1\\ansi");
+ if (font)
+ sprintf(buf2, "{\\fonttbl{\\f0\\fdecor\\fprq2 %s;}{\\f1\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f2\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f3\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f4\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f7\\froman\\fcharset2\\fprq2 Symbol;}{\\f8\\froman\\fcharset2\\fprq2 Symbol;}}", font);
+ else sprintf(buf2, "{\\fonttbl{\\f0\\fdecor\\fprq2 Times New Roman;}{\\f1\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f7\\froman\\fcharset2\\fprq2 Symbol;}{\\f8\\froman\\fcharset2\\fprq2 Symbol;}}");
+ strcat(buf1, buf2);
+
+// if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+// sprintf(buf2, "{\\colortbl;\\red0\\green0\\blue255;\\red%d\\green%d\\blue%d;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red255\\green0\\blue0;}",
+// atoi((*sit).second["CurrentVSColorRed"].c_str()),
+// atoi((*sit).second["CurrentVSColorGreen"].c_str()),
+// atoi((*sit).second["CurrentVSColorBlue"].c_str()));
+// }
+// else
+ sprintf(buf2, "{\\colortbl;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red255\\green0\\blue0;}");
+ strcat(buf1, buf2);
+ memset(buf, 0, max);
+ strncpy(buf, buf1, max);
+}
+
+
+void __fastcall TCommentPanel::CopyasBGreekTransliteration1Click(TObject *Sender)
+{
+ char *retbuf;
+ int len;
+ TClipboard *clip = new TClipboard();
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ len = rtf->SelText.Length() * 2;
+ retbuf = new char [ len ];
+ if (!Greek2bGreek(retbuf, rtf->SelText.c_str(), len)) {
+ clip->SetTextBuf(retbuf);
+ }
+ delete clip;
+}
+
+void __fastcall TCommentPanel::Copy1Click(TObject *Sender)
+{
+ int wordstart;
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ if (!rtf->SelLength) {
+ for (wordstart = rtf->SelStart; (wordstart > -1)&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length() - 1) - rtf->SelStart - 1;
+ }
+ rtf->CopyToClipboard();
+}
+void __fastcall TCommentPanel::DictionaryLookup1Click(TObject *Sender)
+{
+ int wordstart;
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ if (!rtf->SelLength) {
+ for (wordstart = rtf->SelStart; (wordstart > -1)&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length() - 1) - rtf->SelStart - 1;
+ }
+// DictKeyEdit->Text = Trim(rtf->SelText);
+}
+void __fastcall TCommentPanel::RTFMouseDown(TObject *Sender, TMouseButton Button,
+ TShiftState Shift, int X, int Y)
+{
+ ((TWinControl *)Sender)->SetFocus();
+}
diff --git a/apps/windoze/CBuilder5/prototype/CommentPanel.h b/apps/windoze/CBuilder5/prototype/CommentPanel.h
new file mode 100644
index 0000000..6fa9145
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/CommentPanel.h
@@ -0,0 +1,39 @@
+//---------------------------------------------------------------------------
+#ifndef CommentPanelH
+#define CommentPanelH
+//---------------------------------------------------------------------------
+#include <SysUtils.hpp>
+#include <Controls.hpp>
+#include <Classes.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+class SWDisplay;
+class SWModule;
+class SWMgr;
+
+
+
+//---------------------------------------------------------------------------
+class PACKAGE TCommentPanel : public TPanel
+{
+private:
+protected:
+public:
+ __fastcall TCommentPanel(TComponent* Owner, SWModule *mod = 0, SWMgr *mgr = 0);
+ __fastcall virtual ~TCommentPanel();
+ SWDisplay *display;
+ SWModule *module;
+ SWMgr *mgr;
+ char *font;
+__published:
+ TPopupMenu *menu;
+ virtual void __fastcall CreateWnd();
+ void __fastcall PopupMenuPopup(TObject *Sender);
+ void __fastcall CopyasBGreekTransliteration1Click(TObject *Sender);
+ void __fastcall Copy1Click(TObject *Sender);
+ void __fastcall DictionaryLookup1Click(TObject *Sender);
+ void __fastcall RTFMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void BuildRTFHeader(char *buf, char *font, int max);
+};
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/prototype/DeskTopNameForm.cpp b/apps/windoze/CBuilder5/prototype/DeskTopNameForm.cpp
new file mode 100644
index 0000000..c3308b4
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/DeskTopNameForm.cpp
@@ -0,0 +1,15 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "DeskTopNameForm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TDeskTopNameFrm *DeskTopNameFrm;
+//---------------------------------------------------------------------------
+__fastcall TDeskTopNameFrm::TDeskTopNameFrm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder5/prototype/DeskTopNameForm.dfm b/apps/windoze/CBuilder5/prototype/DeskTopNameForm.dfm
new file mode 100644
index 0000000..e64f7bd
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/DeskTopNameForm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder5/prototype/DeskTopNameForm.h b/apps/windoze/CBuilder5/prototype/DeskTopNameForm.h
new file mode 100644
index 0000000..3ef1549
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/DeskTopNameForm.h
@@ -0,0 +1,27 @@
+//---------------------------------------------------------------------------
+#ifndef DeskTopNameFormH
+#define DeskTopNameFormH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ComCtrls.hpp>
+#include <ExtCtrls.hpp>
+//---------------------------------------------------------------------------
+class TDeskTopNameFrm : public TForm
+{
+__published: // IDE-managed Components
+ TLabel *Label1;
+ TPanel *Panel1;
+ TButton *Button1;
+ TPanel *Panel2;
+ TEdit *desktopName;
+private: // User declarations
+public: // User declarations
+ __fastcall TDeskTopNameFrm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TDeskTopNameFrm *DeskTopNameFrm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/prototype/DockCanvas.cpp b/apps/windoze/CBuilder5/prototype/DockCanvas.cpp
new file mode 100644
index 0000000..2abf914
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/DockCanvas.cpp
@@ -0,0 +1,16 @@
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+
+#include "DockCanvas.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TDockCanvasFrm *DockCanvasFrm;
+//---------------------------------------------------------------------------
+__fastcall TDockCanvasFrm::TDockCanvasFrm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder5/prototype/DockCanvas.dfm b/apps/windoze/CBuilder5/prototype/DockCanvas.dfm
new file mode 100644
index 0000000..6e80013
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/DockCanvas.dfm
@@ -0,0 +1,18 @@
+object DockCanvasFrm: TDockCanvasFrm
+ Left = 208
+ Top = 180
+ Width = 696
+ Height = 480
+ Caption = 'DockCanvasFrm'
+ Color = clBtnFace
+ UseDockManager = True
+ DockSite = True
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ PixelsPerInch = 96
+ TextHeight = 13
+end
diff --git a/apps/windoze/CBuilder5/prototype/DockCanvas.h b/apps/windoze/CBuilder5/prototype/DockCanvas.h
new file mode 100644
index 0000000..c06c03a
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/DockCanvas.h
@@ -0,0 +1,21 @@
+//---------------------------------------------------------------------------
+
+#ifndef DockCanvasH
+#define DockCanvasH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+//---------------------------------------------------------------------------
+class TDockCanvasFrm : public TForm
+{
+__published: // IDE-managed Components
+private: // User declarations
+public: // User declarations
+ __fastcall TDockCanvasFrm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TDockCanvasFrm *DockCanvasFrm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/prototype/LDPanel.cpp b/apps/windoze/CBuilder5/prototype/LDPanel.cpp
new file mode 100644
index 0000000..b93af95
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/LDPanel.cpp
@@ -0,0 +1,174 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#include <vcl/clipbrd.hpp>
+#pragma hdrstop
+
+#include "LDPanel.h"
+#pragma package(smart_init)
+#include "swdisprtfchap.h"
+#include <swconfig.h>
+#include <swmodule.h>
+#include "Greek2Greek.h"
+#include <utilfuns.h>
+#include <swmgr.h>
+
+class RTFDisp : public SWDisplay {
+ SWDispRTF *edit;
+public:
+ RTFDisp(SWDispRTF *iedit) { edit = iedit; }
+ RTFDisp() {}
+ char Display(SWModule &imodule) {
+ edit->Display(imodule);
+ }
+};
+
+//---------------------------------------------------------------------------
+// ValidCtrCheck is used to assure that the components created do not have
+// any pure virtual functions.
+//
+
+static inline void ValidCtrCheck(TLDPanel *)
+{
+ new TLDPanel(NULL);
+}
+//---------------------------------------------------------------------------
+__fastcall TLDPanel::TLDPanel(TComponent* Owner, SWModule *mod, SWMgr *imgr)
+ : TPanel(Owner)
+{
+ module = mod;
+ mgr = imgr;
+ this->font = 0;
+ stdstr(&(this->font), font);
+ menu = new TPopupMenu(this);
+ menu->OnPopup = PopupMenuPopup;
+
+ TMenuItem * newitem;
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "&Copy";
+ newitem->Hint = "Copy text to clipboard";
+ newitem->Default = false;
+ newitem->OnClick = Copy1Click;
+ menu->Items->Add(newitem);
+ if (!strcmp(mod->Name(), "N27U4")) {
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "Copy as &B-Greek Transliteration";
+ newitem->Hint = "Copy text to clipboard as B-Greek Transliteration";
+ newitem->Default = false;
+ newitem->OnClick = CopyasBGreekTransliteration1Click;
+ menu->Items->Add(newitem);
+ }
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "Dictionary Lookup";
+ newitem->Hint = "Send text to dictionary key for lookup";
+ newitem->Default = false;
+ newitem->OnClick = DictionaryLookup1Click;
+ menu->Items->Add(newitem);
+}
+
+
+void __fastcall TLDPanel::CreateWnd() {
+ TPanel::CreateWnd();
+
+ SWDispRTF *newrtf = new SWDispRTF(this);
+
+ newrtf->Parent = this;
+ newrtf->Align = alClient;
+ newrtf->ScrollBars = ssVertical;
+ newrtf->ReadOnly = true;
+// newrtf->PopupMenu = PopupMenu2;
+// newrtf->OnMouseDown = RTFMouseDown;
+ display = new RTFDisp(newrtf);
+ module->Disp(display);
+// mod->SetKey(DefaultStrKey);
+
+
+}
+__fastcall TLDPanel::~TLDPanel() {
+ delete display;
+ if (font)
+ delete font;
+}
+//---------------------------------------------------------------------------
+namespace Ldpanel
+{
+ void __fastcall PACKAGE Register()
+ {
+ TComponentClass classes[1] = {__classid(TLDPanel)};
+ RegisterComponents("Samples", classes, 0);
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TLDPanel::PopupMenuPopup(TObject *Sender)
+{
+}
+void TLDPanel::BuildRTFHeader(char *buf, char *font, int max)
+{
+ char buf1[1024], buf2[1024];
+ SectionMap::iterator sit;
+
+ sprintf(buf1, "{\\rtf1\\ansi");
+ if (font)
+ sprintf(buf2, "{\\fonttbl{\\f0\\fdecor\\fprq2 %s;}{\\f1\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f2\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f3\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f4\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f7\\froman\\fcharset2\\fprq2 Symbol;}{\\f8\\froman\\fcharset2\\fprq2 Symbol;}}", font);
+ else sprintf(buf2, "{\\fonttbl{\\f0\\fdecor\\fprq2 Times New Roman;}{\\f1\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f7\\froman\\fcharset2\\fprq2 Symbol;}{\\f8\\froman\\fcharset2\\fprq2 Symbol;}}");
+ strcat(buf1, buf2);
+
+// if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+// sprintf(buf2, "{\\colortbl;\\red0\\green0\\blue255;\\red%d\\green%d\\blue%d;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red255\\green0\\blue0;}",
+// atoi((*sit).second["CurrentVSColorRed"].c_str()),
+// atoi((*sit).second["CurrentVSColorGreen"].c_str()),
+// atoi((*sit).second["CurrentVSColorBlue"].c_str()));
+// }
+// else
+ sprintf(buf2, "{\\colortbl;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red255\\green0\\blue0;}");
+ strcat(buf1, buf2);
+ memset(buf, 0, max);
+ strncpy(buf, buf1, max);
+}
+
+
+void __fastcall TLDPanel::CopyasBGreekTransliteration1Click(TObject *Sender)
+{
+ char *retbuf;
+ int len;
+ TClipboard *clip = new TClipboard();
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ len = rtf->SelText.Length() * 2;
+ retbuf = new char [ len ];
+ if (!Greek2bGreek(retbuf, rtf->SelText.c_str(), len)) {
+ clip->SetTextBuf(retbuf);
+ }
+ delete clip;
+}
+
+void __fastcall TLDPanel::Copy1Click(TObject *Sender)
+{
+ int wordstart;
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ if (!rtf->SelLength) {
+ for (wordstart = rtf->SelStart; (wordstart > -1)&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length() - 1) - rtf->SelStart - 1;
+ }
+ rtf->CopyToClipboard();
+}
+void __fastcall TLDPanel::DictionaryLookup1Click(TObject *Sender)
+{
+ int wordstart;
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ if (!rtf->SelLength) {
+ for (wordstart = rtf->SelStart; (wordstart > -1)&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length() - 1) - rtf->SelStart - 1;
+ }
+// DictKeyEdit->Text = Trim(rtf->SelText);
+}
+void __fastcall TLDPanel::RTFMouseDown(TObject *Sender, TMouseButton Button,
+ TShiftState Shift, int X, int Y)
+{
+ ((TWinControl *)Sender)->SetFocus();
+}
diff --git a/apps/windoze/CBuilder5/prototype/LDPanel.h b/apps/windoze/CBuilder5/prototype/LDPanel.h
new file mode 100644
index 0000000..80dcdff
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/LDPanel.h
@@ -0,0 +1,39 @@
+//---------------------------------------------------------------------------
+#ifndef LDPanelH
+#define LDPanelH
+//---------------------------------------------------------------------------
+#include <SysUtils.hpp>
+#include <Controls.hpp>
+#include <Classes.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+class SWDisplay;
+class SWModule;
+class SWMgr;
+
+
+
+//---------------------------------------------------------------------------
+class PACKAGE TLDPanel : public TPanel
+{
+private:
+protected:
+public:
+ __fastcall TLDPanel(TComponent* Owner, SWModule *mod = 0, SWMgr *mgr = 0);
+ __fastcall virtual ~TLDPanel();
+ SWDisplay *display;
+ SWModule *module;
+ SWMgr *mgr;
+ char *font;
+__published:
+ TPopupMenu *menu;
+ virtual void __fastcall CreateWnd();
+ void __fastcall PopupMenuPopup(TObject *Sender);
+ void __fastcall CopyasBGreekTransliteration1Click(TObject *Sender);
+ void __fastcall Copy1Click(TObject *Sender);
+ void __fastcall DictionaryLookup1Click(TObject *Sender);
+ void __fastcall RTFMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void BuildRTFHeader(char *buf, char *font, int max);
+};
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/prototype/ModInstForm.cpp b/apps/windoze/CBuilder5/prototype/ModInstForm.cpp
new file mode 100644
index 0000000..1763817
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/ModInstForm.cpp
@@ -0,0 +1,14 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "ModInstForm.h"
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TModInstFrm *ModInstFrm;
+//---------------------------------------------------------------------------
+__fastcall TModInstFrm::TModInstFrm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//--------------------------------------------------------------------------- \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/prototype/ModInstForm.dfm b/apps/windoze/CBuilder5/prototype/ModInstForm.dfm
new file mode 100644
index 0000000..41ce498
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/ModInstForm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder5/prototype/ModInstForm.h b/apps/windoze/CBuilder5/prototype/ModInstForm.h
new file mode 100644
index 0000000..f0cb90a
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/ModInstForm.h
@@ -0,0 +1,27 @@
+//---------------------------------------------------------------------------
+#ifndef ModInstFormH
+#define ModInstFormH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ComCtrls.hpp>
+#include <vcl\ExtCtrls.hpp>
+//---------------------------------------------------------------------------
+class TModInstFrm : public TForm
+{
+__published: // IDE-managed Components
+ TRichEdit *AboutText;
+ TPanel *Panel1;
+ TButton *Button1;
+ TLabel *ModText;
+private: // User declarations
+public: // User declarations
+ __fastcall TModInstFrm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TModInstFrm *ModInstFrm;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/prototype/ModTabPanel.cpp b/apps/windoze/CBuilder5/prototype/ModTabPanel.cpp
new file mode 100644
index 0000000..0d39acf
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/ModTabPanel.cpp
@@ -0,0 +1,114 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "ModTabPanel.h"
+#pragma package(smart_init)
+#include <swmgr.h>
+#include "TextPanel.h"
+#include "CommentPanel.h"
+#include "LDPanel.h"
+//---------------------------------------------------------------------------
+// ValidCtrCheck is used to assure that the components created do not have
+// any pure virtual functions.
+//
+
+static inline void ValidCtrCheck(TModTabPanel *)
+{
+ new TModTabPanel(NULL);
+}
+//---------------------------------------------------------------------------
+__fastcall TModTabPanel::TModTabPanel(TComponent* Owner, SWMgr *mgr, char *modType)
+ : TPanel(Owner)
+{
+ this->mgr = mgr;
+ this->modType = modType;
+}
+
+void __fastcall TModTabPanel::CreateWnd() {
+ TPanel::CreateWnd();
+ ModMap::iterator it;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ char *font;
+ this->DragMode = dmAutomatic;
+ this->DragKind = dkDock;
+ this->UseDockManager = true;
+ pageControl = new TPageControl(this);
+ pageControl->Parent = this;
+ pageControl->Align = alClient;
+ pageControl->MultiLine = True;
+ pageControl->ParentFont = False;
+ pageControl->ParentShowHint = False;
+ pageControl->ShowHint = True;
+ pageControl->TabHeight = 14;
+ pageControl->TabOrder = 0;
+ pageControl->OnChange = PageControl1Change;
+ for (it = mgr->Modules.begin(); it != mgr->Modules.end(); it++) {
+ if ((!strcmp((*it).second->Type(), "Biblical Texts")) && (!strcmp(modType.c_str(), "Biblical Texts"))) {
+ font = 0;
+ if ((sit = mgr->config->Sections.find((*it).second->Name())) != mgr->config->Sections.end()) {
+ if ((eit = (*sit).second.find("Font")) != (*sit).second.end()) {
+ font = (char *)(*eit).second.c_str();
+ }
+ }
+ TTabSheet *newtab = new TTabSheet(this);
+ newtab->Caption = (*it).second->Name();
+ newtab->Hint = (*it).second->Description();
+ newtab->PageControl = pageControl;
+ TTextPanel *panel = new TTextPanel(this, (*it).second, font);
+ panel->Parent = newtab;
+ panel->Align = alClient;
+// CreateTextPane((*it).second, font);
+ }
+ if ((!strcmp((*it).second->Type(), "Commentaries")) && (!strcmp(modType.c_str(), "Commentaries"))) {
+ TTabSheet *newtab = new TTabSheet(this);
+ newtab->Caption = (*it).second->Name();
+ newtab->Hint = (*it).second->Description();
+ newtab->PageControl = pageControl;
+ TCommentPanel *panel = new TCommentPanel(this, (*it).second, mgr);
+ panel->Parent = newtab;
+ panel->Align = alClient;
+// CreateCommentPane((*it).second);
+ }
+ if ((!strcmp((*it).second->Type(), "Lexicons / Dictionaries")) && (!strcmp(modType.c_str(), "Lexicons / Dictionaries"))) {
+ TTabSheet *newtab = new TTabSheet(this);
+ newtab->Caption = (*it).second->Name();
+ newtab->Hint = (*it).second->Description();
+ newtab->PageControl = pageControl;
+ TLDPanel *panel = new TLDPanel(this, (*it).second, mgr);
+ panel->Parent = newtab;
+ panel->Align = alClient;
+// CreateLDPane((*it).second);
+ }
+ }
+}
+//---------------------------------------------------------------------------
+namespace Modtabpanel
+{
+ void __fastcall PACKAGE Register()
+ {
+ TComponentClass classes[1] = {__classid(TModTabPanel)};
+ RegisterComponents("Samples", classes, 0);
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TModTabPanel::PageControl1Change(TObject *Sender)
+{
+ RefreshActiveSheet();
+// Form1->ActiveControl = PageControl1;
+}
+
+
+void TModTabPanel::RefreshActiveSheet()
+{
+ ModMap::iterator it;
+
+ it = mgr->Modules.find(pageControl->ActivePage->Caption.c_str());
+ if (it != mgr->Modules.end()) {
+ (*it).second->Display();
+// if (logmodstate)
+// modstates.insert(modstates.begin(), new ModState(pc, pc->ActivePage, (*it).second->KeyText()));
+ }
+}
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/prototype/ModTabPanel.h b/apps/windoze/CBuilder5/prototype/ModTabPanel.h
new file mode 100644
index 0000000..9da8db2
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/ModTabPanel.h
@@ -0,0 +1,30 @@
+//---------------------------------------------------------------------------
+#ifndef ModTabPanelH
+#define ModTabPanelH
+//---------------------------------------------------------------------------
+#include <SysUtils.hpp>
+#include <Controls.hpp>
+#include <Classes.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+#include <string>
+
+class SWMgr;
+//---------------------------------------------------------------------------
+class PACKAGE TModTabPanel : public TPanel
+{
+private:
+protected:
+public:
+ SWMgr *mgr;
+ std::string modType;
+ __fastcall TModTabPanel(TComponent* Owner, SWMgr *mgr = 0, char *modtype = 0);
+ void RefreshActiveSheet();
+ virtual void __fastcall CreateWnd();
+
+__published:
+ TPageControl *pageControl;
+ void __fastcall PageControl1Change(TObject *Sender);
+};
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/prototype/TextPanel.cpp b/apps/windoze/CBuilder5/prototype/TextPanel.cpp
new file mode 100644
index 0000000..a534e12
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/TextPanel.cpp
@@ -0,0 +1,183 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#include <vcl/clipbrd.hpp>
+#pragma hdrstop
+
+#include "TextPanel.h"
+#pragma package(smart_init)
+#include "swdisprtfchap.h"
+#include <swconfig.h>
+#include <swmodule.h>
+#include "Greek2Greek.h"
+#include <utilfuns.h>
+
+class RTFDisp : public SWDisplay {
+ SWDispRTF *edit;
+public:
+ RTFDisp(SWDispRTF *iedit) { edit = iedit; }
+ RTFDisp() {}
+ char Display(SWModule &imodule) {
+ edit->Display(imodule);
+ }
+};
+
+
+//---------------------------------------------------------------------------
+// ValidCtrCheck is used to assure that the components created do not have
+// any pure virtual functions.
+//
+
+static inline void ValidCtrCheck(TTextPanel *)
+{
+ new TTextPanel(NULL);
+}
+//---------------------------------------------------------------------------
+__fastcall TTextPanel::TTextPanel(TComponent* Owner, SWModule *mod, char *font)
+ : TPanel(Owner)
+{
+ module = mod;
+ this->font = 0;
+ stdstr(&(this->font), font);
+ menu = new TPopupMenu(this);
+ menu->OnPopup = PopupMenuPopup;
+
+ TMenuItem * newitem;
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "&Copy";
+ newitem->Hint = "Copy text to clipboard";
+ newitem->Default = false;
+ newitem->OnClick = Copy1Click;
+ menu->Items->Add(newitem);
+ if (!strcmp(mod->Name(), "N27U4")) {
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "Copy as &B-Greek Transliteration";
+ newitem->Hint = "Copy text to clipboard as B-Greek Transliteration";
+ newitem->Default = false;
+ newitem->OnClick = CopyasBGreekTransliteration1Click;
+ menu->Items->Add(newitem);
+ }
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "Dictionary Lookup";
+ newitem->Hint = "Send text to dictionary key for lookup";
+ newitem->Default = false;
+ newitem->OnClick = DictionaryLookup1Click;
+ menu->Items->Add(newitem);
+}
+
+
+void __fastcall TTextPanel::CreateWnd() {
+ TPanel::CreateWnd();
+ SWDispRTFChap *newrtf = new SWDispRTFChap(this);
+ char buf[512];
+ SectionMap::iterator sit;
+
+// newtab->Caption = mod->Name();
+// newtab->Hint = mod->Description();
+// newtab->PageControl = PageControl1;
+ newrtf->Parent = this;
+ newrtf->Align = alClient;
+ newrtf->ScrollBars = ssVertical;
+ newrtf->ReadOnly = true;
+ newrtf->PopupMenu = menu;
+ newrtf->OnMouseDown = RTFMouseDown;
+
+ BuildRTFHeader(buf, font, 512);
+ newrtf->RTFHeader = buf;
+
+// if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+// newrtf->MarkCurrentVerse = (atoi((*sit).second["AutoVSColor"].c_str())) ? true:false;
+// }
+ display = new RTFDisp(newrtf);
+ module->Disp(display);
+// mod->SetKey(DefaultVSKey);
+
+}
+__fastcall TTextPanel::~TTextPanel() {
+ delete display;
+ if (font)
+ delete font;
+}
+//---------------------------------------------------------------------------
+namespace Textpanel
+{
+ void __fastcall PACKAGE Register()
+ {
+ TComponentClass classes[1] = {__classid(TTextPanel)};
+ RegisterComponents("Samples", classes, 0);
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TTextPanel::PopupMenuPopup(TObject *Sender)
+{
+}
+void TTextPanel::BuildRTFHeader(char *buf, char *font, int max)
+{
+ char buf1[1024], buf2[1024];
+ SectionMap::iterator sit;
+
+ sprintf(buf1, "{\\rtf1\\ansi");
+ if (font)
+ sprintf(buf2, "{\\fonttbl{\\f0\\fdecor\\fprq2 %s;}{\\f1\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f2\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f3\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f4\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f7\\froman\\fcharset2\\fprq2 Symbol;}{\\f8\\froman\\fcharset2\\fprq2 Symbol;}}", font);
+ else sprintf(buf2, "{\\fonttbl{\\f0\\fdecor\\fprq2 Times New Roman;}{\\f1\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f7\\froman\\fcharset2\\fprq2 Symbol;}{\\f8\\froman\\fcharset2\\fprq2 Symbol;}}");
+ strcat(buf1, buf2);
+
+// if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+// sprintf(buf2, "{\\colortbl;\\red0\\green0\\blue255;\\red%d\\green%d\\blue%d;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red255\\green0\\blue0;}",
+// atoi((*sit).second["CurrentVSColorRed"].c_str()),
+// atoi((*sit).second["CurrentVSColorGreen"].c_str()),
+// atoi((*sit).second["CurrentVSColorBlue"].c_str()));
+// }
+// else
+ sprintf(buf2, "{\\colortbl;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red255\\green0\\blue0;}");
+ strcat(buf1, buf2);
+ memset(buf, 0, max);
+ strncpy(buf, buf1, max);
+}
+
+
+void __fastcall TTextPanel::CopyasBGreekTransliteration1Click(TObject *Sender)
+{
+ char *retbuf;
+ int len;
+ TClipboard *clip = new TClipboard();
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ len = rtf->SelText.Length() * 2;
+ retbuf = new char [ len ];
+ if (!Greek2bGreek(retbuf, rtf->SelText.c_str(), len)) {
+ clip->SetTextBuf(retbuf);
+ }
+ delete clip;
+}
+
+void __fastcall TTextPanel::Copy1Click(TObject *Sender)
+{
+ int wordstart;
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ if (!rtf->SelLength) {
+ for (wordstart = rtf->SelStart; (wordstart > -1)&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length() - 1) - rtf->SelStart - 1;
+ }
+ rtf->CopyToClipboard();
+}
+void __fastcall TTextPanel::DictionaryLookup1Click(TObject *Sender)
+{
+ int wordstart;
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ if (!rtf->SelLength) {
+ for (wordstart = rtf->SelStart; (wordstart > -1)&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length() - 1) - rtf->SelStart - 1;
+ }
+// DictKeyEdit->Text = Trim(rtf->SelText);
+}
+void __fastcall TTextPanel::RTFMouseDown(TObject *Sender, TMouseButton Button,
+ TShiftState Shift, int X, int Y)
+{
+ ((TWinControl *)Sender)->SetFocus();
+}
diff --git a/apps/windoze/CBuilder5/prototype/TextPanel.h b/apps/windoze/CBuilder5/prototype/TextPanel.h
new file mode 100644
index 0000000..6103088
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/TextPanel.h
@@ -0,0 +1,34 @@
+//---------------------------------------------------------------------------
+#ifndef TextPanelH
+#define TextPanelH
+//---------------------------------------------------------------------------
+#include <SysUtils.hpp>
+#include <Controls.hpp>
+#include <Classes.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+class SWDisplay;
+class SWModule;
+//---------------------------------------------------------------------------
+class PACKAGE TTextPanel : public TPanel
+{
+private:
+protected:
+public:
+ __fastcall TTextPanel(TComponent* Owner, SWModule *mod = 0, char *font = 0);
+ __fastcall virtual ~TTextPanel();
+ SWDisplay *display;
+ SWModule *module;
+ char *font;
+__published:
+ TPopupMenu *menu;
+ virtual void __fastcall CreateWnd();
+ void __fastcall PopupMenuPopup(TObject *Sender);
+ void __fastcall CopyasBGreekTransliteration1Click(TObject *Sender);
+ void __fastcall Copy1Click(TObject *Sender);
+ void __fastcall DictionaryLookup1Click(TObject *Sender);
+ void __fastcall RTFMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void BuildRTFHeader(char *buf, char *font, int max);
+};
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/prototype/back.bmp b/apps/windoze/CBuilder5/prototype/back.bmp
new file mode 100644
index 0000000..5284295
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/back.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/prototype/biblecsmgr.cpp b/apps/windoze/CBuilder5/prototype/biblecsmgr.cpp
new file mode 100644
index 0000000..5532081
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/biblecsmgr.cpp
@@ -0,0 +1,88 @@
+//---------------------------------------------------------------------------
+#include "BibleCSMGR.h"
+#include <swconfig.h>
+#include <gbfrtf.h>
+#include <rwprtf.h>
+#include <rawgbf.h>
+#include <thmlrtf.h>
+//---------------------------------------------------------------------------
+BibleCSMGR::BibleCSMGR(TModInstFrm *iModInstFrm) : SWMgr(0, 0, false)
+{
+ gbftortf = new GBFRTF();
+ rwptortf = new RWPRTF();
+ thmltortf = new ThMLRTF();
+ ModInstFrm = iModInstFrm;
+ Load();
+}
+
+
+BibleCSMGR::~BibleCSMGR()
+{
+ if (gbftortf)
+ delete gbftortf;
+
+ if (rwptortf)
+ delete rwptortf;
+
+ if (thmltortf)
+ delete thmltortf;
+}
+
+
+void BibleCSMGR::AddRenderFilters(SWModule *module, ConfigEntMap &section)
+{
+ string sourceformat;
+ ConfigEntMap::iterator entry;
+
+ sourceformat = ((entry = section.find("SourceType")) != section.end()) ? (*entry).second : (string)"";
+ // Temporary: To support old module types
+// if (sourceformat.empty()) {
+// try {
+// if (dynamic_cast<RawGBF *>(module))
+// sourceformat = "GBF";
+// }
+// catch ( ... ) {}
+// }
+//
+ if (!stricmp(sourceformat.c_str(), "GBF")) {
+ module->AddRenderFilter(gbftortf);
+ }
+
+ if (!stricmp(module->Name(), "RWP"))
+ module->AddRenderFilter(rwptortf);
+
+ if (!stricmp(sourceformat.c_str(), "THML"))
+ module->AddRenderFilter(thmltortf);
+}
+
+
+char BibleCSMGR::AddModToConfig(int conffd, const char *fname)
+{
+ SWConfig modconf(fname);
+ SectionMap::iterator section;
+ AnsiString abouttext = "";
+ bool logflag;
+ TMemoryStream *RTFStream = new TMemoryStream();
+ char retval;
+
+ section = modconf.Sections.begin();
+
+ ModInstFrm->ModText->Caption = "";
+ ModInstFrm->ModText->Caption = ModInstFrm->ModText->Caption + "Found new module [ " + (*(*section).second.find("Description")).second.c_str() + " ]. Installing...";
+
+ abouttext = abouttext + "{\\fs20\\cf0 " + (*(*section).second.find("About")).second.c_str() + " }";
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(abouttext.c_str(), abouttext.Length());
+ RTFStream->Position = 0;
+ ModInstFrm->AboutText->Lines->LoadFromStream(RTFStream);
+ delete RTFStream;
+
+ ModInstFrm->ShowModal();
+
+ logflag = SWLog::systemlog->log;
+ SWLog::systemlog->log = false;
+ retval = SWMgr::AddModToConfig(conffd, fname);
+ SWLog::systemlog->log = logflag;
+
+ return retval;
+}
diff --git a/apps/windoze/CBuilder5/prototype/biblecsmgr.h b/apps/windoze/CBuilder5/prototype/biblecsmgr.h
new file mode 100644
index 0000000..38f8320
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/biblecsmgr.h
@@ -0,0 +1,23 @@
+//---------------------------------------------------------------------------
+#ifndef biblecsmgrH
+#define biblecsmgrH
+#include <swmgr.h>
+#include "ModInstForm.h"
+//---------------------------------------------------------------------------
+class BibleCSMGR : public SWMgr {
+ TModInstFrm *ModInstFrm;
+ SWFilter *gbftortf;
+ SWFilter *rwptortf;
+ SWFilter *thmltortf;
+
+protected:
+ virtual char AddModToConfig(int conffd, const char *fname);
+ virtual void AddRenderFilters(SWModule *module, ConfigEntMap &section);
+
+public:
+ BibleCSMGR(TModInstFrm *iModInstFrm);
+ virtual ~BibleCSMGR();
+};
+
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/prototype/bookmark.bmp b/apps/windoze/CBuilder5/prototype/bookmark.bmp
new file mode 100644
index 0000000..4b6df0c
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/bookmark.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/prototype/bookmarkfrm.cpp b/apps/windoze/CBuilder5/prototype/bookmarkfrm.cpp
new file mode 100644
index 0000000..e284b85
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/bookmarkfrm.cpp
@@ -0,0 +1,222 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "bookmarkfrm.h"
+#include <swconfig.h>
+#include <dirent.h>
+#include "mainfrm.h"
+#include "newbmfilefrm.h"
+#include <io.h>
+#include <dir.h>
+
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TBookmarksfrm *Bookmarksfrm;
+//---------------------------------------------------------------------------
+__fastcall TBookmarksfrm::TBookmarksfrm(TComponent* Owner)
+ : TForm(Owner)
+{
+ SWConfig *bookmarks;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ TTreeNode *node;
+
+ DIR *dir;
+ struct dirent *ent;
+ string conffile;
+ bmdir = "";
+
+ bmtree->Items->Clear();
+
+ if ((sit = Form1->optionsconf->Sections.find("Bookmarks")) != Form1->optionsconf->Sections.end())
+ bmdir = (*sit).second["Directory"];
+
+// Add Personal Bookmarks first, or if they don't exist, ADD A BLANK BRANCH first in the tree
+// --------------------------------------------------------------------------
+
+ if (bmdir == "")
+ bmdir = "./bookmarks/";
+
+ if (access(bmdir.c_str(), 0)) { // directory does not exist
+ _mkdir(bmdir.c_str());
+ }
+
+ conffile = bmdir + "personal.conf";
+ bookmarks = new SWConfig(conffile.c_str());
+ if ((sit = bookmarks->Sections.find("ROOT")) != bookmarks->Sections.end()) {
+ if ((eit = (*sit).second.begin()) != (*sit).second.end()) {
+ node = bmtree->Items->AddObject(bmtree->Selected, (*eit).second.c_str(), *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ AddSection(bookmarks, bmtree, node, (*eit).first.c_str());
+ }
+ }
+ else bmtree->Items->AddObject(bmtree->Selected, "Personal Bookmarks", *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ delete bookmarks;
+// --------------------------------------------------------------------------
+
+// Add all other bookmark files ---------------------------------------------
+ if (dir = opendir(bmdir.c_str())) {
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, "personal.conf")) && (strcmp(ent->d_name, "."))&& (strcmp(ent->d_name, ".."))) {
+ conffile = bmdir;
+ conffile += ent->d_name;
+ bookmarks = new SWConfig(conffile.c_str());
+ if ((sit = bookmarks->Sections.find("ROOT")) != bookmarks->Sections.end()) {
+ if ((eit = (*sit).second.begin()) != (*sit).second.end()) { // Currently supports only ONE topsection per file because on save, each topsection designates which file to rewrite
+ node = bmtree->Items->AddObject(bmtree->Selected, (*eit).second.c_str(), *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ AddSection(bookmarks, bmtree, node, (*eit).first.c_str());
+ }
+ }
+ delete bookmarks;
+ }
+ }
+ closedir(dir);
+ }
+}
+
+
+__fastcall TBookmarksfrm::~TBookmarksfrm()
+{
+ list <String *>::iterator it;
+
+ SaveBookmarks();
+
+ for (it = bmfiles.begin(); it != bmfiles.end(); it++)
+ delete *it;
+}
+
+
+//---------------------------------------------------------------------------
+
+void TBookmarksfrm::AddSection(SWConfig *config, TTreeView *tree, TTreeNode *parent, String section)
+{
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ TTreeNode *node;
+
+ if ((sit = config->Sections.find(section.c_str())) != config->Sections.end()) {
+ for (eit = (*sit).second.begin(); eit != (*sit).second.end(); eit++) {
+ node = tree->Items->AddChild(parent, (*eit).second.c_str());
+ AddSection(config, tree, node, (*eit).first.c_str());
+ }
+ }
+}
+
+
+void __fastcall TBookmarksfrm::bmtreeDragDrop(TObject *Sender, TObject *Source,
+ int X, int Y)
+{
+ bmtree->Selected->MoveTo(bmtree->DropTarget, naAddChildFirst);
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::bmtreeDragOver(TObject *Sender, TObject *Source,
+ int X, int Y, TDragState State, bool &Accept)
+{
+ Accept = false;
+
+ if (String(Source->ClassName()) == "TTreeView") {
+ if (Source == bmtree) {
+ if (bmtree->Selected->Data) {
+ if (strcmp((*(String*)(bmtree->Selected->Data)).c_str(),(bmdir + "personal.conf").c_str())) {
+ Accept = true;
+ }
+ }
+ else Accept = true;
+ }
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::bmtreeDblClick(TObject *Sender)
+{
+ if (!bmtree->Selected->getFirstChild()) {
+ Form1->DefaultVSKey = bmtree->Selected->Text.c_str();
+ Form1->TextKeyChanged();
+ }
+
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::AddChild1Click(TObject *Sender)
+{
+ bmtree->Selected->Expand(false);
+ bmtree->Items->AddChildFirst(bmtree->Selected, "New Topic")->EditText();
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::Delete1Click(TObject *Sender)
+{
+ if (bmtree->Selected->Data) {
+ if (strcmp((*(String*)(bmtree->Selected->Data)).c_str(),(bmdir + "personal.conf").c_str())) {
+ bmtree->Selected->Delete();
+ }
+ }
+ else bmtree->Selected->Delete();
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::Rename1Click(TObject *Sender)
+{
+ bmtree->Selected->EditText();
+}
+//---------------------------------------------------------------------------
+
+void TBookmarksfrm::SaveBookmarks()
+{
+ TTreeNode *tree = 0;
+ SWConfig *bmconf;
+ ConfigEntMap emap;
+ SectionMap::iterator sit;
+ char buf[15];
+ bool personal, other;
+ list <String *>::iterator it;
+ string persfile;
+
+ if (bmtree->Items->Count)
+ tree = bmtree->Items->Item[0];
+
+ if ((sit = Form1->optionsconf->Sections.find("Bookmarks")) != Form1->optionsconf->Sections.end()) {
+ personal = (atoi((*sit).second["AutoSavePersonal"].c_str())) ? true:false;
+ other = (atoi((*sit).second["AutoSaveOther"].c_str())) ? true:false;
+ }
+
+ persfile = bmdir + "personal.conf";
+ for (it = bmfiles.begin(); it != bmfiles.end(); it++) { // delete all bookmark files before saving in case a top level was deleted
+ if (((!strcmp((*it)->c_str(), persfile.c_str())) && personal) || ((strcmp((*it)->c_str(), persfile.c_str())) && other))
+ unlink((*it)->c_str());
+ }
+
+ for (;tree;tree = tree->getNextSibling()) {
+ if (((*((String *)tree->Data) == persfile.c_str()) && personal) || ((*((String *)tree->Data) != persfile.c_str()) && other)) {
+ bmconf = new SWConfig(((String *)tree->Data)->c_str());
+ emap = bmconf->Sections["ROOT"];
+ sprintf(buf, "branch%d", tree->AbsoluteIndex);
+ emap[buf] = tree->Text.c_str();
+ AddSectionToConf(bmconf, buf, tree);
+ bmconf->Sections["ROOT"] = emap;
+ bmconf->Save();
+ }
+ }
+}
+
+
+void TBookmarksfrm::AddSectionToConf(SWConfig *config, String section, TTreeNode *tree)
+{
+ ConfigEntMap sit;
+ char buf[15];
+
+ if (tree = tree->getFirstChild()) {
+ sit = config->Sections[section.c_str()];
+ for (; tree; tree = tree->getNextSibling()) {
+ sprintf(buf, "branch%d", tree->AbsoluteIndex);
+ sit[buf] = tree->Text.c_str();
+ AddSectionToConf(config, buf, tree);
+ }
+ config->Sections[section.c_str()] = sit;
+ }
+}
+
+void __fastcall TBookmarksfrm::NewBookmarkFile1Click(TObject *Sender)
+{
+ if (NewBMfrm->ShowModal() == mrOk) {
+ bmtree->Items->AddObject(bmtree->Items->Item[0], NewBMfrm->bmtitle->Text, *bmfiles.insert(bmfiles.begin(), new String(String(bmdir.c_str()) + NewBMfrm->bmfile->Text + String(".conf"))));
+ }
+}
+//--------------------------------------------------------------------------- \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/prototype/bookmarkfrm.dfm b/apps/windoze/CBuilder5/prototype/bookmarkfrm.dfm
new file mode 100644
index 0000000..deb814d
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/bookmarkfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder5/prototype/bookmarkfrm.h b/apps/windoze/CBuilder5/prototype/bookmarkfrm.h
new file mode 100644
index 0000000..4c37796
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/bookmarkfrm.h
@@ -0,0 +1,48 @@
+//---------------------------------------------------------------------------
+#ifndef bookmarkfrmH
+#define bookmarkfrmH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ComCtrls.hpp>
+#include <swconfig.h>
+#include <vcl\Menus.hpp>
+#include <list>
+//---------------------------------------------------------------------------
+class TBookmarksfrm : public TForm
+{
+__published: // IDE-managed Components
+ TTreeView *bmtree;
+ TPopupMenu *BMPopup;
+ TMenuItem *Delete1;
+ TMenuItem *AddChild1;
+ TMenuItem *Rename1;
+ TMenuItem *N1;
+ TMenuItem *NewBookmarkFile1;
+ void __fastcall bmtreeDragDrop(TObject *Sender, TObject *Source, int X, int Y);
+ void __fastcall bmtreeDragOver(TObject *Sender, TObject *Source, int X, int Y,
+ TDragState State, bool &Accept);
+ void __fastcall bmtreeDblClick(TObject *Sender);
+ void __fastcall AddChild1Click(TObject *Sender);
+ void __fastcall Delete1Click(TObject *Sender);
+ void __fastcall Rename1Click(TObject *Sender);
+ void __fastcall NewBookmarkFile1Click(TObject *Sender);
+private: // User declarations
+ void AddSection(SWConfig *config, TTreeView *tree, TTreeNode *parent, String section);
+ list <String *> bmfiles; // so we can delete each display we create
+
+
+public: // User declarations
+ string bmdir;
+ __fastcall TBookmarksfrm(TComponent* Owner);
+ __fastcall ~TBookmarksfrm();
+ void SaveBookmarks();
+ void AddSectionToConf(SWConfig *config, String section, TTreeNode *tree);
+};
+//---------------------------------------------------------------------------
+extern TBookmarksfrm *Bookmarksfrm;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/prototype/bookmarks/personal.conf b/apps/windoze/CBuilder5/prototype/bookmarks/personal.conf
new file mode 100644
index 0000000..9608d37
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/bookmarks/personal.conf
@@ -0,0 +1,7 @@
+
+[ROOT]
+branch0=Personal Bookmarks
+
+[branch0]
+branch1=Ezekiel 1:1
+
diff --git a/apps/windoze/CBuilder5/prototype/desktop.bmp b/apps/windoze/CBuilder5/prototype/desktop.bmp
new file mode 100644
index 0000000..5692668
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/desktop.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/prototype/desktop2.bmp b/apps/windoze/CBuilder5/prototype/desktop2.bmp
new file mode 100644
index 0000000..fa1bf08
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/desktop2.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/prototype/editentryfrm.cpp b/apps/windoze/CBuilder5/prototype/editentryfrm.cpp
new file mode 100644
index 0000000..e9404f8
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/editentryfrm.cpp
@@ -0,0 +1,332 @@
+#include <vcl.h>
+#pragma hdrstop
+#include <windows.hpp>
+#include <stdlib.h>
+#include <stdio.h>
+#include "editentryfrm.h"
+#include <swdisprtf.h>
+
+const float RulerAdj = 4.0/3.0;
+const int GutterWid = 6;
+//----------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TEditEntry *EditEntry;
+//----------------------------------------------------------------------------
+__fastcall TEditEntry::TEditEntry(TComponent *Owner)
+ : TForm(Owner)
+{
+ ResultBuf = 0;
+}
+
+
+__fastcall TEditEntry::~TEditEntry()
+{
+ if (ResultBuf)
+ delete [] ResultBuf;
+}
+
+
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::SelectionChange(TObject */*Sender*/)
+{
+ char sizebuf[6];
+
+ try {
+ FUpdating = True;
+ FirstInd->Left = int(RichEdit1->Paragraph->FirstIndent*RulerAdj)-
+ 4+GutterWid;
+ LeftInd->Left = int((RichEdit1->Paragraph->LeftIndent+
+ RichEdit1->Paragraph->FirstIndent)*RulerAdj)-
+ 4+GutterWid;
+ RightInd->Left = Ruler->ClientWidth-6-int(
+ (RichEdit1->Paragraph->RightIndent+GutterWid)*RulerAdj);
+
+ BoldButton->Down = RichEdit1->SelAttributes->Style.Contains(fsBold);
+ ItalicButton->Down = RichEdit1->SelAttributes->Style.Contains(fsItalic);
+ UnderlineButton->Down = RichEdit1->SelAttributes->Style.Contains(fsUnderline);
+
+ BulletsButton->Down = bool(RichEdit1->Paragraph->Numbering);
+
+ FontSize->Text = itoa(RichEdit1->SelAttributes->Size, sizebuf, 10);
+
+ switch((int)RichEdit1->Paragraph->Alignment)
+ { case 0: LeftAlign->Down = True; break;
+ case 1: RightAlign->Down = True; break;
+ case 2: CenterAlign->Down = True; break;
+ }
+ }
+ catch (...) {
+ FUpdating = False;
+ }
+ FUpdating = False;
+}
+//----------------------------------------------------------------------------
+TTextAttributes *__fastcall TEditEntry::CurrText(void)
+{
+ return RichEdit1->SelAttributes;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::CheckFileSave(void)
+{
+ if ( RichEdit1->Modified ) {
+ switch(MessageBox(Handle, "Save Changes?","Modify Comment",MB_YESNOCANCEL | MB_ICONQUESTION)) {
+ case ID_YES : ExtractRTF(); break;
+ case ID_CANCEL : Abort(); break;
+ default:
+ if (ResultBuf)
+ delete [] ResultBuf;
+ ResultBuf = 0;
+ break;
+ };
+ }
+}
+
+
+void __fastcall TEditEntry::SetupRuler(void)
+{ int iCtr = 1;
+ char sTmp[201];
+ while (iCtr < 200) {
+ sTmp[iCtr] = 9;
+ iCtr++;
+ sTmp[iCtr] = '|';
+ iCtr++;
+ }
+ Ruler->Caption = (AnsiString)sTmp;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::SetEditRect(void)
+{ TRect Rct = Rect(GutterWid, 0, RichEdit1->ClientWidth-GutterWid,
+ ClientHeight);
+ SendMessage(RichEdit1->Handle, EM_SETRECT, 0, long(&Rct));
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormCreate(TObject* /*Sender*/)
+{ Application->OnHint = &ShowHint;
+ SetupRuler();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::ShowHint(TObject* /*Sender*/)
+{ StatusBar->SimpleText = Application->Hint;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::EditUndoClick(TObject* /*Sender*/)
+{ if ( RichEdit1->HandleAllocated() )
+ SendMessage(RichEdit1->Handle, EM_UNDO, 0, 0);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::EditCutClick(TObject* /*Sender*/)
+{ RichEdit1->CutToClipboard();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::EditCopyClick(TObject* /*Sender*/)
+{ RichEdit1->CopyToClipboard();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::EditPasteClick(TObject* /*Sender*/)
+{ RichEdit1->PasteFromClipboard();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::RulerResize(TObject* /*Sender*/)
+{ RulerLine->Width = (int)Ruler->ClientWidth - (RulerLine->Left*2);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormResize(TObject* Sender)
+{ SetEditRect();
+ SelectionChange(Sender);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormPaint(TObject* /*Sender*/)
+{ SetEditRect();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::BoldButtonClick(TObject* /*Sender*/)
+{ if ( !FUpdating )
+ { if ( BoldButton->Down )
+ CurrText()->Style = CurrText()->Style << fsBold;
+ else
+ CurrText()->Style = CurrText()->Style >> fsBold;
+ }
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::ItalicButtonClick(TObject* /*Sender*/)
+{ if ( !FUpdating )
+ {
+ if ( ItalicButton->Down )
+ CurrText()->Style = CurrText()->Style << fsItalic;
+ else
+ CurrText()->Style = CurrText()->Style >> fsItalic;
+ }
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::UnderlineButtonClick(TObject* /*Sender*/)
+{
+ if ( !FUpdating ) {
+ if ( UnderlineButton->Down )
+ CurrText()->Style = CurrText()->Style << fsUnderline;
+ else CurrText()->Style = CurrText()->Style >> fsUnderline;
+ }
+}
+
+
+void __fastcall TEditEntry::FontSizeChange(TObject* /*Sender*/)
+{
+ int fontsize = atoi(FontSize->Text.c_str());
+
+ if ((!FUpdating) && (fontsize)) {
+ if (fontsize < 1) {
+ ShowMessage("Please Enter a Number betweek 1 and 1638");
+ FontSize->Text = 1;
+ }
+ else if (fontsize > 1638) {
+ ShowMessage("Please Enter a Number betweek 1 and 1638");
+ FontSize->Text = 1638;
+ }
+ CurrText()->Size = atoi(FontSize->Text.c_str());
+ }
+}
+
+
+void __fastcall TEditEntry::AlignClick(TObject* Sender)
+{
+ if ( !FUpdating ) {
+ TControl *oAliBtn = (TControl*)(Sender);
+ RichEdit1->Paragraph->Alignment = (TAlignment)oAliBtn->Tag;
+ }
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::BulletsButtonClick(TObject* /*Sender*/)
+{ if ( !FUpdating )
+ RichEdit1->Paragraph->Numbering = (TNumberingStyle)BulletsButton->Down;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormCloseQuery(TObject* /*Sender*/,
+ bool & CanClose)
+{ try {
+ CheckFileSave();
+ }
+ catch (...) {
+ CanClose = False;
+ }
+}
+//----------------------------------------------------------------------------
+
+//***************************
+//***Ruler Indent Dragging***
+//***************************
+
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::RulerItemMouseDown(TObject * Sender,
+ TMouseButton Button, TShiftState Shift, int X, int Y)
+{ TLabel * oTmpLabel = (TLabel *)Sender;
+ FDragOfs = oTmpLabel->Width / 2;
+ oTmpLabel->Left = oTmpLabel->Left+X-FDragOfs;
+ FDragging = True;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::RulerItemMouseMove(TObject *Sender, TShiftState Shift, int X, int /*Y*/) {
+ if (FDragging) {
+ TLabel *oTmpLabel = (TLabel *)Sender;
+ oTmpLabel->Left = oTmpLabel->Left+X-FDragOfs;
+ oTmpLabel->Left -= oTmpLabel->Left % 10;
+ }
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FirstIndMouseUp(TObject *Sender, TMouseButton
+ Button, TShiftState Shift, int X, int Y)
+{ FDragging = False;
+ RichEdit1->Paragraph->FirstIndent = int((FirstInd->Left+FDragOfs-GutterWid) / RulerAdj);
+ LeftIndMouseUp(Sender, Button, Shift, X, Y);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::LeftIndMouseUp(TObject *Sender, TMouseButton
+ /*Button*/, TShiftState /*Shift*/, int /*X*/, int /*Y*/)
+{ FDragging = False;
+ RichEdit1->Paragraph->LeftIndent = int((LeftInd->Left+FDragOfs-GutterWid)/
+ RulerAdj)-RichEdit1->Paragraph->FirstIndent;
+ SelectionChange(Sender);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::RightIndMouseUp(TObject *Sender, TMouseButton
+ /*Button*/, TShiftState /*Shift*/, int /*X*/, int /*Y*/)
+{ FDragging = False;
+ RichEdit1->Paragraph->RightIndent =
+ int((Ruler->ClientWidth-RightInd->Left+FDragOfs-2) /
+ RulerAdj)-2*GutterWid;
+ SelectionChange(Sender);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormActivate(TObject *Sender)
+{
+ System::AnsiString newtext, tmptext;
+
+ if (Module) {
+ TMemoryStream *RTFStream = new TMemoryStream();
+ newtext = RTFDisplay->RTFHeader;
+ Module->Error(); // clear error;
+ newtext = newtext + "\\pard \\nowidctlpar \\cf0 ";
+ (char *)*Module; // force key to snap to entry before pulling out the text of the key
+ tmptext = (char *)*Module;
+
+ newtext = newtext + RTFDisplay->RTFVersePre + " " + tmptext + RTFDisplay->RTFVersePost;
+ newtext = newtext + RTFDisplay->RTFTrailer;
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(newtext.c_str(), newtext.Length());
+ RTFStream->Position = 0;
+ RichEdit1->Lines->LoadFromStream(RTFStream);
+ delete RTFStream;
+ }
+ SelectionChange(this);
+ RichEdit1->SetFocus();
+ if (ResultBuf)
+ delete [] ResultBuf;
+ ResultBuf = 0;
+}
+//---------------------------------------------------------------------
+
+void TEditEntry::ExtractRTF()
+{
+ System::AnsiString newtext, tmptext;
+ TMemoryStream *RTFStream = new TMemoryStream();
+ char *tmpbuf, *datastart;
+
+ RTFStream->Clear();
+ RichEdit1->Lines->SaveToStream(RTFStream);
+ RTFStream->Position = 0;
+ if (ResultBuf)
+ delete [] ResultBuf;
+ tmpbuf = new char [ RTFStream->Size + 1];
+ RTFStream->ReadBuffer(tmpbuf, RTFStream->Size);
+ tmpbuf[RTFStream->Size] = 0;
+ strtok(strstr(tmpbuf, "colortbl"), "}");
+ datastart = strtok(NULL, "");
+ ResultBuf = new char [ strlen(datastart) + 2 ];
+ ResultBuf[0] = '{';
+ strcpy(ResultBuf+1, datastart);
+ delete [] tmpbuf;
+ delete RTFStream;
+ //-------- Change all fonts to \f1
+ for (int i = 0; i < strlen(ResultBuf)-4; i++) {
+ if (ResultBuf[i] == '\\') {
+ if (ResultBuf[i+1] == '\\') { // skip a real '\' character
+ i += 1;
+ continue;
+ }
+ if (ResultBuf[i+1] == 'f') {
+ if (isdigit(ResultBuf[i+2])) {
+ ResultBuf[i+2] = '1';
+ if (isdigit(ResultBuf[i+3])) {
+ memmove(&ResultBuf[i+3], &ResultBuf[i+4], strlen(&ResultBuf[i+3]));
+ }
+ }
+ }
+ }
+ }
+}
+
+
+__fastcall TCharsetObject::TCharsetObject(int FCharset)
+ : TObject()
+{
+ Charset = FCharset;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder5/prototype/editentryfrm.dfm b/apps/windoze/CBuilder5/prototype/editentryfrm.dfm
new file mode 100644
index 0000000..3b40fc4
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/editentryfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder5/prototype/editentryfrm.h b/apps/windoze/CBuilder5/prototype/editentryfrm.h
new file mode 100644
index 0000000..058c385
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/editentryfrm.h
@@ -0,0 +1,108 @@
+//----------------------------------------------------------------------------
+//Borland C++Builder
+//Copyright (c) 1987, 1998 Borland International Inc. All Rights Reserved.
+//----------------------------------------------------------------------------
+//----------------------------------------------------------------------------
+#ifndef editentryfrmH
+#define editentryfrmH
+//----------------------------------------------------------------------------
+#include <Outline.hpp>
+#include <Grids.hpp>
+#include <Buttons.hpp>
+#include <ExtCtrls.hpp>
+#include <StdCtrls.hpp>
+#include <ComCtrls.hpp>
+#include <Menus.hpp>
+#include <Dialogs.hpp>
+#include <Forms.hpp>
+#include <Controls.hpp>
+#include <Graphics.hpp>
+#include <Classes.hpp>
+#include <SysUtils.hpp>
+#include <Messages.hpp>
+#include <Windows.hpp>
+#include <System.hpp>
+#include <swmodule.h>
+#include <swdisprtf.h>
+//----------------------------------------------------------------------------
+class TEditEntry : public TForm
+{
+__published:
+ TPanel *SpeedBar;
+ TSpeedButton *UndoButton;
+ TSpeedButton *CutButton;
+ TSpeedButton *CopyButton;
+ TSpeedButton *PasteButton;
+ TBevel *Bevel1;
+ TSpeedButton *BoldButton;
+ TSpeedButton *ItalicButton;
+ TSpeedButton *LeftAlign;
+ TSpeedButton *CenterAlign;
+ TSpeedButton *RightAlign;
+ TSpeedButton *UnderlineButton;
+ TSpeedButton *BulletsButton;
+ TEdit *FontSize;
+ TUpDown *UpDown1;
+ TPanel *Ruler;
+ TLabel *FirstInd;
+ TLabel *LeftInd;
+ TBevel *RulerLine;
+ TLabel *RightInd;
+ TStatusBar *StatusBar;
+ TRichEdit *RichEdit1;
+ TLabel *Label1;
+ void __fastcall SelectionChange(TObject *Sender);
+ void __fastcall AlignClick(TObject *Sender);
+ void __fastcall EditUndoClick(TObject *Sender);
+ void __fastcall EditCutClick(TObject *Sender);
+ void __fastcall EditCopyClick(TObject *Sender);
+ void __fastcall EditPasteClick(TObject *Sender);
+ void __fastcall RulerResize(TObject *Sender);
+ void __fastcall FormCreate(TObject *Sender);
+ void __fastcall FormResize(TObject *Sender);
+ void __fastcall FormPaint(TObject *Sender);
+ void __fastcall BoldButtonClick(TObject *Sender);
+ void __fastcall FontSizeChange(TObject *Sender);
+ void __fastcall UnderlineButtonClick(TObject *Sender);
+ void __fastcall ItalicButtonClick(TObject *Sender);
+ void __fastcall BulletsButtonClick(TObject *Sender);
+ void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
+ void __fastcall RulerItemMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void __fastcall RulerItemMouseMove(TObject *Sender, TShiftState Shift, int X, int Y);
+ void __fastcall FirstIndMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void __fastcall LeftIndMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void __fastcall RightIndMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void __fastcall FormActivate(TObject *Sender);
+
+private:
+ AnsiString FFileName;
+ bool FUpdating;
+ int FDragOfs;
+ bool FDragging;
+ TTextAttributes *__fastcall CurrText(void);
+ void __fastcall CheckFileSave(void);
+ void __fastcall SetupRuler(void);
+ void __fastcall SetEditRect(void);
+ void __fastcall ShowHint(TObject *Sender);
+
+public:
+ SWModule *Module;
+ SWDispRTF *RTFDisplay;
+
+ virtual __fastcall TEditEntry(TComponent *Owner);
+ __fastcall ~TEditEntry();
+ char *ResultBuf;
+ void ExtractRTF();
+};
+//----------------------------------------------------------------------------
+class TCharsetObject : public TObject
+{
+public:
+ int Charset;
+ __fastcall TCharsetObject(int FCharset);
+};
+//----------------------------------------------------------------------------
+extern TEditEntry *EditEntry;
+//----------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/prototype/mainfrm.cpp b/apps/windoze/CBuilder5/prototype/mainfrm.cpp
new file mode 100644
index 0000000..cfe753e
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/mainfrm.cpp
@@ -0,0 +1,825 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#include <vcl/clipbrd.hpp>
+#pragma hdrstop
+
+#include "mainfrm.h"
+#include "swdisprtfchap.h"
+#include "searchfrm.h"
+#include "swwinlog.h"
+#include "AboutBoxfrm.h"
+#include "ModInstForm.h"
+#include "biblecsmgr.h"
+#include "Greek2Greek.h"
+#include "bookmarkfrm.h"
+#include "optionfrm.h"
+#include "vrslstfrm.h"
+#include <utilstr.h>
+#include <filemgr.h>
+#include "editentryfrm.h"
+#include "versesel.h"
+#include "ModTabPanel.h"
+
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TForm1 *Form1;
+//---------------------------------------------------------------------------
+
+
+__fastcall TForm1::TForm1(TComponent* Owner)
+ : TForm(Owner)
+{
+ optionsconf = new SWConfig("./options.conf");
+
+ Lookup->Text = "[ SWORD DDE Lookup ]";
+ Search->Text = "[ SWORD DDE Search ]";
+ Application->OnHint = DisplayHint;
+}
+
+void __fastcall TForm1::DisplayHint(TObject* Sender)
+{
+ StatusBar1->SimpleText = Application->Hint;
+}
+
+//---------------------------------------------------------------------------
+__fastcall TForm1::~TForm1()
+{
+ list <SWDisplay *>::iterator it;
+ int loop;
+
+ if (mainmgr)
+ delete mainmgr;
+ for (it = displays.begin(); it != displays.end(); it++)
+ delete *it;
+ if (layoutconf)
+ delete layoutconf;
+
+ if (optionsconf)
+ delete optionsconf;
+
+// for (loop = 0; loop < 10; loop++) {
+// if (ctrlstates[loop]);
+// delete ctrlstates[loop];
+// }
+}
+//---------------------------------------------------------------------------
+void TForm1::BuildRTFHeader(char *buf, char *font, int max)
+{
+ char buf1[1024], buf2[1024];
+ SectionMap::iterator sit;
+
+ sprintf(buf1, "{\\rtf1\\ansi");
+ if (font)
+ sprintf(buf2, "{\\fonttbl{\\f0\\fdecor\\fprq2 %s;}{\\f1\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f2\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f3\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f4\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f7\\froman\\fcharset2\\fprq2 Symbol;}{\\f8\\froman\\fcharset2\\fprq2 Symbol;}}", font);
+ else sprintf(buf2, "{\\fonttbl{\\f0\\fdecor\\fprq2 Times New Roman;}{\\f1\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f7\\froman\\fcharset2\\fprq2 Symbol;}{\\f8\\froman\\fcharset2\\fprq2 Symbol;}}");
+ strcat(buf1, buf2);
+
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ sprintf(buf2, "{\\colortbl;\\red0\\green0\\blue255;\\red%d\\green%d\\blue%d;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red255\\green0\\blue0;}",
+ atoi((*sit).second["CurrentVSColorRed"].c_str()),
+ atoi((*sit).second["CurrentVSColorGreen"].c_str()),
+ atoi((*sit).second["CurrentVSColorBlue"].c_str()));
+ }
+ else sprintf(buf2, "{\\colortbl;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red255\\green0\\blue0;}");
+ strcat(buf1, buf2);
+ memset(buf, 0, max);
+ strncpy(buf, buf1, max);
+}
+
+char TForm1::CreateTextPane(SWModule *mod, char *font) {
+ TTabSheet *newtab = new TTabSheet(this);
+ SWDispRTFChap *newrtf = new SWDispRTFChap(this);
+ TTextPanel *panel = new TTextPanel(this, mod, font);
+ char buf[512];
+ SectionMap::iterator sit;
+
+ newtab->Caption = mod->Name();
+ newtab->Hint = mod->Description();
+// newtab->PageControl = PageControl1;
+ panel->Parent = newtab;
+/*
+ newrtf->Align = alClient;
+ newrtf->ScrollBars = ssVertical;
+ newrtf->ReadOnly = true;
+ newrtf->PopupMenu = (strcmp(mod->Name(), "N27U4")) ? PopupMenu2 : PopupMenu1;
+ newrtf->OnMouseDown = RTFMouseDown;
+
+ BuildRTFHeader(buf, font, 512);
+ newrtf->RTFHeader = buf;
+
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ newrtf->MarkCurrentVerse = (atoi((*sit).second["AutoVSColor"].c_str())) ? true:false;
+ }
+
+ mod->Disp(*displays.insert(displays.begin(), new RTFDisp(newrtf)));
+ mod->SetKey(DefaultVSKey);
+*/
+ return 0;
+}
+//---------------------------------------------------------------------------
+char TForm1::CreateCommentPane(SWModule *mod) {
+ TTabSheet *newtab = new TTabSheet(this);
+ TWinControl *newrtf;
+
+ if (mainmgr->config->Sections[mod->Name()]["ModDrv"] == "HREFCom") {
+// if (mainmgr->config->Sections[mod->Name()]["External"] == "1") {
+ newrtf = new TPanel(this);
+ ((TPanel *)newrtf)->Caption = "Syncronizing to External Viewer";
+ mod->Disp(*displays.insert(displays.begin(), new DispExternal()));
+/*
+ }
+ else {
+ // newrtf = new THTML(this->Handle);
+ // newrtf = new SWDispRTF(this);
+ newrtf = HTML1;
+ newrtf->Visible = true;
+ mod->Disp(*displays.insert(displays.begin(), new HREFDisp((THTML *)newrtf)));
+ // mod->Disp(*displays.insert(displays.begin(), new RTFDisp((SWDispRTF *)newrtf)));
+ }
+*/
+ }
+ else {
+ newrtf = new SWDispRTF(this);
+ mod->Disp(*displays.insert(displays.begin(), new RTFDisp((SWDispRTF *)newrtf)));
+ ((SWDispRTF *)newrtf)->ScrollBars = ssVertical;
+ ((SWDispRTF *)newrtf)->ReadOnly = true;
+ if (mainmgr->config->Sections[mod->Name()]["ModDrv"] == "RawFiles") {
+ ((SWDispRTF *)newrtf)->PopupMenu = PopupMenu3;
+ ((SWDispRTF *)newrtf)->ExpandNewLine = false;
+ }
+ else ((SWDispRTF *)newrtf)->PopupMenu = PopupMenu2;
+ ((SWDispRTF *)newrtf)->OnMouseDown = RTFMouseDown;
+ }
+
+ newtab->Caption = mod->Name();
+ newtab->Hint = mod->Description();
+ newtab->PageControl = PageControl2;
+ newrtf->Parent = newtab;
+ newrtf->Align = alClient;
+
+ mod->SetKey(DefaultVSKey);
+ return 0;
+}
+//---------------------------------------------------------------------------
+char TForm1::CreateLDPane(SWModule *mod) {
+ TTabSheet *newtab = new TTabSheet(this);
+ SWDispRTF *newrtf = new SWDispRTF(this);
+
+ newtab->Caption = mod->Name();
+ newtab->Hint = mod->Description();
+ newtab->PageControl = PageControl3;
+ newrtf->Parent = newtab;
+ newrtf->Align = alClient;
+ newrtf->ScrollBars = ssVertical;
+ newrtf->ReadOnly = true;
+ newrtf->PopupMenu = PopupMenu2;
+ newrtf->OnMouseDown = RTFMouseDown;
+
+ mod->Disp(*displays.insert(displays.begin(), new RTFDisp(newrtf)));
+ mod->SetKey(DefaultStrKey);
+ return 0;
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::PageControl1Change(TObject *Sender)
+{
+// RefreshActiveSheet(PageControl1);
+// Form1->ActiveControl = PageControl1;
+}
+//---------------------------------------------------------------------------
+void TForm1::RefreshActiveSheet(TPageControl *pc)
+{
+ ModMap::iterator it;
+
+ it = mainmgr->Modules.find(pc->ActivePage->Caption.c_str());
+ if (it != mainmgr->Modules.end()) {
+ (*it).second->Display();
+ if (logmodstate)
+ modstates.insert(modstates.begin(), new ModState(pc, pc->ActivePage, (*it).second->KeyText()));
+ }
+}
+
+
+void TForm1::TextKeyChanged()
+{
+ cbBook->ItemIndex = cbBook->Items->IndexOf(DefaultVSKey.books[DefaultVSKey.Testament()-1][DefaultVSKey.Book()-1].name);
+ CHBox->Text = DefaultVSKey.Chapter();
+ VSBox->Text = DefaultVSKey.Verse();
+ freeHandLookup->Text = (const char *)DefaultVSKey;
+ textTabs->RefreshActiveSheet();
+ logmodstate = false; // only log state once
+ RefreshActiveSheet(PageControl2);
+ logmodstate = true;
+}
+
+
+void __fastcall TForm1::btnLookupClick(TObject *Sender)
+{
+ if (!(StrToInt(CHBox->Text)) || (!StrToInt(VSBox->Text)))
+ DefaultVSKey.AutoNormalize(0);
+
+ if (StrToInt(CHBox->Text) < 0)
+ CHBox->Text = StrToInt(CHBox->Text) + 1;
+ if (StrToInt(VSBox->Text) < 0)
+ VSBox->Text = StrToInt(VSBox->Text) + 1;
+
+ DefaultVSKey = (cbBook->Text + " " + CHBox->Text + ":" + VSBox->Text).c_str();
+ TextKeyChanged();
+ DefaultVSKey.AutoNormalize(1);
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::PageControl2Change(TObject *Sender)
+{
+ RefreshActiveSheet(PageControl2);
+ Form1->ActiveControl = PageControl2;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::DictKeyEditChange(TObject *Sender)
+{
+ if (DictKeyEdit->Modified) {
+ DefaultStrKey = DictKeyEdit->Text.c_str();
+ RefreshActiveSheet(PageControl3);
+ DictKeyEdit->Modified = false;
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::PageControl3Change(TObject *Sender)
+{
+ RefreshActiveSheet(PageControl3);
+ Form1->ActiveControl = PageControl3;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::NewSearchWindow1Click(TObject *Sender)
+{
+ Form2->Show();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Exit1Click(TObject *Sender)
+{
+ Close();
+}
+
+void __fastcall TForm1::About1Click(TObject *Sender)
+{
+ AboutBox->ShowModal();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::DictionaryLookup1Click(TObject *Sender)
+{
+ int wordstart;
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ if (!rtf->SelLength) {
+ for (wordstart = rtf->SelStart; (wordstart > -1)&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length() - 1) - rtf->SelStart - 1;
+ }
+ DictKeyEdit->Text = Trim(rtf->SelText);
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::SaveLayout1Click(TObject *Sender)
+{
+ ConfigEntMap sit;
+
+ sit = layoutconf->Sections["Screen"];
+ sit["MainTop"] = IntToStr(Form1->Top).c_str();
+ sit["MainLeft"] = IntToStr(Form1->Left).c_str();
+ sit["MainHeight"] = IntToStr(Form1->Height).c_str();
+ sit["MainWidth"] = IntToStr(Form1->Width).c_str();
+ sit["TextComHeight"] = IntToStr(pnlTextCom->Height).c_str();
+ sit["TextWidth"] = IntToStr(pnlText->Width).c_str();
+ layoutconf->Sections["Screen"] = sit;
+ layoutconf->Save();
+}
+//---------------------------------------------------------------------------
+//---------------------------------------------------------------------------
+void __fastcall TForm1::FormCreate(TObject *Sender)
+{
+ ModMap::iterator it;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ AnsiString s1;
+ char *font;
+ int val;
+ int loop;
+ int maxFiles;
+
+ mainmgr = new BibleCSMGR(ModInstFrm);
+// textTabs = new TModTabPanel(this, mainmgr, "Biblical Texts");
+// textTabs->Align = alClient;
+// textTabs->Parent = pnlText;
+// logmodstate = true;
+// freshdict = true;
+// if ((maxFiles = atoi(optionsconf->Sections["System"]["MaxFiles"].c_str()))) {
+// FileMgr::systemFileMgr.maxFiles = maxFiles;
+// }
+
+// DefaultVSKey = TOP;
+// DefaultVSKey = "Genesis 1:1";
+// cbBook->Clear();
+/*
+ while (!DefaultVSKey.Error()) {
+ s1 = (const char *)DefaultVSKey;
+ s1.SetLength(s1.Length() - 4);
+ cbBook->Items->Add(s1);
+ DefaultVSKey.Book(DefaultVSKey.Book() + 1);
+ }
+ cbBook->ItemIndex = cbBook->Items->IndexOf("James");
+
+ DefaultVSKey.Persist(1); // when set to a module, make the module hold on to this actual key and not a copy
+ DefaultVSKey = "James 1:19"; // set to our standard starting verse
+ DefaultStrKey.Persist(1);
+ DefaultStrKey = "";
+ Hint = "";
+ ShowHint = true;
+ Application->ShowHint = true;
+ if (SWLog::systemlog)
+ delete SWLog::systemlog;
+ SWLog::systemlog = new SWWinLog(this->Handle); // set the system logger to our MSWindows specific SWLog class
+ layoutconf = new SWConfig("./layout.conf");
+
+ if ((sit = layoutconf->Sections.find("Screen")) != layoutconf->Sections.end()) {
+ if (val = atoi((*sit).second["MainTop"].c_str()))
+ Form1->Top = val;
+ if (val = atoi((*sit).second["MainLeft"].c_str()))
+ Form1->Left = val;
+ if (val = atoi((*sit).second["MainHeight"].c_str()))
+ Form1->Height = val;
+ if (val = atoi((*sit).second["MainWidth"].c_str()))
+ Form1->Width = val;
+ if (val = atoi((*sit).second["TextComHeight"].c_str()))
+ pnlTextCom->Height = val;
+ if (val = atoi((*sit).second["TextWidth"].c_str()))
+ pnlText->Width = val;
+ }
+
+ for (loop = 0; loop < 10; loop++)
+ ctrlstates.insert(ctrlstates.begin(), 0);
+
+ ImageList1->Add(BackBtnImage->Picture->Bitmap, NULL);
+ ImageList1->Add(SearchBtnImage->Picture->Bitmap, NULL);
+ ImageList2->Add(BookmarkBtnImage->Picture->Bitmap, NULL);
+*/
+}
+
+
+//void __fastcall TForm1::CreateWnd() {
+// TForm::CreateWnd();
+
+/*
+ for (it = mainmgr->Modules.begin(); it != mainmgr->Modules.end(); it++) {
+ if (!strcmp((*it).second->Type(), "Biblical Texts")) {
+ font = 0;
+ if ((sit = mainmgr->config->Sections.find((*it).second->Name())) != mainmgr->config->Sections.end()) {
+ if ((eit = (*sit).second.find("Font")) != (*sit).second.end()) {
+ font = (char *)(*eit).second.c_str();
+ }
+ }
+ CreateTextPane((*it).second, font);
+ }
+ if (!strcmp((*it).second->Type(), "Commentaries"))
+ CreateCommentPane((*it).second);
+ if (!strcmp((*it).second->Type(), "Lexicons / Dictionaries"))
+ CreateLDPane((*it).second);
+ }
+*/
+//}
+
+//---------------------------------------------------------------------------
+void __fastcall TForm1::LookupPokeData(TObject *Sender)
+{
+ char buf[255];
+ char *token;
+ ModMap::iterator it;
+
+ strncpy(buf, Lookup->Text.c_str(), 254);
+ buf[254] = 0;
+ token = strtok(buf, " ");
+ if ((it = mainmgr->Modules.find(token)) != mainmgr->Modules.end()) {
+ token = strtok(NULL, "");
+ (*it).second->SetKey(token);
+ Lookup->Text = (const char *)(*(*it).second);
+ }
+ else Lookup->Text = "";
+
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::SearchPokeData(TObject *Sender)
+{
+ char buf[255];
+ char *token;
+ ModMap::iterator it;
+ AnsiString retval = "";
+
+ strncpy(buf, Search->Text.c_str(), 254);
+ buf[254] = 0;
+ token = strtok(buf, " ");
+ if ((it = mainmgr->Modules.find(token)) != mainmgr->Modules.end()) {
+ token = strtok(NULL, "");
+ ListKey &results = (*it).second->Search(token, REG_ICASE);
+ while (!results.Error()) {
+ retval = retval + (const char *)results + "; ";
+ results++;
+ }
+ Search->Text = retval;
+ }
+ else Search->Text = "";
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::UpDown3Click(TObject *Sender, TUDBtnType Button)
+{
+ ModMap::iterator it;
+
+ it = mainmgr->Modules.find(PageControl3->ActivePage->Caption.c_str());
+ if (it != mainmgr->Modules.end()) {
+ if (Button == btNext)
+ (*((*it).second))++;
+ else (*((*it).second))--;
+ DictKeyEdit->Text = ((*it).second)->KeyText();
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::UpDown1Click(TObject *Sender, TUDBtnType Button)
+{
+ btnLookupClick(Sender);
+}
+//---------------------------------------------------------------------------
+
+void TForm1::RestoreState(ModState *state)
+{
+ if (state) {
+ state->pc->ActivePage = state->ap;
+// if ((state->pc == PageControl1) || (state->pc == PageControl2)) {
+// DefaultVSKey = state->key;
+// TextKeyChanged();
+// }
+ if (state->pc == PageControl3) {
+ DictKeyEdit->Text = (const char *)state->key;
+ }
+ if (state->pc->ActivePage->ControlCount)
+ Form1->ActiveControl = (TWinControl *)state->pc->ActivePage->Controls[0];
+ }
+}
+
+
+void __fastcall TForm1::BackbtnClick(TObject *Sender)
+{
+ list <ModState *>::iterator it;
+
+ logmodstate = false;
+ it = modstates.begin();
+ if (it != modstates.end()) {
+ it++;
+
+ if (it != modstates.end()) {
+ RestoreState(*it);
+ delete *modstates.begin();
+ modstates.erase(modstates.begin(), it);
+ }
+ }
+ logmodstate = true;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Button1Click(TObject *Sender)
+{
+/*
+ list <ModState *>::iterator it;
+ ListBox1->Clear();
+ for (it = modstates.begin(); it != modstates.end(); it++) {
+ ListBox1->Items->Add((*it)->ap->Caption.c_str());
+ }
+*/
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::CopyasBGreekTransliteration1Click(TObject *Sender)
+{
+ char *retbuf;
+ int len;
+ TClipboard *clip = new TClipboard();
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ len = rtf->SelText.Length() * 2;
+ retbuf = new char [ len ];
+ if (!Greek2bGreek(retbuf, rtf->SelText.c_str(), len)) {
+ clip->SetTextBuf(retbuf);
+ }
+ delete clip;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Copy1Click(TObject *Sender)
+{
+ int wordstart;
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ if (!rtf->SelLength) {
+ for (wordstart = rtf->SelStart; (wordstart > -1)&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length() - 1) - rtf->SelStart - 1;
+ }
+ rtf->CopyToClipboard();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::BookmarkItemClick(TObject *Sender)
+{
+ TMenuItem *menuchoice = (TMenuItem *)Sender;
+ DefaultVSKey = menuchoice->Caption.c_str();
+ TextKeyChanged();
+}
+
+void __fastcall TForm1::AddBookmark1Click(TObject *Sender)
+{
+// TMenuItem *newitem;
+
+ Bookmarksfrm->bmtree->Items->AddChild(Bookmarksfrm->bmtree->Items->Item[0], (const char *)DefaultVSKey);
+}
+
+void TForm1::AddSectionToMenu(TMenu *menu, TMenuItem *item, TTreeNode *tree)
+{
+ TMenuItem *newitem;
+
+ for (tree = tree->getFirstChild(); tree; tree = tree->getNextSibling()) {
+ newitem = new TMenuItem(menu);
+ newitem->Caption = tree->Text;
+ if (!tree->getFirstChild())
+ newitem->OnClick = BookmarkItemClick;
+ item->Add(newitem);
+ AddSectionToMenu(menu, newitem, tree);
+ }
+}
+
+void TForm1::RefreshBookmarksMenu(TMenu *menu, TTreeView *treeview)
+{
+ TMenuItem *newitem;
+ TTreeNode *tree = 0;
+
+ if (treeview->Items->Count)
+ tree = treeview->Items->Item[0];
+
+ while (menu->Items->Count > 3)
+ menu->Items->Delete(3);
+
+ for (;tree;tree = tree->getNextSibling()) {
+ newitem = new TMenuItem(menu);
+ newitem->Caption = tree->Text;
+ menu->Items->Add(newitem);
+ AddSectionToMenu(menu, newitem, tree);
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::BookmarkbtnClick(TObject *Sender)
+{
+ TPoint menup;
+ TPoint point;
+ point.x = 0;
+ point.y = Bookmarkbtn->Height;
+ menup = Bookmarkbtn->ClientToScreen(point);
+ RefreshBookmarksMenu(BookmarkPopup, Bookmarksfrm->bmtree);
+ BookmarkPopup->Popup(menup.x, menup.y);
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TForm1::EditBookmarks1Click(TObject *Sender)
+{
+ Bookmarksfrm->Show();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
+ TShiftState Shift)
+{
+ char buf[5];
+ int val;
+ ModMap::iterator it;
+ TPageControl *pc = textTabs->pageControl;
+
+ if ((Shift.Contains(ssCtrl)) && (!Shift.Contains(ssAlt))) {
+ if ((Key >= '0') && (Key <= '9')) {
+ sprintf(buf, "%c", Key);
+ val = atoi(buf);
+
+ if (!Shift.Contains(ssShift)) {
+ if ((Screen->ActiveControl == PageControl2) || (IsChild(PageControl2->Handle, Screen->ActiveControl->Handle)))
+ pc = PageControl2;
+ if ((Screen->ActiveControl == PageControl3) || (IsChild(PageControl3->Handle, Screen->ActiveControl->Handle)))
+ pc = PageControl3;
+
+ it = mainmgr->Modules.find(pc->ActivePage->Caption.c_str());
+ if (it != mainmgr->Modules.end()) {
+ if (ctrlstates[val])
+ delete ctrlstates[val];
+
+ ctrlstates[val] = new ModState(pc, pc->ActivePage, (*it).second->KeyText());
+ }
+ }
+ else RestoreState(ctrlstates[val]);
+ }
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Options1Click(TObject *Sender)
+{
+ ModMap::iterator it;
+ SectionMap::iterator sit;
+ ConfigEntMap emap;
+ int color;
+
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ Optionsfrm->CurrentVSColor->Brush->Color = atoi((*sit).second["CurrentVSColorRed"].c_str())
+ | (atoi((*sit).second["CurrentVSColorGreen"].c_str()) << 8)
+ | (atoi((*sit).second["CurrentVSColorBlue"].c_str()) << 16);
+ Optionsfrm->AutoVSColor->Checked = ((atoi((*sit).second["AutoVSColor"].c_str()))?true:false);
+ }
+
+ if ((sit = optionsconf->Sections.find("Bookmarks")) != optionsconf->Sections.end()) {
+ Optionsfrm->AutoBMPersonal->Checked = ((atoi((*sit).second["AutoSavePersonal"].c_str()))?true:false);
+ Optionsfrm->AutoBMOther->Checked = ((atoi((*sit).second["AutoSaveOther"].c_str()))?true:false);
+ }
+
+ if (Optionsfrm->ShowModal() == mrOk) {
+ emap = optionsconf->Sections["Appearance"];
+ color = Optionsfrm->CurrentVSColor->Brush->Color;
+ emap["CurrentVSColorRed"] = IntToStr(color & 0xFF).c_str();
+ emap["CurrentVSColorGreen"] = IntToStr((color >> 8) & 0xFF).c_str();
+ emap["CurrentVSColorBlue"] = IntToStr((color >> 16) & 0xFF).c_str();
+ emap["AutoVSColor"] = IntToStr((Optionsfrm->AutoVSColor->Checked)?1:0).c_str();
+ optionsconf->Sections["Appearance"] = emap;
+
+ emap = optionsconf->Sections["Bookmarks"];
+ emap["AutoSavePersonal"] = IntToStr((Optionsfrm->AutoBMPersonal->Checked)?1:0).c_str();
+ emap["AutoSaveOther"] = IntToStr((Optionsfrm->AutoBMOther->Checked)?1:0).c_str();
+ optionsconf->Sections["Bookmarks"] = emap;
+
+ optionsconf->Save();
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::cbBookChange(TObject *Sender)
+{
+ CHBox->Text = "1";
+ VSBox->Text = "1";
+ if (Screen->ActiveControl == cbBook)
+ btnLookupClick(Sender);
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::PopupMenuPopup(TObject *Sender)
+{
+
+ int versestart, verseend;
+ TMenuItem * newitem;
+ TPopupMenu *menu = (TPopupMenu *)Sender;
+ int staticMenuItemsCount = 0;
+
+ if (menu == PopupMenu1)
+ staticMenuItemsCount = 3;
+ else if (menu == PopupMenu2)
+ staticMenuItemsCount = 2;
+ else if (menu == PopupMenu3)
+ staticMenuItemsCount = 6;
+
+ while (menu->Items->Count > staticMenuItemsCount)
+ menu->Items->Delete(staticMenuItemsCount);
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ if (!rtf->SelLength) {
+ for (versestart = rtf->SelStart; ((versestart)&&(rtf->Text[versestart] != '#')); versestart--);
+ if (versestart) {
+ for (verseend = versestart; ((verseend < rtf->Text.Length())&&(rtf->Text[verseend] != '|')); verseend++);
+ if ((verseend < rtf->Text.Length()) && (verseend > rtf->SelStart)) {
+ int len = (verseend - versestart) + 1;
+ char *buf = new char [ len + 1 ];
+ memset(buf, 0 , len + 1);
+ strncpy(buf, &rtf->Text.c_str()[versestart], len - 2); // strip the # and | from the string
+ tmpVerseList = DefaultVSKey.ParseVerseList(buf, DefaultVSKey);
+
+ ModMap::iterator target;
+ target = mainmgr->Modules.find(((TPageControl*)rtf->Parent->Parent)->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ char *keytext = 0; // check for and remove return at end of keytext
+ stdstr(&keytext, (*(*target).second).KeyText());
+ if (keytext[strlen(keytext)-1] == '\r')
+ keytext[strlen(keytext)-1] = 0;
+
+ tmpVerseListCaption = String("VerseList from- ") + (*target).first.c_str() + ": " + keytext;
+ delete [] keytext; // ---------------------------------
+ }
+ delete [] buf;
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "-";
+ menu->Items->Add(newitem);
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "Create Verse List";
+ newitem->Hint = "Create a New Verse List Window";
+ newitem->Default = true;
+ newitem->OnClick = createVerseList;
+ menu->Items->Add(newitem);
+ versestart = 3;
+ while (!tmpVerseList.Error()) {
+ versestart++;
+ newitem = new TMenuItem(menu);
+ newitem->Caption = (const char *)tmpVerseList;
+ newitem->OnClick = BookmarkItemClick;
+ if (!(versestart%15))
+ newitem->Break = mbBreak;
+ menu->Items->Add(newitem);
+ tmpVerseList++;
+ }
+ }
+ }
+ }
+
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TForm1::createVerseList(TObject *Sender)
+{
+ TVerseListFrm *tmpForm = new TVerseListFrm(this, tmpVerseList);
+ tmpForm->Caption = tmpVerseListCaption;
+ tmpForm->Show();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::freeHandLookupKeyPress(TObject *Sender, char &Key)
+{
+ if (Key == '\r') {
+ ListKey tmpVerseList = DefaultVSKey.ParseVerseList(freeHandLookup->Text.c_str(), DefaultVSKey);
+ if (tmpVerseList.Count() > 1) {
+ TVerseListFrm *tmpForm = new TVerseListFrm(this, tmpVerseList);
+ tmpForm->Caption = "User Verse List";
+ tmpForm->Show();
+ }
+ if (tmpVerseList.Count()) {
+ tmpVerseList = TOP;
+ DefaultVSKey = tmpVerseList;
+ TextKeyChanged();
+ }
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::RTFMouseDown(TObject *Sender, TMouseButton Button,
+ TShiftState Shift, int X, int Y)
+{
+ ((TWinControl *)Sender)->SetFocus();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::EditEntry1Click(TObject *Sender)
+{
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ SWModule *module = 0;
+// EditEntry->RichEdit1->Text = rtf->Text;
+ ModMap::iterator target;
+ target = mainmgr->Modules.find(((TPageControl*)rtf->Parent->Parent)->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ EditEntry->Module = module = (*target).second;
+ EditEntry->RTFDisplay = rtf;
+ }
+ else EditEntry->Module = module = 0;
+ EditEntry->ShowModal();
+ if (EditEntry->ResultBuf) {
+ if (module)
+// DictKeyEdit->Text = EditEntry->ResultBuf; // for testing purposes
+ *module << EditEntry->ResultBuf;
+ }
+ RefreshActiveSheet(PageControl2);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::DeleteEntry1Click(TObject *Sender)
+{
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ SWModule *module = 0;
+ ModMap::iterator target;
+
+ target = mainmgr->Modules.find(((TPageControl*)rtf->Parent->Parent)->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ module = (*target).second;
+ module->deleteEntry();
+ }
+ RefreshActiveSheet(PageControl2);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::LinktoVerse1Click(TObject *Sender)
+{
+ if (VerseSelFrm->ShowModal() == mrOk) {
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ SWModule *module = 0;
+ ModMap::iterator target;
+ SWKey *linkkey = new VerseKey(VerseSelFrm->Panel2->Caption.c_str());
+
+ target = mainmgr->Modules.find(((TPageControl*)rtf->Parent->Parent)->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ module = (*target).second;
+ *module << linkkey;
+ }
+ RefreshActiveSheet(PageControl2);
+ }
+}
+//---------------------------------------------------------------------------
+
+
+
diff --git a/apps/windoze/CBuilder5/prototype/mainfrm.dfm b/apps/windoze/CBuilder5/prototype/mainfrm.dfm
new file mode 100644
index 0000000..514d39f
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/mainfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder5/prototype/mainfrm.h b/apps/windoze/CBuilder5/prototype/mainfrm.h
new file mode 100644
index 0000000..c24ca52
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/mainfrm.h
@@ -0,0 +1,238 @@
+//---------------------------------------------------------------------------
+#ifndef mainfrmH
+#define mainfrmH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ExtCtrls.hpp>
+#include <vcl\ComCtrls.hpp>
+#include <swmgr.h>
+#include <swtext.h>
+#include <strkey.h>
+#include <regex.h>
+#include <listkey.h>
+#include "swdisprtfchap.h"
+#include <vcl\Buttons.hpp>
+#include <vcl\Menus.hpp>
+#include <vcl\DdeMan.hpp>
+//#include <NMHTML.hpp>
+#include <OleCtrls.hpp>
+#include <ToolWin.hpp>
+//#include <vcl\isp.hpp>
+#include <shellapi.h>
+#include <Graphics.hpp>
+#include <ImgList.hpp>
+#include <list>
+#include <vector>
+#include "TextPanel.h"
+#include "ModTabPanel.h"
+
+class RTFDisp : public SWDisplay {
+ SWDispRTF *edit;
+public:
+ RTFDisp(SWDispRTF *iedit) { edit = iedit; }
+ RTFDisp() {}
+ char Display(SWModule &imodule) {
+ edit->Display(imodule);
+ }
+};
+
+/*
+class HREFDisp : public SWDisplay {
+ THTML *edit;
+public:
+ HREFDisp(THTML *iedit) { edit = iedit; }
+ HREFDisp() {}
+ char Display(SWModule &imodule) {
+ edit->RequestDoc((char *)imodule);
+ }
+};
+*/
+
+class DispExternal : public SWDisplay {
+public:
+ DispExternal() {}
+ char Display(SWModule &imodule) {
+ SHELLEXECUTEINFO info;
+ info.cbSize = sizeof(SHELLEXECUTEINFO);
+ info.fMask = SEE_MASK_NOCLOSEPROCESS; //SEE_MASK_CLASSNAME;
+ info.hwnd = GetFocus();
+ info.lpVerb = "open";
+ info.lpFile = (char *)imodule;
+ info.lpParameters = NULL;
+ info.lpDirectory = NULL;
+ info.nShow = 0;
+// info.lpClass = ".html";
+ ShellExecuteEx(&info);
+// ShellExecute(edit->Handle, "open", (char *)imodule, NULL, NULL, SW_SHOWNORMAL);
+ }
+};
+
+
+class ModState {
+public:
+ ModState(TPageControl *ipc, TTabSheet *iap, SWKey ikey) { pc = ipc; ap = iap; key = ikey; }
+ ModState();
+ TPageControl *pc;
+ TTabSheet* ap;
+ SWKey key;
+};
+
+//---------------------------------------------------------------------------
+class TForm1 : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *pnlTextCom;
+ TSplitter *Splitter2;
+ TPanel *pnlText;
+ TPanel *pnlComment;
+ TSplitter *Splitter1;
+ TPanel *pnlDict;
+ TPageControl *PageControl2;
+ TStatusBar *StatusBar1;
+ TPageControl *PageControl3;
+
+ TPanel *pnlDictHeader;
+ TLabel *Label1;
+ TRichEdit *DictKeyEdit;
+ TMainMenu *MainMenu1;
+ TMenuItem *Search1;
+ TMenuItem *NewSearchWindow1;
+ TMenuItem *Help1;
+ TMenuItem *About1;
+ TPopupMenu *PopupMenu2;
+ TMenuItem *DictionaryLookup1;
+ TMenuItem *File1;
+ TMenuItem *SaveLayout1;
+ TMenuItem *Exit1;
+ TMenuItem *N1;
+ TDdeServerItem *Search;
+ TDdeServerItem *Lookup;
+ TDdeServerConv *Bible;
+ TPopupMenu *PopupMenu1;
+ TMenuItem *MenuItem1;
+ TMenuItem *Copy1;
+ TMenuItem *CopyasBGreekTransliteration1;
+ TMenuItem *Copy2;
+ TMenuItem *Edit1;
+ TMenuItem *Copy3;
+ TPopupMenu *BookmarkPopup;
+ TMenuItem *AddBookmark1;
+ TMenuItem *N2;
+ TMenuItem *EditBookmarks1;
+ TMenuItem *Options1;
+ TCoolBar *CoolBar1;
+ TImageList *ImageList1;
+ TImage *BackBtnImage;
+ TImage *SearchBtnImage;
+ TToolBar *ToolBar2;
+ TToolButton *ToolButton3;
+ TToolButton *ToolButton4;
+ TPanel *pnlSpeed;
+ TPanel *Panel1;
+ TComboBox *cbBook;
+ TEdit *CHBox;
+ TUpDown *UpDown1;
+ TEdit *VSBox;
+ TUpDown *UpDown2;
+ TSpeedButton *btnLookup;
+ TToolBar *ToolBar1;
+ TImageList *ImageList2;
+ TImage *BookmarkBtnImage;
+ TSpeedButton *Bookmarkbtn;
+ TPopupMenu *PopupMenu3;
+ TMenuItem *MenuItem2;
+ TMenuItem *MenuItem3;
+ TMenuItem *N3;
+ TMenuItem *EditEntry1;
+ TMenuItem *DeleteEntry1;
+ TMenuItem *LinktoVerse1;
+ TUpDown *UpDown3;
+ TComboBox *freeHandLookup;
+ void __fastcall PageControl1Change(TObject *Sender);
+ void __fastcall btnLookupClick(TObject *Sender);
+ void __fastcall PageControl2Change(TObject *Sender);
+
+
+
+ void __fastcall DictKeyEditChange(TObject *Sender);
+ void __fastcall PageControl3Change(TObject *Sender);
+ void __fastcall NewSearchWindow1Click(TObject *Sender);
+
+ void __fastcall Exit1Click(TObject *Sender);
+ void __fastcall About1Click(TObject *Sender);
+ void __fastcall DictionaryLookup1Click(TObject *Sender);
+ void __fastcall SaveLayout1Click(TObject *Sender);
+
+ void __fastcall LookupPokeData(TObject *Sender);
+
+ void __fastcall SearchPokeData(TObject *Sender);
+ void __fastcall UpDown3Click(TObject *Sender, TUDBtnType Button);
+ void __fastcall UpDown1Click(TObject *Sender, TUDBtnType Button);
+
+
+ void __fastcall BackbtnClick(TObject *Sender);
+ void __fastcall Button1Click(TObject *Sender);
+ void __fastcall CopyasBGreekTransliteration1Click(TObject *Sender);
+ void __fastcall Copy1Click(TObject *Sender);
+
+
+
+ void __fastcall AddBookmark1Click(TObject *Sender);
+ void __fastcall BookmarkItemClick(TObject *Sender);
+ void __fastcall BookmarkbtnClick(TObject *Sender);
+ void __fastcall EditBookmarks1Click(TObject *Sender);
+
+ void __fastcall FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
+ void __fastcall Options1Click(TObject *Sender);
+ void __fastcall cbBookChange(TObject *Sender);
+
+ void __fastcall FormCreate(TObject *Sender);
+ void __fastcall DisplayHint(TObject* Sender) ;
+ void __fastcall PopupMenuPopup(TObject *Sender);
+ void __fastcall createVerseList(TObject *Sender);
+ void __fastcall freeHandLookupKeyPress(TObject *Sender, char &Key);
+ void __fastcall RTFMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void __fastcall EditEntry1Click(TObject *Sender);
+ void __fastcall DeleteEntry1Click(TObject *Sender);
+ void __fastcall LinktoVerse1Click(TObject *Sender);
+
+private: // User declarations
+ list <SWDisplay *> displays; // so we can delete each display we create
+ list <ModState *> modstates;
+ vector <ModState *> ctrlstates;
+ bool logmodstate;
+ bool freshdict;
+
+ char CreateTextPane(SWModule *mod, char *font = 0);
+ char CreateCommentPane(SWModule *mod);
+ char CreateLDPane(SWModule *mod);
+ void PushState();
+ void BackState();
+ void ForwardState();
+ void BuildRTFHeader(char *buf, char *font, int max);
+ void AddSectionToMenu(TMenu *menu, TMenuItem *item, TTreeNode *tree);
+
+public: // User declarations
+ TModTabPanel *textTabs;
+ VerseKey DefaultVSKey;
+ SWKey DefaultStrKey;
+ SWMgr *mainmgr;
+ SWConfig *layoutconf;
+ SWConfig *optionsconf;
+ __fastcall TForm1(TComponent* Owner);
+ __fastcall ~TForm1();
+// virtual void __fastcall CreateWnd();
+ void RefreshActiveSheet(TPageControl *ts);
+ void TextKeyChanged(); // updates dependents on TextKeyChanged
+ void RefreshBookmarksMenu(TMenu *menu, TTreeView *tree);
+ void RestoreState(ModState *state);
+ ListKey tmpVerseList;
+ String tmpVerseListCaption;
+};
+//---------------------------------------------------------------------------
+extern TForm1 *Form1;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/prototype/newbmfilefrm.cpp b/apps/windoze/CBuilder5/prototype/newbmfilefrm.cpp
new file mode 100644
index 0000000..c611804
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/newbmfilefrm.cpp
@@ -0,0 +1,14 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "newbmfilefrm.h"
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TNewBMfrm *NewBMfrm;
+//---------------------------------------------------------------------------
+__fastcall TNewBMfrm::TNewBMfrm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//--------------------------------------------------------------------------- \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/prototype/newbmfilefrm.dfm b/apps/windoze/CBuilder5/prototype/newbmfilefrm.dfm
new file mode 100644
index 0000000..1e88bcd
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/newbmfilefrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder5/prototype/newbmfilefrm.h b/apps/windoze/CBuilder5/prototype/newbmfilefrm.h
new file mode 100644
index 0000000..9b4c017
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/newbmfilefrm.h
@@ -0,0 +1,27 @@
+//---------------------------------------------------------------------------
+#ifndef newbmfilefrmH
+#define newbmfilefrmH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+//---------------------------------------------------------------------------
+class TNewBMfrm : public TForm
+{
+__published: // IDE-managed Components
+ TLabel *Label1;
+ TEdit *bmfile;
+ TEdit *bmtitle;
+ TLabel *Label2;
+ TButton *Button1;
+ TButton *Button2;
+private: // User declarations
+public: // User declarations
+ __fastcall TNewBMfrm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TNewBMfrm *NewBMfrm;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/prototype/optionfrm.cpp b/apps/windoze/CBuilder5/prototype/optionfrm.cpp
new file mode 100644
index 0000000..8af047a
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/optionfrm.cpp
@@ -0,0 +1,20 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "optionfrm.h"
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TOptionsfrm *Optionsfrm;
+//---------------------------------------------------------------------------
+__fastcall TOptionsfrm::TOptionsfrm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TOptionsfrm::ChooseColorbtnClick(TObject *Sender)
+{
+ ColorDialog1->Execute();
+ CurrentVSColor->Brush->Color = ColorDialog1->Color;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder5/prototype/optionfrm.dfm b/apps/windoze/CBuilder5/prototype/optionfrm.dfm
new file mode 100644
index 0000000..0b20318
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/optionfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder5/prototype/optionfrm.h b/apps/windoze/CBuilder5/prototype/optionfrm.h
new file mode 100644
index 0000000..1ea8f08
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/optionfrm.h
@@ -0,0 +1,39 @@
+//---------------------------------------------------------------------------
+#ifndef optionfrmH
+#define optionfrmH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ExtCtrls.hpp>
+#include <vcl\Dialogs.hpp>
+//---------------------------------------------------------------------------
+class TOptionsfrm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TGroupBox *GroupBox1;
+ TCheckBox *AutoBMPersonal;
+ TCheckBox *AutoBMOther;
+ TGroupBox *GroupBox2;
+ TCheckBox *AutoVSColor;
+ TShape *CurrentVSColor;
+ TColorDialog *ColorDialog1;
+ TButton *ChooseColorbtn;
+ TPanel *Panel2;
+ TButton *Button1;
+ TPanel *Panel3;
+ TButton *Button2;
+ TLabel *Label1;
+ void __fastcall ChooseColorbtnClick(TObject *Sender);
+
+private: // User declarations
+public: // User declarations
+ __fastcall TOptionsfrm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TOptionsfrm *Optionsfrm;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/prototype/options.conf b/apps/windoze/CBuilder5/prototype/options.conf
new file mode 100644
index 0000000..db0e4ce
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/options.conf
@@ -0,0 +1,15 @@
+
+[Appearance]
+AutoVSColor=1
+CurrentVSColorBlue=255
+CurrentVSColorGreen=128
+CurrentVSColorRed=0
+
+[Bookmarks]
+AutoSaveOther=1
+AutoSavePersonal=1
+Directory=
+
+[System]
+MaxFiles=40
+
diff --git a/apps/windoze/CBuilder5/prototype/search.bmp b/apps/windoze/CBuilder5/prototype/search.bmp
new file mode 100644
index 0000000..ee693be
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/search.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder5/prototype/searchfrm.cpp b/apps/windoze/CBuilder5/prototype/searchfrm.cpp
new file mode 100644
index 0000000..c5b29b2
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/searchfrm.cpp
@@ -0,0 +1,95 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "searchfrm.h"
+#include <listkey.h>
+#include "mainfrm.h"
+#include <regex.h>
+
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TForm2 *Form2;
+//---------------------------------------------------------------------------
+__fastcall TForm2::TForm2(TComponent* Owner)
+ : TForm(Owner)
+{
+ pvrtf = new SWDispRTF(this);
+
+ pvrtf->Parent = plPreview;
+ pvrtf->Align = alClient;
+ pvrtf->ScrollBars = ssVertical;
+ pvrtf->ReadOnly = true;
+// pvrtf->PopupMenu = PopupMenu2;
+
+// mod->Disp(*displays.insert(displays.begin(), new RTFDisp(newrtf)));
+// mod->SetKey(DefaultVSKey);
+// return 0;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm2::Button1Click(TObject *Sender)
+{
+// ModMap::iterator target;
+ class TWaitCursor {
+ public:
+ TWaitCursor() : oldc(Screen->Cursor) { Screen->Cursor = crHourGlass; }
+ ~TWaitCursor() { Screen->Cursor = oldc; }
+ private:
+ TCursor oldc;
+ } wait; // show hourglass
+
+ Caption = "";
+
+
+ targetpc = Form1->textTabs->pageControl;
+
+ if ((Form1->ActiveControl == Form1->PageControl2) || (IsChild(Form1->PageControl2->Handle, Form1->ActiveControl->Handle)))
+ targetpc = Form1->PageControl2;
+ if ((Form1->ActiveControl == Form1->PageControl3) || (IsChild(Form1->PageControl3->Handle, Form1->ActiveControl->Handle)))
+ targetpc = Form1->PageControl3;
+
+
+ target = Form1->mainmgr->Modules.find(targetpc->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ Caption = Caption + "Searching [" + (*target).first.c_str() + "]...";
+ ListBox1->Clear();
+ int searchType;
+ switch (searchTypeGroup->ItemIndex) {
+ case 0: searchType = -2; break;
+ case 1: searchType = -1; break;
+ case 2: searchType = 0; break;
+ }
+ int searchOptions = (CheckBox2->Checked) ? 0 : REG_ICASE;
+ ListKey &results = (*target).second->Search(SearchText->Text.c_str(), searchType, searchOptions);
+ while (!results.Error()) {
+ ListBox1->Items->Add((const char *)results);
+ results++;
+ }
+// ListBox1->Items->Pack(); // so Count is set correctly (per helpfile)
+ Caption = "";
+ Caption = Caption + "Results from [" + (*target).first.c_str() + "] (" + ListBox1->Items->Count + ((ListBox1->Items->Count == 1) ? " match)" : " matches)");
+ }
+ else Caption = "Error finding target module";
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm2::ListBox1DblClick(TObject *Sender)
+{
+ if (targetpc == Form1->PageControl3) {
+ Form1->DictKeyEdit->Text = ListBox1->Items->Strings[ListBox1->ItemIndex].c_str();
+ }
+ else {
+ Form1->DefaultVSKey = ListBox1->Items->Strings[ListBox1->ItemIndex].c_str();
+ Form1->TextKeyChanged();
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm2::ListBox1Click(TObject *Sender)
+{
+ if (target != Form1->mainmgr->Modules.end()) {
+ SWKey *savekey = *(*target).second;
+ (*target).second->SetKey(ListBox1->Items->Strings[ListBox1->ItemIndex].c_str());
+ pvrtf->Display(*(*target).second);
+ (*target).second->SetKey(*savekey);
+ }
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder5/prototype/searchfrm.dfm b/apps/windoze/CBuilder5/prototype/searchfrm.dfm
new file mode 100644
index 0000000..9c366d8
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/searchfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder5/prototype/searchfrm.h b/apps/windoze/CBuilder5/prototype/searchfrm.h
new file mode 100644
index 0000000..a50ee44
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/searchfrm.h
@@ -0,0 +1,44 @@
+//---------------------------------------------------------------------------
+#ifndef searchH
+#define searchH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ExtCtrls.hpp>
+#include "mainfrm.h"
+#include <swmgr.h>
+//---------------------------------------------------------------------------
+class TForm2 : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TPanel *Panel2;
+ TListBox *ListBox1;
+ TPanel *Panel3;
+ TMemo *SearchText;
+ TPanel *plPreview;
+ TRadioGroup *searchTypeGroup;
+ TGroupBox *GroupBox1;
+ TCheckBox *CheckBox2;
+ TPanel *Panel4;
+ TButton *Button1;
+ TSplitter *Splitter1;
+ void __fastcall Button1Click(TObject *Sender);
+ void __fastcall ListBox1DblClick(TObject *Sender);
+ void __fastcall ListBox1Click(TObject *Sender);
+private: // User declarations
+ SWDispRTF *pvrtf;
+public: // User declarations
+ ModMap::iterator target;
+ TPageControl *targetpc;
+// AnsiString CapText;
+
+ __fastcall TForm2(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TForm2 *Form2;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/prototype/sword.bpr b/apps/windoze/CBuilder5/prototype/sword.bpr
new file mode 100644
index 0000000..f325f9a
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/sword.bpr
@@ -0,0 +1,124 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="sword.exe"/>
+ <OBJFILES value="sword.obj mainfrm.obj ModInstForm.obj ..\..\swdisprtf.obj
+ ..\..\swdisprtfchap.obj ..\..\swwinlog.obj ..\..\tbdisp.obj searchfrm.obj
+ editentryfrm.obj biblecsmgr.obj bookmarkfrm.obj AboutBoxfrm.obj
+ optionfrm.obj vrslstfrm.obj versesel.obj newbmfilefrm.obj CommentPanel.obj
+ ModTabPanel.obj AppBar.obj BookMarkPanel.obj TextPanel.obj LDPanel.obj
+ DeskTopNameForm.obj DockCanvas.obj"/>
+ <RESFILES value="sword.res"/>
+ <IDLFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES) mainfrm.dfm ModInstForm.dfm searchfrm.dfm editentryfrm.dfm
+ bookmarkfrm.dfm AboutBoxfrm.dfm optionfrm.dfm vrslstfrm.dfm versesel.dfm
+ newbmfilefrm.dfm AppBar.dfm DeskTopNameForm.dfm DockCanvas.dfm"/>
+ <LIBFILES value="swordlib.lib"/>
+ <LIBRARIES value="vclx50.lib vcl50.lib"/>
+ <SPARELIBS value="vcl50.lib vclx50.lib"/>
+ <PACKAGES value="vcl50.bpi vclx50.bpi vcljpg50.bpi vclmid50.bpi vcldb50.bpi vclbde50.bpi
+ bcbsmp50.bpi vcldbx50.bpi qrpt50.bpi teeui50.bpi teedb50.bpi tee50.bpi
+ dss50.bpi ibsmp50.bpi nmfast50.bpi inetdb50.bpi inet50.bpi dclocx50.bpi"/>
+ <PATHCPP value=".;..\..\..\windoze"/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
+ <RELEASELIBPATH value="$(BCB)\lib\release"/>
+ <LINKER value="ilink32"/>
+ <USERDEFINES value="_DEBUG"/>
+ <SYSDEFINES value="NO_STRICT;_VIS_NOLIB"/>
+ <MAINSOURCE value="sword.cpp"/>
+ <INCLUDEPATH value="&quot;C:\Program Files\Common Files\Borland Shared\Images\Buttons\&quot;;..\..\..\windoze;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include"/>
+ <LIBPATH value="&quot;C:\Program Files\Common Files\Borland Shared\Images\Buttons\&quot;;$(BCB)\Projects\Lib;&quot;C:\program files\borland\cbuilder4\Lib\&quot;;..\..\..\windoze;$(BCB)\lib\obj;$(BCB)\lib"/>
+ <WARNINGS value="-w-par -w-8027 -w-8026"/>
+ <WARNOPTSTR value=""/>
+ </MACROS>
+ <OPTIONS>
+ <IDLCFLAGS value="-I&quot;..\..\..\..\..\..\..\Program Files\Common Files\Borland Shared\Images\Buttons&quot;
+ -I..\.. -I$(BCB)\include -I$(BCB)\include\vcl -I..\..\..\..\include
+ -src_suffix cpp -boa"/>
+ <CFLAG1 value="-Od -H=c:\PROGRA~1\BORLAND\CBUILD~1\lib\vcl50.csm -Hc -Vx -Ve -X- -r- -a8
+ -b- -k -y -v -vi- -c -tW -tWM"/>
+ <PFLAGS value="-$Y+ -$W -$O- -v -JPHNE -M"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="-D&quot;&quot; -aa -Tpe -x -Gn -v"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="c0w32.obj sysinit.obj $(OBJFILES)"/>
+ <ALLRES value="$(RESFILES)"/>
+ <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+Count=5
+Item0=C:\Program Files\Common Files\Borland Shared\Images\Buttons\;..\..;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
+Item1=C:\Program Files\Common Files\Borland Shared\Images\Buttons\;..\..\..\windoze;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
+Item2=..\..\..\..\..\..\..\Program Files\Common Files\Borland Shared\Images\Buttons;..\..;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
+Item3=..\..;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
+Item4=$(BCB)\include;$(BCB)\include\vcl;../../../../include
+
+[HistoryLists\hlLibraryPath]
+Count=5
+Item0=C:\Program Files\Common Files\Borland Shared\Images\Buttons\;$(BCB)\Projects\Lib;C:\program files\borland\cbuilder4\Lib\;..\..;$(BCB)\lib\obj;$(BCB)\lib
+Item1=C:\Program Files\Common Files\Borland Shared\Images\Buttons\;$(BCB)\Projects\Lib;C:\program files\borland\cbuilder4\Lib\;..\..\..\windoze;$(BCB)\lib\obj;$(BCB)\lib
+Item2=..\..\..\..\..\..\..\Program Files\Common Files\Borland Shared\Images\Buttons;$(BCB)\Projects\Lib;..\..\..\..\..\..\..\program files\borland\cbuilder4\Lib;..\..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=..\..;$(BCB)\lib\obj;$(BCB)\lib
+Item4=$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=0
+LinkCGLIB=0
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/prototype/sword.cpp b/apps/windoze/CBuilder5/prototype/sword.cpp
new file mode 100644
index 0000000..113f717
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/sword.cpp
@@ -0,0 +1,47 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+USERES("sword.res");
+USEFORM("mainfrm.cpp", Form1);
+USELIB("swordlib.lib");
+USEFORM("ModInstForm.cpp", ModInstFrm);
+USEUNIT("..\..\swdisprtf.cpp");
+USEUNIT("..\..\swdisprtfchap.cpp");
+USEUNIT("..\..\swwinlog.cpp");
+USEUNIT("..\..\tbdisp.cpp");
+USEFORM("searchfrm.cpp", Form2);
+USEFORM("editentryfrm.cpp", EditEntry);
+USEUNIT("biblecsmgr.cpp");
+USEFORM("bookmarkfrm.cpp", Bookmarksfrm);
+USEFORM("AboutBoxfrm.cpp", AboutBox);
+USEFORM("optionfrm.cpp", Optionsfrm);
+USEFORM("vrslstfrm.cpp", VerseListFrm);
+USEFORM("versesel.cpp", VerseSelFrm);
+USEFORM("newbmfilefrm.cpp", NewBMfrm);
+USEUNIT("CommentPanel.cpp");
+USEUNIT("ModTabPanel.cpp");
+USEFORM("AppBar.cpp", AppBarFrm);
+USEUNIT("BookMarkPanel.cpp");
+USEUNIT("TextPanel.cpp");
+USEUNIT("LDPanel.cpp");
+USEFORM("DeskTopNameForm.cpp", DeskTopNameFrm);
+USEFORM("DockCanvas.cpp", DockCanvasFrm);
+//---------------------------------------------------------------------------
+WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
+{
+ try
+ {
+ Application->Initialize();
+ Application->CreateForm(__classid(TAppBarFrm), &AppBarFrm);
+ Application->CreateForm(__classid(TDeskTopNameFrm), &DeskTopNameFrm);
+ Application->CreateForm(__classid(TDockCanvasFrm), &DockCanvasFrm);
+ Application->Run();
+ }
+ catch (Exception &exception)
+ {
+ Application->ShowException(&exception);
+ }
+ return 0;
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder5/prototype/sword.res b/apps/windoze/CBuilder5/prototype/sword.res
new file mode 100644
index 0000000..32b522d
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/sword.res
Binary files differ
diff --git a/apps/windoze/CBuilder5/prototype/swordlib.bpr b/apps/windoze/CBuilder5/prototype/swordlib.bpr
new file mode 100644
index 0000000..3948c15
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/swordlib.bpr
@@ -0,0 +1,168 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!-- C++Builder XML Project -->
+<PROJECT>
+ <MACROS>
+ <VERSION value="BCB.05.03"/>
+ <PROJECT value="swordlib.lib"/>
+ <OBJFILES value="swordlib.obj ..\..\..\..\src\keys\versekey.obj
+ ..\..\..\..\src\keys\swkey.obj ..\..\..\..\src\keys\listkey.obj
+ ..\..\..\..\src\keys\strkey.obj ..\..\..\..\src\mgr\swmgr.obj
+ ..\..\..\..\src\mgr\swconfig.obj
+ ..\..\..\..\src\modules\comments\rawcom\rawcom.obj
+ ..\..\..\..\src\modules\comments\swcom.obj
+ ..\..\..\..\src\modules\common\rawverse.obj
+ ..\..\..\..\src\modules\common\rawstr.obj
+ ..\..\..\..\src\modules\filters\rwprtf.obj
+ ..\..\..\..\src\modules\filters\gbfrtf.obj
+ ..\..\..\..\src\modules\filters\gbfplain.obj
+ ..\..\..\..\src\modules\lexdict\rawld\rawld.obj
+ ..\..\..\..\src\modules\lexdict\swld.obj
+ ..\..\..\..\src\modules\texts\rawgbf\rawgbf.obj
+ ..\..\..\..\src\modules\texts\rawtext\rawtext.obj
+ ..\..\..\..\src\modules\texts\swtext.obj
+ ..\..\..\..\src\modules\swmodule.obj ..\..\tbdisp.obj
+ ..\..\swdisprtfchap.obj ..\..\swwinlog.obj ..\..\swdisprtf.obj
+ ..\..\..\..\src\modules\comments\hrefcom\hrefcom.obj
+ ..\..\..\..\src\mgr\filemgr.obj
+ ..\..\..\..\src\modules\comments\rawfiles\rawfiles.obj
+ ..\..\..\..\src\utilfuns\utilstr.obj ..\..\..\..\src\utilfuns\utilconf.obj
+ ..\..\..\..\src\utilfuns\Greek2Greek.obj
+ ..\..\..\..\src\utilfuns\regex.obj ..\..\..\..\src\frontend\swlog.obj
+ ..\..\..\..\src\frontend\swdisp.obj
+ ..\..\..\..\src\modules\filters\gbfstrongs.obj
+ ..\..\..\..\src\modules\filters\gbffootnotes.obj
+ ..\..\..\..\src\modules\filters\cipherfil.obj
+ ..\..\..\..\src\modules\common\sapphire.obj
+ ..\..\..\..\src\modules\common\swcipher.obj
+ ..\..\..\..\src\mgr\swlocale.obj ..\..\..\..\src\mgr\localemgr.obj
+ ..\..\..\..\src\modules\common\lzsscomprs.obj
+ ..\..\..\..\src\modules\common\zverse.obj
+ ..\..\..\..\src\modules\common\swcomprs.obj
+ ..\..\..\..\src\modules\texts\ztext\ztext.obj
+ ..\..\..\..\src\modules\filters\thmlrtf.obj
+ ..\..\..\..\src\modules\filters\gbfhtml.obj
+ ..\..\..\..\src\modules\filters\gbfthml.obj
+ ..\..\..\..\src\modules\filters\plainfootnotes.obj
+ ..\..\..\..\src\modules\filters\plainhtml.obj
+ ..\..\..\..\src\modules\filters\rtfhtml.obj
+ ..\..\..\..\src\modules\filters\rwphtml.obj
+ ..\..\..\..\src\modules\filters\thmlgbf.obj
+ ..\..\..\..\src\modules\filters\thmlhtml.obj
+ ..\..\..\..\src\modules\filters\thmlplain.obj"/>
+ <RESFILES value=""/>
+ <IDLFILES value=""/>
+ <DEFFILE value=""/>
+ <RESDEPEN value="$(RESFILES)"/>
+ <LIBFILES value=""/>
+ <LIBRARIES value="nmfast50.lib vclx50.lib vcl50.lib"/>
+ <SPARELIBS value="vcl50.lib vclx50.lib nmfast50.lib"/>
+ <PACKAGES value=""/>
+ <PATHCPP value=".;..\..\..\..\src\keys;..\..\..\..\src\mgr;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\common;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts;..\..\..\..\src\modules;..\..\..\windoze;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\utilfuns;..\..\..\..\src\frontend;..\..\..\..\src\modules\texts\ztext"/>
+ <PATHPAS value=".;"/>
+ <PATHRC value=".;"/>
+ <PATHASM value=".;"/>
+ <DEBUGLIBPATH value=""/>
+ <RELEASELIBPATH value=""/>
+ <LINKER value="TLib"/>
+ <USERDEFINES value="_DEBUG"/>
+ <SYSDEFINES value="NO_STRICT;_NO_VCL"/>
+ <MAINSOURCE value="swordlib.cpp"/>
+ <INCLUDEPATH value="..\..\..\windoze;..\..\..\..\src\modules\texts\ztext;..\..\..\..\src\frontend;..\..\..;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl"/>
+ <LIBPATH value="..\..\..\windoze;..\..\..\..\src\modules\texts\ztext;..\..\..\..\src\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys"/>
+ <WARNINGS value="-w-par -w-8027 -w-8026"/>
+ <WARNOPTSTR value=""/>
+ <LISTFILE value=""/>
+ </MACROS>
+ <OPTIONS>
+ <CFLAG1 value="-Od -H=c:\PROGRA~1\borland\CBUILD~2\lib\vcl50.csm -Hc -Vx -Ve -RT- -X- -r-
+ -a8 -4 -b- -k -y -v -vi- -c -g0 -tWM"/>
+ <PFLAGS value="-$Y+ -$W -$O- -v -M -JPHNE"/>
+ <RFLAGS value=""/>
+ <AFLAGS value="/mx /w2 /zi"/>
+ <LFLAGS value="/P128"/>
+ </OPTIONS>
+ <LINKER>
+ <ALLOBJ value="$(OBJFILES)"/>
+ <ALLRES value=""/>
+ <ALLLIB value="cg32.lib"/>
+ </LINKER>
+ <IDEOPTIONS>
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+Count=13
+Item0=..\..;..\..\..\..\src\modules\texts\ztext;..\..\..\windoze;..\..\..\..\src\frontend;..\..\..\..\apps;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item1=..\..\..\..\src\modules\texts\ztext;..\..;..\..\..\..\src\frontend;..\..\..;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item2=..\..\..\..\src\modules\texts\ztext;..\..\..\windoze;..\..\..\..\src\frontend;..\..\..\..\apps;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item3=..\..;..\..\..\..\src\frontend;..\..\..;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item4=..\..;..\..\..\..\src\frontend;..\..\..\..\apps;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\windoze;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item5=..\..\..\..\src\frontend;..\..\..\..\apps;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\windoze;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item6=..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\windoze;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item7=..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\windoze;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item8=..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\windoze;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item9=..\..\..\..\include;..\..\..\..\frontend;..\..\..\windoze;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item10=..\..\..\..\frontend;..\..\..\windoze;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item11=c:\usr\troy\src\sword\include;c:\usr\troy\src\sword\frontend;c:\usr\troy\src\sword\frontend\windoze;c:\usr\troy\src\sword\utilfuns;c:\usr\troy\src\sword\modules;c:\usr\troy\src\sword\modules\texts;c:\usr\troy\src\sword\modules\texts\rawtext;c:\usr\troy\src\sword\modules\texts\rawgbf;c:\usr\troy\src\sword\modules\lexdict;c:\usr\troy\src\sword\modules\lexdict\rawld;c:\usr\troy\src\sword\modules\filters;c:\usr\troy\src\sword\modules\common;c:\usr\troy\src\sword\modules\comments;c:\usr\troy\src\sword\modules\comments\rawcom;c:\usr\troy\src\sword\mgr;c:\usr\troy\src\sword\keys;$(BCB)\include;$(BCB)\include\vcl
+Item12=c:\usr\src\sword\include;c:\usr\troy\src\sword\frontend;c:\usr\troy\src\sword\frontend\windoze;c:\usr\troy\src\sword\utilfuns;c:\usr\troy\src\sword\modules;c:\usr\troy\src\sword\modules\texts;c:\usr\troy\src\sword\modules\texts\rawtext;c:\usr\troy\src\sword\modules\texts\rawgbf;c:\usr\troy\src\sword\modules\lexdict;c:\usr\troy\src\sword\modules\lexdict\rawld;c:\usr\troy\src\sword\modules\filters;c:\usr\troy\src\sword\modules\common;c:\usr\troy\src\sword\modules\comments;c:\usr\troy\src\sword\modules\comments\rawcom;c:\usr\troy\src\sword\mgr;c:\usr\troy\src\sword\keys;$(BCB)\include;$(BCB)\include\vcl
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=_DEBUG
+Item1=_NO_VCL
+
+[HistoryLists\hlTlibPageSize]
+Count=3
+Item0=0x0080
+Item1=128
+Item2=0x0040
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+ShowInfoMsgs=0
+LinkDebugVcl=1
+LinkCGLIB=0
+
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+ </IDEOPTIONS>
+</PROJECT> \ No newline at end of file
diff --git a/apps/windoze/CBuilder5/prototype/swordlib.cpp b/apps/windoze/CBuilder5/prototype/swordlib.cpp
new file mode 100644
index 0000000..fb5ebe2
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/swordlib.cpp
@@ -0,0 +1,61 @@
+//---------------------------------------------------------------------------
+#include <condefs.h>
+#pragma hdrstop
+USEUNIT("..\..\..\..\src\keys\versekey.cpp");
+USEUNIT("..\..\..\..\src\keys\swkey.cpp");
+USEUNIT("..\..\..\..\src\keys\listkey.cpp");
+USEUNIT("..\..\..\..\src\keys\strkey.cpp");
+USEUNIT("..\..\..\..\src\mgr\swmgr.cpp");
+USEUNIT("..\..\..\..\src\mgr\swconfig.cpp");
+USEUNIT("..\..\..\..\src\modules\comments\rawcom\rawcom.cpp");
+USEUNIT("..\..\..\..\src\modules\comments\swcom.cpp");
+USEUNIT("..\..\..\..\src\modules\common\rawverse.cpp");
+USEUNIT("..\..\..\..\src\modules\common\rawstr.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\rwprtf.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\gbfrtf.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\gbfplain.cpp");
+USEUNIT("..\..\..\..\src\modules\lexdict\rawld\rawld.cpp");
+USEUNIT("..\..\..\..\src\modules\lexdict\swld.cpp");
+USEUNIT("..\..\..\..\src\modules\texts\rawgbf\rawgbf.cpp");
+USEUNIT("..\..\..\..\src\modules\texts\rawtext\rawtext.cpp");
+USEUNIT("..\..\..\..\src\modules\texts\swtext.cpp");
+USEUNIT("..\..\..\..\src\modules\swmodule.cpp");
+USEUNIT("..\..\tbdisp.cpp");
+USEUNIT("..\..\swdisprtfchap.cpp");
+USEUNIT("..\..\swwinlog.cpp");
+USEUNIT("..\..\swdisprtf.cpp");
+USEUNIT("..\..\..\..\src\modules\comments\hrefcom\hrefcom.cpp");
+USEUNIT("..\..\..\..\src\mgr\filemgr.cpp");
+USEUNIT("..\..\..\..\src\modules\comments\rawfiles\rawfiles.cpp");
+USEUNIT("..\..\..\..\src\utilfuns\utilstr.cpp");
+USEUNIT("..\..\..\..\src\utilfuns\utilconf.cpp");
+USEUNIT("..\..\..\..\src\utilfuns\Greek2Greek.cpp");
+USEUNIT("..\..\..\..\src\utilfuns\regex.c");
+USEUNIT("..\..\..\..\src\frontend\swlog.cpp");
+USEUNIT("..\..\..\..\src\frontend\swdisp.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\gbfstrongs.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\gbffootnotes.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\cipherfil.cpp");
+USEUNIT("..\..\..\..\src\modules\common\sapphire.cpp");
+USEUNIT("..\..\..\..\src\modules\common\swcipher.cpp");
+USEUNIT("..\..\..\..\src\mgr\swlocale.cpp");
+USEUNIT("..\..\..\..\src\mgr\localemgr.cpp");
+USEUNIT("..\..\..\..\src\modules\common\lzsscomprs.cpp");
+USEUNIT("..\..\..\..\src\modules\common\zverse.cpp");
+USEUNIT("..\..\..\..\src\modules\common\swcomprs.cpp");
+USEUNIT("..\..\..\..\src\modules\texts\ztext\ztext.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\thmlrtf.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\gbfhtml.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\gbfthml.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\plainfootnotes.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\plainhtml.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\rtfhtml.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\rwphtml.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\thmlgbf.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\thmlhtml.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\thmlplain.cpp");
+//---------------------------------------------------------------------------
+#define Library
+
+// To add a file to the library use the Project menu 'Add to Project'.
+
diff --git a/apps/windoze/CBuilder5/prototype/swordprj.bpg b/apps/windoze/CBuilder5/prototype/swordprj.bpg
new file mode 100644
index 0000000..0333c75
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/swordprj.bpg
@@ -0,0 +1,23 @@
+#------------------------------------------------------------------------------
+VERSION = BWS.01
+#------------------------------------------------------------------------------
+!ifndef ROOT
+ROOT = $(MAKEDIR)\..
+!endif
+#------------------------------------------------------------------------------
+MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$**
+DCC = $(ROOT)\bin\dcc32.exe $**
+BRCC = $(ROOT)\bin\brcc32.exe $**
+#------------------------------------------------------------------------------
+PROJECTS = swordlib.lib sword.exe
+#------------------------------------------------------------------------------
+default: $(PROJECTS)
+#------------------------------------------------------------------------------
+
+swordlib.lib: swordlib.bpr
+ $(MAKE)
+
+sword.exe: sword.bpr
+ $(MAKE)
+
+
diff --git a/apps/windoze/CBuilder5/prototype/versesel.cpp b/apps/windoze/CBuilder5/prototype/versesel.cpp
new file mode 100644
index 0000000..8788580
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/versesel.cpp
@@ -0,0 +1,22 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "versesel.h"
+#include <versekey.h>
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TVerseSelFrm *VerseSelFrm;
+//---------------------------------------------------------------------------
+__fastcall TVerseSelFrm::TVerseSelFrm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TVerseSelFrm::Edit1Change(TObject *Sender)
+{
+ VerseKey trykey = Edit1->Text.c_str();
+ Panel2->Caption = (const char *)trykey;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder5/prototype/versesel.dfm b/apps/windoze/CBuilder5/prototype/versesel.dfm
new file mode 100644
index 0000000..4502433
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/versesel.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder5/prototype/versesel.h b/apps/windoze/CBuilder5/prototype/versesel.h
new file mode 100644
index 0000000..b4c1981
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/versesel.h
@@ -0,0 +1,27 @@
+//---------------------------------------------------------------------------
+#ifndef verseselH
+#define verseselH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+//---------------------------------------------------------------------------
+class TVerseSelFrm : public TForm
+{
+__published: // IDE-managed Components
+ TEdit *Edit1;
+ TPanel *Panel2;
+ TPanel *Panel1;
+ TButton *Button1;
+ TButton *Button2;
+ void __fastcall Edit1Change(TObject *Sender);
+private: // User declarations
+public: // User declarations
+ __fastcall TVerseSelFrm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TVerseSelFrm *VerseSelFrm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder5/prototype/vrslstfrm.cpp b/apps/windoze/CBuilder5/prototype/vrslstfrm.cpp
new file mode 100644
index 0000000..f20e6a8
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/vrslstfrm.cpp
@@ -0,0 +1,50 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "vrslstfrm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TVerseListFrm *VerseListFrm;
+//---------------------------------------------------------------------------
+__fastcall TVerseListFrm::TVerseListFrm(TComponent* Owner, ListKey &iVerseList)
+ : TForm(Owner), verseList(iVerseList)
+{
+ pvrtf = new SWDispRTF(this);
+
+ pvrtf->Parent = plPreview;
+ pvrtf->Align = alClient;
+ pvrtf->ScrollBars = ssVertical;
+ pvrtf->ReadOnly = true;
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TVerseListFrm::ListBox1Click(TObject *Sender)
+{
+ ModMap::iterator target;
+ target = Form1->mainmgr->Modules.find(Form1->textTabs->pageControl->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ SWKey *savekey = *(*target).second;
+ (*target).second->SetKey(ListBox1->Items->Strings[ListBox1->ItemIndex].c_str());
+ pvrtf->Display(*(*target).second);
+ (*target).second->SetKey(*savekey);
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TVerseListFrm::ListBox1DblClick(TObject *Sender)
+{
+ Form1->DefaultVSKey = ListBox1->Items->Strings[ListBox1->ItemIndex].c_str();
+ Form1->TextKeyChanged();
+}
+//---------------------------------------------------------------------------
+void __fastcall TVerseListFrm::FormShow(TObject *Sender)
+{
+ for (verseList = TOP; (!verseList.Error()); verseList++)
+ ListBox1->Items->Add((const char *)verseList);
+}
+//---------------------------------------------------------------------------
+
+
+
diff --git a/apps/windoze/CBuilder5/prototype/vrslstfrm.dfm b/apps/windoze/CBuilder5/prototype/vrslstfrm.dfm
new file mode 100644
index 0000000..2b2af74
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/vrslstfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder5/prototype/vrslstfrm.h b/apps/windoze/CBuilder5/prototype/vrslstfrm.h
new file mode 100644
index 0000000..7af64b9
--- /dev/null
+++ b/apps/windoze/CBuilder5/prototype/vrslstfrm.h
@@ -0,0 +1,29 @@
+//---------------------------------------------------------------------------
+#ifndef vrslstfrmH
+#define vrslstfrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+#include "mainfrm.h"
+//---------------------------------------------------------------------------
+class TVerseListFrm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *plPreview;
+ TListBox *ListBox1;
+ void __fastcall ListBox1Click(TObject *Sender);
+ void __fastcall ListBox1DblClick(TObject *Sender);
+ void __fastcall FormShow(TObject *Sender);
+private: // User declarations
+ SWDispRTF *pvrtf;
+ ListKey &verseList;
+public: // User declarations
+ __fastcall TVerseListFrm(TComponent* Owner, ListKey &iVerseList);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TVerseListFrm *VerseListFrm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/Delphi20/swordvc/SWKey.hpp b/apps/windoze/Delphi20/swordvc/SWKey.hpp
new file mode 100644
index 0000000..8a6c724
--- /dev/null
+++ b/apps/windoze/Delphi20/swordvc/SWKey.hpp
@@ -0,0 +1,57 @@
+//----------------------------------------------------------------------------
+// SWKey.hpp - bcbdcc32 generated hdr (DO NOT EDIT) rev: 0
+// From: SWKey.pas
+//----------------------------------------------------------------------------
+#ifndef SWKeyHPP
+#define SWKeyHPP
+//----------------------------------------------------------------------------
+#include <Dialogs.hpp>
+#include <Forms.hpp>
+#include <Controls.hpp>
+#include <Graphics.hpp>
+#include <Classes.hpp>
+#include <SysUtils.hpp>
+#include <Messages.hpp>
+#include <Windows.hpp>
+#include <SwordAPI.hpp>
+#include <System.hpp>
+namespace Swkey
+{
+//-- type declarations -------------------------------------------------------
+class __declspec(delphiclass) TSWKey;
+class __declspec(pascalimplementation) TSWKey : public Classes::TComponent
+{
+ typedef Classes::TComponent inherited;
+
+protected:
+ int hswkey;
+ System::AnsiString KeyType;
+ virtual void __fastcall Loaded(void);
+ virtual System::AnsiString __fastcall GetText(void);
+ virtual void __fastcall SetText( System::AnsiString itext);
+ virtual bool __fastcall GetPersist(void);
+ virtual void __fastcall SetPersist(bool ival);
+ virtual int __fastcall GetSWHandle(void);
+ virtual void __fastcall SetSWHandle(int ihandle);
+
+public:
+ __fastcall virtual TSWKey(Classes::TComponent* AOwner);
+ __fastcall virtual ~TSWKey(void);
+ virtual void __fastcall Initialize(void);
+ __property System::AnsiString Text = {read=GetText, write=SetText, nodefault};
+ __property bool Persist = {read=GetPersist, write=SetPersist, nodefault};
+ virtual int __fastcall Error(void);
+ __property int SWHandle = {read=GetSWHandle, write=SetSWHandle, nodefault};
+ virtual void __fastcall Inc(void);
+ virtual void __fastcall Dec(void);
+};
+
+//-- var, const, procedure ---------------------------------------------------
+extern void __fastcall Register(void);
+
+} /* namespace Swkey */
+#if !defined(NO_IMPLICIT_NAMESPACE_USE)
+using namespace Swkey;
+#endif
+//-- end unit ----------------------------------------------------------------
+#endif // SWKey
diff --git a/apps/windoze/Delphi20/swordvc/SWKey.pas b/apps/windoze/Delphi20/swordvc/SWKey.pas
new file mode 100644
index 0000000..7204715
--- /dev/null
+++ b/apps/windoze/Delphi20/swordvc/SWKey.pas
@@ -0,0 +1,150 @@
+unit SWKey;
+
+interface
+
+uses
+ SwordAPI, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
+
+type
+ TSWKey = class(TComponent)
+ private
+ protected
+ hswkey: integer;
+ KeyType: AnsiString;
+ procedure Loaded; override;
+ function GetText: AnsiString; virtual;
+ procedure SetText(itext: AnsiString); virtual;
+ function GetPersist: Boolean; virtual;
+ procedure SetPersist(ival: Boolean); virtual;
+ function GetSWHandle: integer; virtual;
+ procedure SetSWHandle(ihandle: integer); virtual;
+
+ public
+ constructor Create(AOwner:TComponent); override;
+ destructor Destroy; override;
+ procedure Initialize; virtual;
+ property Text: AnsiString read GetText write SetText;
+ property Persist: Boolean read GetPersist write SetPersist;
+ function Error: integer; virtual;
+ property SWHandle: integer read GetSWHandle write SetSWHandle;
+ procedure Inc; virtual;
+ procedure Dec; virtual;
+ published
+ end;
+
+procedure Register;
+
+implementation
+
+constructor TSWKey.Create(AOwner:TComponent);
+begin
+ inherited Create(AOwner);
+ KeyType := 'StrKey';
+ hswkey := 0;
+end;
+
+
+destructor TSWKey.Destroy;
+begin
+ if not (csDesigning in ComponentState) then
+ begin
+ if (hswkey <> 0) then
+ begin
+ DeleteKey(hswkey);
+ hswkey := 0;
+ end;
+ end;
+ inherited Destroy;
+end;
+
+
+procedure TSWKey.Loaded;
+begin
+ inherited Loaded;
+ if not (csDesigning in ComponentState) then
+ begin
+ if (hswkey = 0) then
+ Initialize;
+ end;
+end;
+
+
+procedure TSWKey.Initialize;
+begin
+ if (hswkey <> 0) then
+ DeleteKey(hswkey);
+ hswkey := NewKey(PChar(KeyType));
+ Persist := true;
+end;
+
+
+function TSWKey.Error: integer;
+begin
+ Error := KeyError(hswkey);
+end;
+
+
+function TSWKey.GetText: AnsiString;
+var
+ s1: AnsiString;
+begin
+ SetLength(s1, 1024);
+ KeyGetText(hswkey, PChar(s1), Length(s1));
+ s1 := Trim(s1);
+ GetText := s1;
+end;
+
+
+procedure TSWKey.SetText(itext: AnsiString);
+begin
+ KeySetText(hswkey, PChar(itext));
+end;
+
+
+function TSWKey.GetSWHandle: integer;
+begin
+ GetSWHandle := hswkey;
+end;
+
+
+procedure TSWKey.SetSWHandle(ihandle: integer);
+begin
+ hswkey := ihandle;
+end;
+
+
+function TSWKey.GetPersist: Boolean;
+begin
+ GetPersist := Boolean(KeyGetPersist(hswkey));
+end;
+
+
+procedure TSWKey.SetPersist(ival: Boolean);
+begin
+ KeySetPersist(hswkey, integer(ival));
+end;
+
+
+procedure TSWKey.Inc;
+begin
+ KeyInc(hswkey);
+end;
+
+
+procedure TSWKey.Dec;
+begin
+ KeyDec(hswkey);
+end;
+
+
+
+
+
+
+
+procedure Register;
+begin
+ RegisterComponents('Data Access', [TSWKey]);
+end;
+
+end.
diff --git a/apps/windoze/Delphi20/swordvc/SWLstKey.hpp b/apps/windoze/Delphi20/swordvc/SWLstKey.hpp
new file mode 100644
index 0000000..860d414
--- /dev/null
+++ b/apps/windoze/Delphi20/swordvc/SWLstKey.hpp
@@ -0,0 +1,42 @@
+//----------------------------------------------------------------------------
+// ListKey.hpp - bcbdcc32 generated hdr (DO NOT EDIT) rev: 0
+// From: ListKey.pas
+//----------------------------------------------------------------------------
+#ifndef ListKeyHPP
+#define ListKeyHPP
+//----------------------------------------------------------------------------
+#include <Dialogs.hpp>
+#include <Forms.hpp>
+#include <Controls.hpp>
+#include <Graphics.hpp>
+#include <Classes.hpp>
+#include <SysUtils.hpp>
+#include <Messages.hpp>
+#include <Windows.hpp>
+#include <SWKey.hpp>
+#include <SwordAPI.hpp>
+#include <System.hpp>
+namespace ListKey
+{
+//-- type declarations -------------------------------------------------------
+class __declspec(delphiclass) TListKey;
+class __declspec(pascalimplementation) TListKey : public Swkey::TSWKey
+{
+ typedef Swkey::TSWKey inherited;
+
+public:
+ __fastcall virtual TListKey(Classes::TComponent* AOwner);
+public:
+ /* TSWKey.Destroy */ __fastcall virtual ~TListKey(void) { }
+
+};
+
+//-- var, const, procedure ---------------------------------------------------
+extern void __fastcall Register(void);
+
+} /* namespace ListKey */
+#if !defined(NO_IMPLICIT_NAMESPACE_USE)
+using namespace ListKey;
+#endif
+//-- end unit ----------------------------------------------------------------
+#endif // ListKey
diff --git a/apps/windoze/Delphi20/swordvc/SwordAPI.hpp b/apps/windoze/Delphi20/swordvc/SwordAPI.hpp
new file mode 100644
index 0000000..9c60d70
--- /dev/null
+++ b/apps/windoze/Delphi20/swordvc/SwordAPI.hpp
@@ -0,0 +1,63 @@
+//----------------------------------------------------------------------------
+// SwordAPI.hpp - bcbdcc32 generated hdr (DO NOT EDIT) rev: 0
+// From: SwordAPI.pas
+//----------------------------------------------------------------------------
+#ifndef SwordAPIHPP
+#define SwordAPIHPP
+//----------------------------------------------------------------------------
+#include <System.hpp>
+namespace Swordapi
+{
+//-- type declarations -------------------------------------------------------
+struct paramt
+{
+ char *path;
+ char *name;
+ char *disc;
+} ;
+
+typedef paramt *pparamt;
+
+//-- var, const, procedure ---------------------------------------------------
+#define DLLNAME "sword32.dll"
+extern "C" int __stdcall NewModule(char * modtype, pparamt params);
+extern "C" void __stdcall DeleteModule(int hmod);
+extern "C" int __stdcall ModGetTextLen(int hmod);
+extern "C" void __stdcall ModGetText(int hmod, char * buf, int size);
+extern "C" void __stdcall ModGetKeyText(int hmod, char * buf, int size);
+extern "C" int __stdcall ModGetKey(int hmod);
+extern "C" char __stdcall ModSetKeyText(int hmod, char * keytext);
+extern "C" char __stdcall ModSetKeyKey(int hmod, int hkey);
+extern "C" int __stdcall ModSearch(int hmod, char * stext);
+extern "C" void __stdcall YoYo(int x, int y);
+extern "C" void __stdcall ModInc(int hmod);
+extern "C" void __stdcall ModDec(int hmod);
+extern "C" int __stdcall ModError(int hmod);
+extern "C" int __stdcall NewKey(char * keytype);
+extern "C" void __stdcall DeleteKey(int hkey);
+extern "C" int __stdcall KeyGetPersist(int hkey);
+extern "C" void __stdcall KeySetPersist(int hkey, int value);
+extern "C" int __stdcall KeyError(int hkey);
+extern "C" void __stdcall KeyGetText(int hkey, char * buf, int size);
+extern "C" void __stdcall KeySetText(int hkey, char * keytext);
+extern "C" void __stdcall KeySetKey(int hkey, int hkey2);
+extern "C" void __stdcall KeyInc(int hkey);
+extern "C" void __stdcall KeyDec(int hkey);
+extern "C" int __stdcall VerseKeyGetTestament(int hkey);
+extern "C" int __stdcall VerseKeyGetBook(int hkey);
+extern "C" int __stdcall VerseKeyGetChapter(int hkey);
+extern "C" int __stdcall VerseKeyGetVerse(int hkey);
+extern "C" void __stdcall VerseKeySetTestament(int hkey, int value);
+extern "C" void __stdcall VerseKeySetBook(int hkey, int value);
+extern "C" void __stdcall VerseKeySetChapter(int hkey, int value);
+extern "C" void __stdcall VerseKeySetVerse(int hkey, int value);
+extern "C" int __stdcall VerseKeyGetAutoNormalize(int hkey);
+extern "C" void __stdcall VerseKeySetAutoNormalize(int hkey, int value);
+extern "C" void __stdcall VerseKeyNormalize(int hkey);
+
+} /* namespace Swordapi */
+#if !defined(NO_IMPLICIT_NAMESPACE_USE)
+using namespace Swordapi;
+#endif
+//-- end unit ----------------------------------------------------------------
+#endif // SwordAPI
diff --git a/apps/windoze/Delphi20/swordvc/SwordAPI.pas b/apps/windoze/Delphi20/swordvc/SwordAPI.pas
new file mode 100644
index 0000000..73c61e2
--- /dev/null
+++ b/apps/windoze/Delphi20/swordvc/SwordAPI.pas
@@ -0,0 +1,50 @@
+unit SwordAPI;
+
+interface
+const
+ DLLNAME = 'sword32.dll';
+
+type
+ paramt = record
+ path, name, disc: pchar;
+ end;
+ pparamt = ^paramt;
+
+function NewModule(modtype: PChar; params: pparamt): integer; stdcall; external DLLNAME;
+procedure DeleteModule(hmod: integer); stdcall; external DLLNAME;
+function ModGetTextLen(hmod: integer): integer; stdcall; external DLLNAME;
+procedure ModGetText(hmod: integer; buf: PChar; size: integer); stdcall; external DLLNAME;
+procedure ModGetKeyText(hmod: integer; buf: PChar; size: integer); stdcall; external DLLNAME;
+function ModGetKey(hmod: integer):integer; stdcall; external DLLNAME;
+function ModSetKeyText(hmod: integer; keytext: PChar):char; stdcall; external DLLNAME;
+function ModSetKeyKey(hmod: integer; hkey: integer):char; stdcall; external DLLNAME;
+function ModSearch(hmod: integer; stext: PChar):integer; stdcall; external DLLNAME;
+procedure YoYo(x:integer; y:integer); stdcall; external DLLNAME;
+procedure ModInc(hmod: integer); stdcall; external DLLNAME;
+procedure ModDec(hmod: integer); stdcall; external DLLNAME;
+function ModError(hmod:integer): integer; stdcall; external DLLNAME;
+function NewKey(keytype:PChar):integer;stdcall; external DLLNAME;
+procedure DeleteKey(hkey: integer); stdcall; external DLLNAME;
+function KeyGetPersist(hkey: integer): integer; stdcall; external DLLNAME;
+procedure KeySetPersist(hkey: integer; value: integer); stdcall; external DLLNAME;
+function KeyError(hkey:integer): integer; stdcall; external DLLNAME;
+procedure KeyGetText(hkey: integer; buf: PChar; size: integer); stdcall; external DLLNAME;
+procedure KeySetText(hkey: integer; keytext: PChar); stdcall; external DLLNAME;
+procedure KeySetKey(hkey: integer; hkey2: integer); stdcall; external DLLNAME;
+procedure KeyInc(hkey: integer); stdcall; external DLLNAME;
+procedure KeyDec(hkey: integer); stdcall; external DLLNAME;
+function VerseKeyGetTestament(hkey: integer): integer; stdcall; external DLLNAME;
+function VerseKeyGetBook(hkey: integer): integer; stdcall; external DLLNAME;
+function VerseKeyGetChapter(hkey: integer): integer; stdcall; external DLLNAME;
+function VerseKeyGetVerse(hkey: integer): integer; stdcall; external DLLNAME;
+procedure VerseKeySetTestament(hkey: integer; value: integer); stdcall; external DLLNAME;
+procedure VerseKeySetBook(hkey: integer; value: integer); stdcall; external DLLNAME;
+procedure VerseKeySetChapter(hkey: integer; value: integer); stdcall; external DLLNAME;
+procedure VerseKeySetVerse(hkey: integer; value: integer); stdcall; external DLLNAME;
+function VerseKeyGetAutoNormalize(hkey: integer): integer; stdcall; external DLLNAME;
+procedure VerseKeySetAutoNormalize(hkey: integer; value: integer); stdcall; external DLLNAME;
+procedure VerseKeyNormalize(hkey: integer); stdcall; external DLLNAME;
+
+implementation
+
+end.
diff --git a/apps/windoze/Delphi20/swordvc/Unit1.dfm b/apps/windoze/Delphi20/swordvc/Unit1.dfm
new file mode 100644
index 0000000..0975ce1
--- /dev/null
+++ b/apps/windoze/Delphi20/swordvc/Unit1.dfm
Binary files differ
diff --git a/apps/windoze/Delphi20/swordvc/Unit1.pas b/apps/windoze/Delphi20/swordvc/Unit1.pas
new file mode 100644
index 0000000..eaa804e
--- /dev/null
+++ b/apps/windoze/Delphi20/swordvc/Unit1.pas
@@ -0,0 +1,40 @@
+unit Unit1;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
+ SWModule, StdCtrls, ComCtrls, swkey, swvskey, ExtCtrls, swtxtdsp;
+
+type
+ TForm1 = class(TForm)
+ Panel2: TPanel;
+ Panel1: TPanel;
+ Button1: TButton;
+ Edit1: TEdit;
+ Label1: TLabel;
+ SWModule1: TSWModule;
+ SWVerseKey1: TSWVerseKey;
+ SWTextDisp1: TSWTextDisp;
+ procedure Button1Click(Sender: TObject);
+ private
+ { Private declarations }
+ public
+ { Public declarations }
+ end;
+
+var
+ Form1: TForm1;
+
+implementation
+
+{$R *.DFM}
+
+procedure TForm1.Button1Click(Sender: TObject);
+begin
+ SWVerseKey1.Text := Edit1.Text;
+ SWTextDisp1.Display();
+ Label1.Caption := SWVerseKey1.Text;
+end;
+
+end.
diff --git a/apps/windoze/Delphi20/swordvc/listkey.pas b/apps/windoze/Delphi20/swordvc/listkey.pas
new file mode 100644
index 0000000..eb6587b
--- /dev/null
+++ b/apps/windoze/Delphi20/swordvc/listkey.pas
@@ -0,0 +1,36 @@
+unit ListKey;
+
+interface
+
+uses
+ SwordAPI, SWKey, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
+
+type
+ TListKey = class(TSWKey)
+ private
+ protected
+
+ public
+ constructor Create(AOwner:TComponent); override;
+ published
+ end;
+
+
+procedure Register;
+
+implementation
+constructor TListKey.Create(AOwner:TComponent);
+begin
+ inherited Create(AOwner);
+ KeyType := 'ListKey';
+end;
+
+
+procedure Register;
+begin
+ RegisterComponents('Data Access', [TListKey]);
+end;
+
+
+
+end.
diff --git a/apps/windoze/Delphi20/swordvc/swmodule.hpp b/apps/windoze/Delphi20/swordvc/swmodule.hpp
new file mode 100644
index 0000000..d356f33
--- /dev/null
+++ b/apps/windoze/Delphi20/swordvc/swmodule.hpp
@@ -0,0 +1,85 @@
+//----------------------------------------------------------------------------
+// SWModule.hpp - bcbdcc32 generated hdr (DO NOT EDIT) rev: 0
+// From: SWModule.pas
+//----------------------------------------------------------------------------
+#ifndef SWModuleHPP
+#define SWModuleHPP
+//----------------------------------------------------------------------------
+#include <Dialogs.hpp>
+#include <Forms.hpp>
+#include <Controls.hpp>
+#include <Graphics.hpp>
+#include <Classes.hpp>
+#include <SysUtils.hpp>
+#include <Messages.hpp>
+#include <Windows.hpp>
+#include <ListKey.hpp>
+#include <SWKey.hpp>
+#include <SwordAPI.hpp>
+#include <System.hpp>
+namespace Swmodule
+{
+//-- type declarations -------------------------------------------------------
+struct paramt
+{
+ char *path;
+ char *name;
+ char *disc;
+} ;
+
+typedef paramt *pparamt;
+
+enum TModType { RawText, RawCom, RawLD };
+
+class __declspec(delphiclass) TSWModule;
+class __declspec(pascalimplementation) TSWModule : public Classes::TComponent
+{
+ typedef Classes::TComponent inherited;
+
+protected:
+ int hswmod;
+ TModType FModType;
+ System::AnsiString FDataPath;
+ System::AnsiString FDescription;
+ Swkey::TSWKey* FMasterKey;
+ Swkey::TSWKey* FMyKey;
+ ListKey::TListKey* FMyListKey;
+ virtual void __fastcall Loaded(void);
+ virtual System::AnsiString __fastcall GetKeyText(void);
+ virtual void __fastcall SetKeyText( System::AnsiString text);
+ virtual Swkey::TSWKey* __fastcall GetKey(void);
+ virtual void __fastcall SetKey(Swkey::TSWKey* ikey);
+ virtual void __fastcall SetSWHandle(int ihandle);
+ virtual int __fastcall GetSWHandle(void);
+ virtual void __fastcall SetMasterKey(Swkey::TSWKey* ikey);
+ virtual Swkey::TSWKey* __fastcall GetMasterKey(void);
+
+public:
+ __fastcall virtual TSWModule(Classes::TComponent* AOwner);
+ __fastcall virtual ~TSWModule(void);
+ virtual void __fastcall Initialize(void);
+ virtual System::AnsiString __fastcall Text(void);
+ __property int SWHandle = {read=GetSWHandle, write=SetSWHandle, nodefault};
+ void __fastcall Inc(void);
+ void __fastcall Dec(void);
+ virtual ListKey::TListKey* __fastcall Search( System::AnsiString stext);
+ __property System::AnsiString KeyText = {read=GetKeyText, write=SetKeyText, nodefault};
+ __property Swkey::TSWKey* Key = {read=GetKey, write=SetKey, nodefault};
+ virtual int __fastcall Error(void);
+
+__published:
+ __property TModType ModType = {read=FModType, write=FModType, default=0};
+ __property System::AnsiString DataPath = {read=FDataPath, write=FDataPath, nodefault};
+ __property System::AnsiString Description = {read=FDescription, write=FDescription, nodefault};
+ __property Swkey::TSWKey* MasterKey = {read=GetMasterKey, write=SetMasterKey, nodefault};
+};
+
+//-- var, const, procedure ---------------------------------------------------
+extern void __fastcall Register(void);
+
+} /* namespace Swmodule */
+#if !defined(NO_IMPLICIT_NAMESPACE_USE)
+using namespace Swmodule;
+#endif
+//-- end unit ----------------------------------------------------------------
+#endif // SWModule
diff --git a/apps/windoze/Delphi20/swordvc/swmodule.pas b/apps/windoze/Delphi20/swordvc/swmodule.pas
new file mode 100644
index 0000000..dd1e66d
--- /dev/null
+++ b/apps/windoze/Delphi20/swordvc/swmodule.pas
@@ -0,0 +1,222 @@
+unit SWModule;
+
+interface
+
+uses
+ SwordAPI, SWKey, ListKey, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
+
+type
+ paramt = record
+ path, name, disc: pchar;
+ end;
+ pparamt = ^paramt;
+ TModType = (RawText, RawCom, RawLD);
+ TSWModule = class(TComponent)
+ private
+ protected
+ hswmod: integer;
+ FModType: TModType;
+ FDataPath: AnsiString;
+ FDescription: AnsiString;
+ FMasterKey: TSWKey;
+ FMyKey: TSWKey;
+ FMyListKey: TListKey;
+ procedure Loaded; override;
+ function GetKeyText: AnsiString; virtual;
+ procedure SetKeyText(text: AnsiString); virtual;
+ function GetKey: TSWKey; virtual;
+ procedure SetKey(ikey: TSWKey); virtual;
+ procedure SetSWHandle(ihandle: integer); virtual;
+ function GetSWHandle: integer; virtual;
+ procedure SetMasterKey(ikey: TSWKey); virtual;
+ function GetMasterKey: TSWKey; virtual;
+ public
+ constructor Create(AOwner:TComponent); override;
+ destructor Destroy; override;
+ procedure Initialize; virtual;
+ function Text: AnsiString; virtual;
+ property SWHandle: integer read GetSWHandle write SetSWHandle;
+ procedure Inc;
+ procedure Dec;
+ function Search(stext: AnsiString): TListKey; virtual;
+ property KeyText: AnsiString read GetKeyText write SetKeyText;
+ property Key: TSWKey read GetKey write SetKey;
+ function Error: integer; virtual;
+ published
+ property ModType: TModType read FModType write FModType default RawText;
+ property DataPath: AnsiString read FDataPath write FDataPath;
+ property Description: AnsiString read FDescription write FDescription;
+ property MasterKey: TSWKey read GetMasterKey write SetMasterKey;
+ end;
+
+procedure Register;
+
+implementation
+
+constructor TSWModule.Create(AOwner:TComponent);
+begin
+ inherited Create(AOwner);
+ FModType := RawText;
+ if not (csDesigning in ComponentState) then
+ begin
+ hswmod := 0;
+ FMyKey := TSWKey.Create(NIL);
+ FMyListKey := TListKey.Create(NIL);
+ end;
+end;
+
+
+destructor TSWModule.Destroy;
+begin
+ if not (csDesigning in ComponentState) then
+ begin
+ if (hswmod <> 0) then
+ begin
+ DeleteModule(hswmod);
+ hswmod := 0;
+ FMyKey.SWHandle := 0;
+ FMyKey.Free;
+ FMyListKey.SWHandle := 0;
+ FMyListKey.Free;
+ end;
+ end;
+ inherited Destroy;
+end;
+
+
+procedure TSWModule.Loaded;
+begin
+ inherited Loaded;
+ if not (csDesigning in ComponentState) then
+ Initialize;
+end;
+
+
+procedure TSWModule.Initialize;
+var
+ params: paramt;
+ s1: AnsiString;
+begin
+ if (hswmod <> 0) then
+ DeleteModule(hswmod);
+ params.name := PChar(AnsiString(Name));
+ params.path := PChar(DataPath);
+ params.disc := PChar(Description);
+
+ case ModType of
+ RawText: s1 := 'RawText';
+ RawCom: s1 := 'RawCom';
+ RawLD: s1 := 'RawLD';
+ end;
+
+ hswmod := NewModule(PChar(s1), @params);
+
+ if (FMasterKey <> NIL) then
+ begin
+ if (FMasterKey.SWHandle = 0) then
+ FMasterKey.Initialize;
+ Key := FMasterKey;
+ end;
+end;
+
+
+function TSWModule.Text: AnsiString;
+var
+ s1: AnsiString;
+begin
+ SetLength(s1, ModGetTextLen(hswmod)+1);
+ ModGetText(hswmod, PChar(s1), Length(s1)+1);
+ s1 := Trim(s1);
+ Text := s1;
+end;
+
+
+function TSWModule.GetSWHandle: integer;
+begin
+ GetSWHandle := hswmod;
+end;
+
+
+procedure TSWModule.SetSWHandle(ihandle: integer);
+begin
+ hswmod := ihandle;
+end;
+
+
+function TSWModule.GetKeyText: AnsiString;
+var
+ s1: AnsiString;
+begin
+ SetLength(s1, 1024);
+ ModGetKeyText(hswmod, PChar(s1), Length(s1));
+ s1 := Trim(s1);
+ GetKeyText := s1;
+end;
+
+
+procedure TSWModule.SetKeyText(text: AnsiString);
+begin
+ ModSetKeyText(hswmod, PChar(text));
+end;
+
+
+function TSWModule.GetKey: TSWKey;
+begin
+ FMyKey.SWHandle := ModGetKey(hswmod);
+ GetKey := FMyKey;
+end;
+
+
+function TSWModule.Search(stext: AnsiString): TListKey;
+begin
+ FMyListKey.SWHandle := ModSearch(hswmod, PChar(stext));
+ Search := FMyListKey;
+end;
+
+
+procedure TSWModule.SetKey(ikey: TSWKey);
+begin
+ ModSetKeyKey(hswmod, ikey.SWHandle);
+end;
+
+
+procedure TSWModule.Inc;
+begin
+ ModInc(hswmod);
+end;
+
+
+procedure TSWModule.Dec;
+begin
+ ModDec(hswmod);
+end;
+
+
+procedure TSWModule.SetMasterKey(ikey: TSWKey);
+begin
+ FMasterKey := ikey;
+end;
+
+
+function TSWModule.GetMasterKey: TSWKey;
+begin
+ GetMasterKey := FMasterKey;
+end;
+
+
+function TSWModule.Error: integer;
+begin
+ Error := ModError(hswmod);
+end;
+
+
+
+
+procedure Register;
+begin
+ RegisterComponents('SWORD', [TSWModule]);
+end;
+
+
+
+end.
diff --git a/apps/windoze/Delphi20/swordvc/swordvc.dpr b/apps/windoze/Delphi20/swordvc/swordvc.dpr
new file mode 100644
index 0000000..38f660f
--- /dev/null
+++ b/apps/windoze/Delphi20/swordvc/swordvc.dpr
@@ -0,0 +1,18 @@
+program SwordVC;
+
+uses
+ Forms,
+ Unit1 in 'Unit1.pas' {Form1},
+ swmodule in 'swmodule.pas',
+ swvskey in 'swvskey.pas',
+ swkey in 'SWKey.pas',
+ listkey in 'listkey.pas',
+ swtxtdsp in 'swtxtdsp.pas';
+
+{$R *.RES}
+
+begin
+ Application.Initialize;
+ Application.CreateForm(TForm1, Form1);
+ Application.Run;
+end.
diff --git a/apps/windoze/Delphi20/swordvc/swtxtdsp.hpp b/apps/windoze/Delphi20/swordvc/swtxtdsp.hpp
new file mode 100644
index 0000000..5c2e813
--- /dev/null
+++ b/apps/windoze/Delphi20/swordvc/swtxtdsp.hpp
@@ -0,0 +1,106 @@
+//----------------------------------------------------------------------------
+// SWTXTDSP.hpp - bcbdcc32 generated hdr (DO NOT EDIT) rev: 0
+// From: SWTXTDSP.pas
+//----------------------------------------------------------------------------
+#ifndef SWTXTDSPHPP
+#define SWTXTDSPHPP
+//----------------------------------------------------------------------------
+#include <ComCtrls.hpp>
+#include <StdCtrls.hpp>
+#include <Dialogs.hpp>
+#include <Forms.hpp>
+#include <Controls.hpp>
+#include <Graphics.hpp>
+#include <Classes.hpp>
+#include <SysUtils.hpp>
+#include <Messages.hpp>
+#include <Windows.hpp>
+#include <SWVSKey.hpp>
+#include <SWModule.hpp>
+#include <IStreams.hpp>
+#include <System.hpp>
+namespace Swtxtdsp
+{
+//-- type declarations -------------------------------------------------------
+struct charrange
+{
+ long min;
+ long max;
+} ;
+
+class __declspec(delphiclass) TSWTextDisp;
+class __declspec(pascalimplementation) TSWTextDisp : public Comctrls::TRichEdit
+{
+ typedef Comctrls::TRichEdit inherited;
+
+private:
+ Swmodule::TSWModule* FSWModule;
+ bool FCurVerseMrk;
+ bool FCurVersePos;
+ System::AnsiString FRTFHeader;
+ System::AnsiString FRTFTrailer;
+ System::AnsiString FRTFChapterMarkPre;
+ System::AnsiString FRTFChapterMarkPost;
+ System::AnsiString FRTFVerseMarkPre;
+ System::AnsiString FRTFVerseMarkPost;
+ System::AnsiString FRTFVersePre;
+ System::AnsiString FRTFVersePost;
+ bool FMarkCurrentVerse;
+ charrange FCharRange;
+ bool FAutoPosition;
+ int __fastcall GetMySelStart(void);
+ void __fastcall SetMySelStart(int iselstart);
+
+protected:
+ Classes::TMemoryStream* RTFStream;
+ virtual void __fastcall SetSWModule(Swmodule::TSWModule* imodule);
+ virtual Swmodule::TSWModule* __fastcall GetSWModule(void);
+ virtual void __fastcall Loaded(void);
+
+public:
+ __fastcall virtual TSWTextDisp(Classes::TComponent* AOwner);
+ __fastcall virtual ~TSWTextDisp(void);
+ virtual void __fastcall Display(void);
+
+__published:
+ __property bool CurVersePos = {read=FCurVersePos, write=FCurVersePos, default=1};
+ __property bool CurVerseMrk = {read=FCurVerseMrk, write=FCurVerseMrk, default=1};
+ __property Swmodule::TSWModule* SWModule = {read=GetSWModule, write=SetSWModule, nodefault};
+ __property System::AnsiString RTFHeader = {read=FRTFHeader, write=FRTFHeader, nodefault};
+ __property System::AnsiString RTFChapterMarkPre = {read=FRTFChapterMarkPre, write=FRTFChapterMarkPre
+ , nodefault};
+ __property System::AnsiString RTFChapterMarkPost = {read=FRTFChapterMarkPost, write=FRTFChapterMarkPost
+ , nodefault};
+ __property System::AnsiString RTFVerseMarkPre = {read=FRTFVerseMarkPre, write=FRTFVerseMarkPre, nodefault
+ };
+ __property System::AnsiString RTFVerseMarkPost = {read=FRTFVerseMarkPost, write=FRTFVerseMarkPost,
+ nodefault};
+ __property System::AnsiString RTFVersePre = {read=FRTFVersePre, write=FRTFVersePre, nodefault};
+ __property System::AnsiString RTFVersePost = {read=FRTFVersePost, write=FRTFVersePost, nodefault};
+ __property System::AnsiString RTFTrailer = {read=FRTFTrailer, write=FRTFTrailer, nodefault};
+ __property bool MarkCurrentVerse = {read=FMarkCurrentVerse, write=FMarkCurrentVerse, default=1};
+ __property bool AutoPosition = {read=FAutoPosition, write=FAutoPosition, default=1};
+public:
+ /* TWinControl.CreateParented */ __fastcall TSWTextDisp(HWND ParentWindow) : Comctrls::TRichEdit(ParentWindow
+ ) { }
+
+};
+
+//-- var, const, procedure ---------------------------------------------------
+extern System::AnsiString defRTFHeader;
+extern System::AnsiString defRTFTrailer;
+extern System::AnsiString defRTFChapterMarkPre;
+extern System::AnsiString defRTFChapterMarkPost;
+extern System::AnsiString defRTFVerseMarkPre;
+extern System::AnsiString defRTFVerseMarkPost;
+extern System::AnsiString defRTFVersePre;
+extern System::AnsiString defRTFVersePost;
+extern void __fastcall Register(void);
+extern void __fastcall finalization(void);
+
+} /* namespace Swtxtdsp */
+#if !defined(NO_IMPLICIT_NAMESPACE_USE)
+using namespace Swtxtdsp;
+#endif
+//-- end unit ----------------------------------------------------------------
+#endif // SWTXTDSP
diff --git a/apps/windoze/Delphi20/swordvc/swtxtdsp.pas b/apps/windoze/Delphi20/swordvc/swtxtdsp.pas
new file mode 100644
index 0000000..27a63f7
--- /dev/null
+++ b/apps/windoze/Delphi20/swordvc/swtxtdsp.pas
@@ -0,0 +1,247 @@
+unit SWTXTDSP;
+
+interface
+
+uses
+ istreams, SWModule, SWVSKey, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
+ StdCtrls, ComCtrls;
+var
+ defRTFHeader :AnsiString;
+ defRTFTrailer :AnsiString;
+
+ defRTFChapterMarkPre :AnsiString;
+ defRTFChapterMarkPost :AnsiString;
+
+ defRTFVerseMarkPre :AnsiString;
+ defRTFVerseMarkPost :AnsiString;
+
+ defRTFVersePre :AnsiString;
+ defRTFVersePost :AnsiString;
+
+type
+ charrange = record
+ min : longint;
+ max : longint;
+ end;
+
+ TSWTextDisp = class(TRichEdit)
+ private
+ FSWModule: TSWModule;
+ FCurVerseMrk : boolean;
+ FCurVersePos : boolean;
+ FRTFHeader: AnsiString;
+ FRTFTrailer: AnsiString;
+ FRTFChapterMarkPre :AnsiString;
+ FRTFChapterMarkPost :AnsiString;
+ FRTFVerseMarkPre :AnsiString;
+ FRTFVerseMarkPost :AnsiString;
+ FRTFVersePre :AnsiString;
+ FRTFVersePost :AnsiString;
+ FMarkCurrentVerse :boolean;
+ FCharRange : charrange;
+ FAutoPosition : boolean;
+ function GetMySelStart: integer;
+ procedure SetMySelStart(iselstart : integer);
+ protected
+ RTFStream: TMemoryStream;
+ procedure SetSWModule(imodule: TSWModule); virtual;
+ function GetSWModule: TSWModule; virtual;
+ procedure Loaded; override;
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ procedure Display; virtual;
+ published
+ property CurVersePos : boolean read FCurVersePos write FCurVersePos default True;
+ property CurVerseMrk : boolean read FCurVerseMrk write FCurVerseMrk default True;
+ property SWModule: TSWModule read GetSWModule write SetSWModule;
+ property RTFHeader: AnsiString read FRTFHeader write FRTFHeader;
+ property RTFChapterMarkPre: AnsiString read FRTFChapterMarkPre write FRTFChapterMarkPre;
+ property RTFChapterMarkPost: AnsiString read FRTFChapterMarkPost write FRTFChapterMarkPost;
+ property RTFVerseMarkPre: AnsiString read FRTFVerseMarkPre write FRTFVerseMarkPre;
+ property RTFVerseMarkPost: AnsiString read FRTFVerseMarkPost write FRTFVerseMarkPost;
+ property RTFVersePre: AnsiString read FRTFVersePre write FRTFVersePre;
+ property RTFVersePost: AnsiString read FRTFVersePost write FRTFVersePost;
+ property RTFTrailer: AnsiString read FRTFTrailer write FRTFTrailer;
+ property MarkCurrentVerse: boolean read FMarkCurrentVerse write FMarkCurrentVerse default true;
+ Property AutoPosition: boolean read FAutoPosition write FAutoPosition default true;
+// property SelStart read GetMySelStart write SetMySelStart;
+ end;
+
+
+procedure Register;
+
+implementation
+
+constructor TSWTextDisp.Create(AOwner: TComponent);
+begin
+ inherited Create(AOwner);
+
+ FCurVersePos := True;
+ FCurVerseMrk := True;
+
+ RTFHeader := defRTFHeader;
+ RTFTrailer := defRTFTrailer;
+
+ RTFChapterMarkPre := defRTFChapterMarkPre;
+ RTFChapterMarkPost := defRTFChapterMarkPost;
+
+ RTFVerseMarkPre := defRTFVerseMarkPre;
+ RTFVerseMarkPost := defRTFVerseMarkPost;
+
+ RTFVersePre := defRTFVersePre;
+ RTFVersePost := defRTFVersePost;
+
+// RTFStream := TMemoryStream.Create;
+
+ MarkCurrentVerse := true;
+ AutoPosition := true;
+end;
+
+
+destructor TSWTextDisp.Destroy;
+begin
+ if (RTFStream <> nil) then
+ RTFStream.Free;
+ inherited Destroy;
+end;
+
+
+procedure TSWTextDisp.Loaded;
+begin
+ inherited Loaded;
+
+ if (RTFHeader = '') then
+ RTFHeader := defRTFHeader;
+ if (RTFTrailer = '') then
+ RTFTrailer := defRTFTrailer;
+
+ if (RTFChapterMarkPre = '') then
+ RTFChapterMarkPre := defRTFChapterMarkPre;
+ if (RTFChapterMarkPost = '') then
+ RTFChapterMarkPost := defRTFChapterMarkPost;
+
+ if (RTFVerseMarkPre = '') then
+ RTFVerseMarkPre := defRTFVerseMarkPre;
+ if (RTFVerseMarkPost = '') then
+ RTFVerseMarkPost := defRTFVerseMarkPost;
+
+ if (RTFVersePre = '') then
+ RTFVersePre := defRTFVersePre;
+ if (RTFVersePost = '') then
+ RTFVersePost := defRTFVersePost;
+
+ if not (csDesigning in ComponentState) then
+ begin
+ if (RTFStream = nil) then
+ RTFStream := TMemoryStream.Create;
+ end;
+end;
+
+//#define EM_EXGETSEL (WM_USER + 52)
+//#define EM_EXSETSEL (WM_USER + 55)
+
+function TSWTextDisp.GetMySelStart: integer;
+begin
+ SendMessage(Handle, (WM_USER + 52), 0, longint(@Fcharrange));
+ GetMySelStart := Fcharrange.min;
+end;
+
+
+procedure TSWTextDisp.SetMySelStart(iselstart : integer);
+begin
+ Fcharrange.min := iselstart;
+ Fcharrange.max := iselstart;
+ SendMessage(Handle, (WM_USER + 55), 0, longint(@Fcharrange));
+end;
+
+
+procedure TSWTextDisp.Display;
+var
+ book, chap, verse, versepos, currentpos: integer;
+ newtext, tmptext: AnsiString;
+ buf: PChar;
+begin
+ chap := TSWVerseKey(SWModule.Key).Chapter;
+ book := TSWVerseKey(SWModule.Key).Book;
+ verse:= TSWVerseKey(SWModule.Key).Verse;
+ TSWVerseKey(SWModule.Key).Verse := 1;
+ newtext := RTFHeader;
+ newtext := newtext + RTFChapterMarkPre + IntToStr(TSWVerseKey(SWModule.Key).Chapter) + RTFChapterMarkPost;
+ SWModule.Error; // clear error;
+ currentpos := 0;
+ while ((TSWVerseKey(SWModule.Key).Book = book) and (TSWVerseKey(SWModule.Key).Chapter = chap) and (SWModule.Error = 0)) do
+ begin
+ if (TSWVerseKey(SWModule.Key).Verse = verse) then
+ begin
+ if (MarkCurrentVerse = true) then {This does not work for shading background of current verse, but should }
+ newtext := newtext + '\pard \nowidctlpar \shading2000 \cf2' // \cf2 = second color in color table
+ else newtext := newtext + '\pard \nowidctlpar \cf0';
+ end else newtext := newtext + '\pard \nowidctlpar \cf0';
+
+ newtext := newtext + RTFVerseMarkPre + IntToStr(TSWVerseKey(SWModule.Key).Verse) + RTFVerseMarkPost;
+ newtext := newtext + RTFVersePre + SWModule.Text + RTFVersePost;
+ if ((TSWVerseKey(SWModule.Key).Verse = verse) and (AutoPosition = true)) then
+ begin
+ tmptext := newtext + RTFTrailer;
+ RTFStream.Clear;
+ RTFStream.WriteBuffer(Pointer(tmptext)^, Length(tmptext));
+ RTFStream.Position := 0;
+ FMarkCurrentVerse := true;
+ Lines.LoadFromStream(RTFStream);
+ PlainText := true;
+ versepos := GetTextLen; //RTFStream.Position;
+ PlainText := false;
+ end;
+ SWModule.Inc;
+ end;
+ newtext := newtext + RTFTrailer;
+ TSWVerseKey(SWModule.Key).Verse := 1; { When setting chapter: if (verse <> new chapter range) don't autonormalize. (we could've just turned the autonormalize option off then back on, but this is cooler) }
+ TSWVerseKey(SWModule.Key).Book := book;
+ TSWVerseKey(SWModule.Key).Chapter := chap;
+ TSWVerseKey(SWModule.Key).Verse := verse;
+ RTFStream.Clear;
+ RTFStream.WriteBuffer(Pointer(newtext)^, Length(newtext));
+ RTFStream.Position := 0;
+ Lines.LoadFromStream(RTFStream);
+
+ { Position control text at current verse }
+ if (AutoPosition = true) then
+ begin
+ SelStart := versepos;
+ SendMessage(Handle, EM_SCROLLCARET, 0, 0);
+ end;
+end;
+
+
+procedure TSWTextDisp.SetSWModule(imodule: TSWModule);
+begin
+ FSWModule := imodule;
+end;
+
+
+function TSWTextDisp.GetSWModule: TSWModule;
+begin
+ GetSWModule := FSWModule;
+end;
+
+
+procedure Register;
+begin
+ RegisterComponents('SWORD', [TSWTextDisp]);
+end;
+initialization
+ defRTFHeader := '{\rtf1\ansi{\fonttbl{\f4\froman\fcharset0\fprq2 Times New Roman;}}{\colortbl;\red0\green0\blue255;\red0\green200\blue50;}';
+ defRTFTrailer := '{\fs24 \par }}';
+
+ defRTFChapterMarkPre := '\pard \qc\nowidctlpar{\fs30\b Chapter ';
+ defRTFChapterMarkPost := '\par\fs10\par}';
+
+ defRTFVerseMarkPre := '{\fs20\cf1\super ';
+ defRTFVerseMarkPost := '}';
+
+ defRTFVersePre := '{\fs24';
+ defRTFVersePost := ' }';
+finalization
+
+end.
diff --git a/apps/windoze/Delphi20/swordvc/swvskey.hpp b/apps/windoze/Delphi20/swordvc/swvskey.hpp
new file mode 100644
index 0000000..2f99709
--- /dev/null
+++ b/apps/windoze/Delphi20/swordvc/swvskey.hpp
@@ -0,0 +1,60 @@
+//----------------------------------------------------------------------------
+// SWVSKey.hpp - bcbdcc32 generated hdr (DO NOT EDIT) rev: 0
+// From: SWVSKey.pas
+//----------------------------------------------------------------------------
+#ifndef SWVSKeyHPP
+#define SWVSKeyHPP
+//----------------------------------------------------------------------------
+#include <Dialogs.hpp>
+#include <Forms.hpp>
+#include <Controls.hpp>
+#include <Graphics.hpp>
+#include <Classes.hpp>
+#include <SysUtils.hpp>
+#include <Messages.hpp>
+#include <Windows.hpp>
+#include <SWKey.hpp>
+#include <SwordAPI.hpp>
+#include <System.hpp>
+namespace Swvskey
+{
+//-- type declarations -------------------------------------------------------
+class __declspec(delphiclass) TSWVerseKey;
+class __declspec(pascalimplementation) TSWVerseKey : public Swkey::TSWKey
+{
+ typedef Swkey::TSWKey inherited;
+
+protected:
+ int __fastcall GetTestament(void);
+ int __fastcall GetBook(void);
+ int __fastcall GetChapter(void);
+ int __fastcall GetVerse(void);
+ void __fastcall SetTestament(int ival);
+ void __fastcall SetBook(int ival);
+ void __fastcall SetChapter(int ival);
+ void __fastcall SetVerse(int ival);
+ bool __fastcall GetAutoNormalize(void);
+ void __fastcall SetAutoNormalize(bool ival);
+
+public:
+ __fastcall virtual TSWVerseKey(Classes::TComponent* AOwner);
+ __property int Testament = {read=GetTestament, write=SetTestament, nodefault};
+ __property int Book = {read=GetBook, write=SetBook, nodefault};
+ __property int Chapter = {read=GetChapter, write=SetChapter, nodefault};
+ __property int Verse = {read=GetVerse, write=SetVerse, nodefault};
+ __property bool AutoNormalize = {read=GetAutoNormalize, write=SetAutoNormalize, nodefault};
+ void __fastcall Normalize(void);
+public:
+ /* TSWKey.Destroy */ __fastcall virtual ~TSWVerseKey(void) { }
+
+};
+
+//-- var, const, procedure ---------------------------------------------------
+extern void __fastcall Register(void);
+
+} /* namespace Swvskey */
+#if !defined(NO_IMPLICIT_NAMESPACE_USE)
+using namespace Swvskey;
+#endif
+//-- end unit ----------------------------------------------------------------
+#endif // SWVSKey
diff --git a/apps/windoze/Delphi20/swordvc/swvskey.pas b/apps/windoze/Delphi20/swordvc/swvskey.pas
new file mode 100644
index 0000000..8bf5e43
--- /dev/null
+++ b/apps/windoze/Delphi20/swordvc/swvskey.pas
@@ -0,0 +1,118 @@
+unit SWVSKey;
+
+interface
+
+uses
+ SwordAPI, SWKey, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
+
+type
+ TSWVerseKey = class(TSWKey)
+ private
+ protected
+ function GetTestament: integer;
+ function GetBook: integer;
+ function GetChapter: integer;
+ function GetVerse: integer;
+ procedure SetTestament(ival: integer);
+ procedure SetBook(ival: integer);
+ procedure SetChapter(ival: integer);
+ procedure SetVerse(ival: integer);
+ function GetAutoNormalize: Boolean;
+ procedure SetAutoNormalize(ival: Boolean);
+
+ public
+ constructor Create(AOwner:TComponent); override;
+ property Testament: integer read GetTestament write SetTestament;
+ property Book: integer read GetBook write SetBook;
+ property Chapter: integer read GetChapter write SetChapter;
+ property Verse: integer read GetVerse write SetVerse;
+ property AutoNormalize: Boolean read GetAutoNormalize write SetAutoNormalize;
+ procedure Normalize;
+ published
+ end;
+
+
+procedure Register;
+
+implementation
+
+
+constructor TSWVerseKey.Create(AOwner:TComponent);
+begin
+ inherited Create(AOwner);
+ KeyType := 'VerseKey';
+end;
+
+
+function TSWVerseKey.GetTestament: integer;
+begin
+ GetTestament := VerseKeyGetTestament(hswkey);
+end;
+
+
+function TSWVerseKey.GetBook: integer;
+begin
+ GetBook := VerseKeyGetBook(hswkey);
+end;
+
+
+function TSWVerseKey.GetChapter: integer;
+begin
+ GetChapter := VerseKeyGetChapter(hswkey);
+end;
+
+
+function TSWVerseKey.GetVerse: integer;
+begin
+ GetVerse := VerseKeyGetVerse(hswkey);
+end;
+
+
+procedure TSWVerseKey.SetTestament(ival: integer);
+begin
+ VerseKeySetTestament(hswkey, ival);
+end;
+
+
+procedure TSWVerseKey.SetBook(ival: integer);
+begin
+ VerseKeySetBook(hswkey, ival);
+end;
+
+
+procedure TSWVerseKey.SetChapter(ival: integer);
+begin
+ VerseKeySetChapter(hswkey, ival);
+end;
+
+
+procedure TSWVerseKey.SetVerse(ival: integer);
+begin
+ VerseKeySetVerse(hswkey, ival);
+end;
+
+
+function TSWVerseKey.GetAutoNormalize: Boolean;
+begin
+ GetAutoNormalize := Boolean(VerseKeyGetAutoNormalize(hswkey));
+end;
+
+
+procedure TSWVerseKey.SetAutoNormalize(ival: Boolean);
+begin
+ VerseKeySetAutoNormalize(hswkey, integer(ival));
+end;
+
+
+procedure TSWVerseKey.Normalize;
+begin
+ VerseKeyNormalize(hswkey);
+end;
+
+
+procedure Register;
+begin
+ RegisterComponents('SWORD', [TSWVerseKey]);
+end;
+
+end.
diff --git a/apps/windoze/Makefile b/apps/windoze/Makefile
new file mode 100644
index 0000000..b141bb5
--- /dev/null
+++ b/apps/windoze/Makefile
@@ -0,0 +1,14 @@
+
+root := ../..
+subdirs := CBuilder3
+pre-targets :=
+include ${root}/Makefile.cfg
+
+
+s = $(c) $(cpp)
+d = $(c:%.c=%.d) $(cpp:%.cpp=%.d)
+o = $(c:%.c=%.o) $(cpp:%.cpp=%.o)
+
+ifneq ($(nodeps),yes)
+-include $(d)
+endif
diff --git a/apps/windoze/bcowl25/swordapi/Sword16.ide b/apps/windoze/bcowl25/swordapi/Sword16.ide
new file mode 100644
index 0000000..58c6c0f
--- /dev/null
+++ b/apps/windoze/bcowl25/swordapi/Sword16.ide
Binary files differ
diff --git a/apps/windoze/bcowl25/swordapi/Sword32.ide b/apps/windoze/bcowl25/swordapi/Sword32.ide
new file mode 100644
index 0000000..065ea6b
--- /dev/null
+++ b/apps/windoze/bcowl25/swordapi/Sword32.ide
Binary files differ
diff --git a/apps/windoze/bcowl25/swordapi/Sword32cg.ide b/apps/windoze/bcowl25/swordapi/Sword32cg.ide
new file mode 100644
index 0000000..e06a116
--- /dev/null
+++ b/apps/windoze/bcowl25/swordapi/Sword32cg.ide
Binary files differ
diff --git a/apps/windoze/bcowl25/swordapi/Swordapi.cpp b/apps/windoze/bcowl25/swordapi/Swordapi.cpp
new file mode 100644
index 0000000..92579ab
--- /dev/null
+++ b/apps/windoze/bcowl25/swordapi/Swordapi.cpp
@@ -0,0 +1,334 @@
+/******************************************************************************
+ * swordapi.cpp - This file contains an api usable by non-C++ windows
+ * environments
+ */
+
+#define STRICT
+#include <windows.h>
+#pragma hdrstop
+
+#include <string.h>
+#include <stdio.h>
+
+#include <rawtext.h>
+#include <rawcom.h>
+#include <rawld.h>
+#include <strkey.h>
+#include <listkey.h>
+#include <versekey.h>
+#include <swmgr.h>
+
+#include "swordapi.h"
+
+
+SWMgr mainmgr;
+
+// Just a function to check to see if DLL is getting called correctly
+void _export PASCAL YoYo(int x, int y)
+{
+ char buf[4096];
+
+ sprintf(buf, "p1: %d; p2: %d", x, y);
+ MessageBox(GetFocus(), buf, "Yo", MB_OK);
+}
+
+
+int _export PASCAL NewModule(char FAR *type, void *iparams)
+{
+ SWModule *rval;
+
+ if (!type || !iparams)
+ return 0;
+
+ struct rawtextparams {
+ char FAR *dir;
+ char FAR *name;
+ char FAR *desc;
+ } *params = (struct rawtextparams *)iparams;
+
+ struct rawcomparams {
+ char FAR *dir;
+ char FAR *name;
+ char FAR *desc;
+ };
+
+ struct rawldparams {
+ char FAR *dirfile;
+ char FAR *name;
+ char FAR *desc;
+ };
+
+ if (!stricmp(type, "RawText")) {
+ rval = new RawText(((struct rawtextparams *)params)->dir,
+ ((struct rawtextparams *)params)->name,
+ ((struct rawtextparams *)params)->desc);
+ }
+ if (!stricmp(type, "RawCom")) {
+ rval = new RawCom (((struct rawcomparams *)params)->dir,
+ ((struct rawcomparams *)params)->name,
+ ((struct rawcomparams *)params)->desc);
+ }
+ if (!stricmp(type, "RawLD")) {
+ rval = new RawLD (((struct rawldparams *)params)->dirfile,
+ ((struct rawldparams *)params)->name,
+ ((struct rawldparams *)params)->desc);
+ }
+
+ return (int)rval;
+}
+
+
+void _export PASCAL DeleteModule(SWModule FAR *hmod)
+{
+ if (hmod)
+ delete hmod;
+}
+
+
+char _export PASCAL ModSetKeyText(SWModule FAR *mod, char FAR *key)
+{
+ return mod->SetKey(key);
+}
+
+
+char _export PASCAL ModSetKeyKey(SWModule FAR *mod, SWKey FAR *key)
+{
+ return mod->SetKey(*key);
+}
+
+
+int _export PASCAL ModGetTextLen(SWModule FAR *mod)
+{
+ return strlen((char *)*mod);
+}
+
+
+void _export PASCAL ModGetText(SWModule FAR *mod, char FAR *buf, int size)
+{
+ memset(buf, 0, size);
+ strncpy(buf, (char *)*mod, size - 1);
+}
+
+
+void _export PASCAL ModGetKeyText(SWModule FAR *mod, char FAR *buf, int size)
+{
+ memset(buf, 0, size);
+ strncpy(buf, (char *)(SWKey)*mod, size - 1);
+}
+
+
+int _export PASCAL ModGetKey(SWModule FAR *mod)
+{
+ SWKey *retval;
+
+ retval = &((SWKey)*mod);
+ return (int) retval;
+}
+
+
+void _export PASCAL ModInc(SWModule FAR *mod)
+{
+ (*mod)++;
+}
+
+
+void _export PASCAL ModDec(SWModule FAR *mod)
+{
+ (*mod)--;
+}
+
+
+int _export PASCAL ModSearch(SWModule FAR *mod, char FAR *stext)
+{
+ ListKey *retval;
+
+ retval = &(mod->Search(stext));
+ return (int) retval;
+}
+
+
+int _export PASCAL ModError(SWModule FAR *mod)
+{
+ return (int)mod->Error();
+}
+
+
+/******************************************************************************
+ * Key routines
+ */
+
+int _export PASCAL NewKey(char FAR *type)
+{
+ SWKey *rval = 0;
+
+ if (!type)
+ return 0;
+
+ if (!stricmp(type, "VerseKey")) {
+ rval = new VerseKey();
+ }
+ if (!stricmp(type, "StrKey")) {
+ rval = new StrKey();
+ }
+ if (!stricmp(type, "ListKey")) {
+ rval = new ListKey();
+ }
+ return (int)rval;
+}
+
+
+void _export PASCAL DeleteKey(SWKey FAR *hkey)
+{
+ if (hkey)
+ delete hkey;
+}
+
+
+void _export PASCAL KeySetPersist(SWKey *hkey, int ipersist)
+{
+ hkey->Persist((char)ipersist);
+}
+
+
+int _export PASCAL KeyGetPersist(SWKey *hkey)
+{
+ return hkey->Persist();
+}
+
+
+int _export PASCAL KeyError(SWKey *hkey)
+{
+ return (int)hkey->Error();
+}
+
+
+void _export PASCAL KeyGetText(SWKey FAR *hkey, char FAR *buf, int size)
+{
+ memset(buf, 0, size);
+ strncpy(buf, (char *)*hkey, size - 1);
+}
+
+
+void _export PASCAL KeySetText(SWKey FAR *hkey, char FAR *buf)
+{
+ (*hkey) = buf;
+}
+
+
+void _export PASCAL KeySetKey(SWKey FAR *hkey, SWKey FAR *skey)
+{
+ (*hkey) = (*skey);
+}
+
+void _export PASCAL KeyInc(SWKey FAR *hkey)
+{
+ (*hkey)++;
+}
+
+
+void _export PASCAL KeyDec(SWKey FAR *hkey)
+{
+ (*hkey)--;
+}
+
+
+
+//-------- VerseKey specifics ----------------
+
+int _export PASCAL VerseKeyGetTestament(VerseKey *hkey)
+{
+ return (int)hkey->Testament();
+}
+
+
+int _export PASCAL VerseKeyGetBook(VerseKey *hkey)
+{
+ return (int)hkey->Book();
+}
+
+
+int _export PASCAL VerseKeyGetChapter(VerseKey *hkey)
+{
+ return (int)hkey->Chapter();
+}
+
+
+int _export PASCAL VerseKeyGetVerse(VerseKey *hkey)
+{
+ return (int)hkey->Verse();
+}
+
+
+void _export PASCAL VerseKeySetTestament(VerseKey *hkey, int val)
+{
+ hkey->Testament(val);
+}
+
+
+void _export PASCAL VerseKeySetBook(VerseKey *hkey, int val)
+{
+ hkey->Book(val);
+}
+
+
+void _export PASCAL VerseKeySetChapter(VerseKey *hkey, int val)
+{
+ hkey->Chapter(val);
+}
+
+
+void _export PASCAL VerseKeySetVerse(VerseKey *hkey, int val)
+{
+ hkey->Verse(val);
+}
+
+
+void _export PASCAL VerseKeyNormalize(VerseKey *hkey)
+{
+ hkey->Normalize();
+}
+
+
+void _export PASCAL VerseKeySetAutoNormalize(VerseKey *hkey, int val)
+{
+ hkey->AutoNormalize(val);
+}
+
+
+int _export PASCAL VerseKeyGetAutoNormalize(VerseKey *hkey)
+{
+ return hkey->AutoNormalize();
+}
+
+
+// Turn off warning: Parameter '' is never used
+#pragma argsused
+
+#if defined(__FLAT__)
+BOOL WINAPI DllEntryPoint( HINSTANCE hinstDll,
+ DWORD fdwRreason,
+ LPVOID plvReserved)
+{
+#else /* not flat model */
+int FAR PASCAL LibMain( HINSTANCE hInstance,
+ WORD wDataSegment,
+ WORD wHeapSize,
+ LPSTR lpszCmdLine )
+
+// The startup code for the DLL initializes the local heap(if there is one)
+// with a call to LocalInit which locks the data segment.
+{
+ if ( wHeapSize != 0 )
+ UnlockData( 0 );
+#endif /* ! __FLAT__ */
+ return 1; // Indicate that the DLL was initialized successfully.
+}
+
+// Turn off warning: Parameter '' is never used
+#pragma argsused
+
+int FAR PASCAL WEP ( int bSystemExit )
+{
+ return 1;
+}
+
diff --git a/apps/windoze/bcowl25/swordapi/mods.conf b/apps/windoze/bcowl25/swordapi/mods.conf
new file mode 100644
index 0000000..b902988
--- /dev/null
+++ b/apps/windoze/bcowl25/swordapi/mods.conf
@@ -0,0 +1,66 @@
+[Globals]
+AutoInstall=./newmods/
+
+[Websters]
+DataPath=./modules/texts/rawtext/websters/
+ModDrv=RawText
+Description=The Webster Bible
+About= -=+* see the files 'intro.txt' and 'revision.txt' for more details *+=-\par\par \
+\qc THE \par HOLY BIBLE, \par CONTAINING THE \par OLD AND NEW TESTAMENTS, \par IN THE \par \
+COMMON VERSION. \par WITH \par AMENDMENTS OF THE LANGUAGE, \par \
+BY NOAH WEBSTER, LL. D. \par\par ------------- \par NEW HAVEN: \par \
+PUBLISHED BY DURRIE & PECK. \par \
+Sold by HEZEKIAH HOWE & CO., and A. H. MALTBY, New Haven; \par \
+and by N.&J. WHITE, New York. \par\par ------ \par 1833 \par\par \
+Webster Bible Electronic Format.\par \
+PUBLIC DOMAIN\par\par \
+February 1992\par\par\pard \
+Webster Biography:\par \
+Noah Webster: America's first grammarian and founding father of American education.\par\par \
+ In 1828 Noah Webster published the 'American Dictionary of the English Language'. This \
+dictionary demonstrates the Christian values which were found in America's educational \
+and scholarly systems. It is from this early dictionary that we have todays popular \
+'Webster Dictionary'. In 1833 Noah Webster, who had mastered 20 languages including \
+Hebrew and Greek, published the King James Authorized Version 'with amendments to the \
+language'. In stating his reasons for producing this version of the Bible, Webster said:\par\par \
+ 'In the present version, the language is, in general, correct and perspicuous; \
+... in many passages uniting sublimity with beautiful simplicity. In my view, the general \
+style of the version ought not to be altered. But, in the lapse of two or three centuries, \
+changes have taken place, which, in particular passages, impair the beauty; in others, \
+obscure the sense, of the original languages. ... they do not present to the reader \
+the Word of God. ... My principal aim is to remedy this evil.'\par\par \
+It was with cautious reverence that Webster corrected misused grammar, removed offensive \
+terms and expressions, and substituted commonly understood words for words that had fallen \
+into disuse, or no longer carried the same meaning.\par\par\
+ In 1834, the year after completing the Webster Bible, Noah Webster wrote a \
+companion piece titled 'Value of the Bible and Excellence of the Christian Religion - For \
+the Use of Families and Schools'.\par\par\
+ Webster, who was considered 'The schoolmaster to a nation' and produced the \
+earliest spellers and textbooks for America's school children, believed Christian religious \
+values and American public education to be inseparable. He believed the Webster Bible to \
+be 'the most important enterprise' of his life, and referred to the Bible as:\par\par \
+ '... the chief moral cause of all that is good, and the best corrector of all that \
+is evil, in human society; the best book for regulating the temporal concerns of men, and \
+the only book that can serve as an infallible guide to future felicity.'\par\par \
+Introduction to the Electronic Format:\par \
+ Beginning in July of 1991 the task of placing the Webster Bible text in electronic \
+format began. The original purpose was to provide Larry Pierce, who produces the \
+On-Line Bible program, with a more modern *public domain* text, similar in content and \
+style to the AV but with a grammar that would provide better comprehension in todays \
+English.\par\par\
+ I plan on maintaining an accurate copy of the Webster text. Anyone finding an \
+error should contact me; Anyone desiring to obtain the latest, most correct text, can find \
+it on the Bible Foundation BBS, or can contact me in the following methods:\par \
+ Internet acus10@waccvm.corp.mot.com\par \
+ Home phone 602-829-8542\par \
+ Address Mark Fuller\par \
+ 1129 East Loyola Drive\par \
+ Tempe Arizona, 85282\par \
+ Bible Foundation http://www.bf.org\par\par \
+ I would like to thank the Bible Foundation not only for scanning nearly the entire \
+Webster Bible but for encouraging me to undertake this monumental work; particularly around \
+page 20 when I realized what I had gotten myself into. Special thanks to Jerry Kingery of \
+the Bible Foundation for scanning, and Jerry Hastings for doing some preliminary scan \
+cleaning and making the texts available on the BBS.
+
+
diff --git a/apps/windoze/bcowl25/swordapi/swordapi.h b/apps/windoze/bcowl25/swordapi/swordapi.h
new file mode 100644
index 0000000..5206f51
--- /dev/null
+++ b/apps/windoze/bcowl25/swordapi/swordapi.h
@@ -0,0 +1,60 @@
+#ifndef SWORDAPI_H
+#define SWORDAPI_H
+
+#include <swmodule.h>
+#include <swkey.h>
+#include <versekey.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+void _export PASCAL YoYo(int x, int y);
+int _export PASCAL NewModule(char FAR *type, void *iparams);
+void _export PASCAL DeleteModule(SWModule FAR *mod);
+char _export PASCAL ModSetKeyText(SWModule FAR *mod, char FAR *key);
+char _export PASCAL ModSetKeyKey(SWModule FAR *mod, SWKey FAR *key);
+int _export PASCAL ModGetTextLen(SWModule FAR *mod);
+void _export PASCAL ModGetText(SWModule FAR *mod, char FAR *buf, int size);
+void _export PASCAL ModGetKeyText(SWModule FAR *mod, char FAR *buf, int size);
+int _export PASCAL ModGetKey(SWModule FAR *mod);
+void _export PASCAL ModInc(SWModule FAR *mod);
+void _export PASCAL ModDec(SWModule FAR *mod);
+int _export PASCAL ModSearch(SWModule FAR *mod, char FAR *stext);
+int _export PASCAL ModError(SWModule FAR *mod);
+
+
+/******************************************************************************
+ * Key routines
+ */
+
+int _export PASCAL NewKey(char FAR *type);
+void _export PASCAL DeleteKey(SWKey FAR *hkey);
+void _export PASCAL KeySetPersist(SWKey *hkey, int ipersist);
+int _export PASCAL KeyGetPersist(SWKey *hkey);
+int _export PASCAL KeyError(SWKey *hkey);
+void _export PASCAL KeyGetText(SWKey FAR *hkey, char FAR *buf, int size);
+void _export PASCAL KeySetText(SWKey FAR *hkey, char FAR *buf);
+void _export PASCAL KeySetKey(SWKey FAR *hkey, SWKey FAR *skey);
+void _export PASCAL KeyInc(SWKey FAR *hkey);
+void _export PASCAL KeyDec(SWKey FAR *hkey);
+
+
+//-------- VerseKey specifics ----------------
+
+int _export PASCAL VerseKeyGetTestament(VerseKey *hkey);
+int _export PASCAL VerseKeyGetBook(VerseKey *hkey);
+int _export PASCAL VerseKeyGetChapter(VerseKey *hkey);
+int _export PASCAL VerseKeyGetVerse(VerseKey *hkey);
+void _export PASCAL VerseKeySetTestament(VerseKey *hkey, int val);
+void _export PASCAL VerseKeySetBook(VerseKey *hkey, int val);
+void _export PASCAL VerseKeySetChapter(VerseKey *hkey, int val);
+void _export PASCAL VerseKeySetVerse(VerseKey *hkey, int val);
+void _export PASCAL VerseKeyNormalize(VerseKey *hkey);
+void _export PASCAL VerseKeySetAutoNormalize(VerseKey *hkey, int val);
+int _export PASCAL VerseKeyGetAutoNormalize(VerseKey *hkey);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/apps/windoze/swdisprtf.cpp b/apps/windoze/swdisprtf.cpp
new file mode 100644
index 0000000..84593c6
--- /dev/null
+++ b/apps/windoze/swdisprtf.cpp
@@ -0,0 +1,187 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "swdisprtf.h"
+//---------------------------------------------------------------------------
+static inline SWDispRTF *ValidCtrCheck()
+{
+ return new SWDispRTF(NULL);
+}
+//---------------------------------------------------------------------------
+__fastcall SWDispRTF::SWDispRTF(TComponent* Owner)
+#ifndef USEOLDRTF
+ : TRxRichEdit(Owner)
+#else
+ : TRichEdit(Owner)
+#endif
+{
+ char buf[4096];
+
+ RTFHeader = defRTFHeader;
+ RTFHeadMargin = defRTFHeadMargin;
+ sprintf(buf, defRTFTrailer, 24);
+ RTFTrailer = buf;
+
+ sprintf(buf, defRTFChapterMarkPre, 30);
+ RTFChapterMarkPre = buf;
+ sprintf(buf, defRTFChapterMarkPost, 10);
+ RTFChapterMarkPost = buf;
+
+ sprintf(buf, defRTFVerseMarkPre, 20);
+ RTFVerseMarkPre = buf;
+ RTFVerseMarkPost = defRTFVerseMarkPost;
+
+ sprintf(buf, defRTFVersePre, 24);
+ RTFVersePre = buf;
+ RTFVersePost = defRTFVersePost;
+
+ RTFStream = new TMemoryStream();
+
+ ExpandNewLine = true;
+}
+
+__fastcall SWDispRTF::~SWDispRTF()
+{
+ if (RTFStream)
+ delete RTFStream;
+}
+
+
+void __fastcall SWDispRTF::Loaded(void)
+{
+#ifndef USEOLDRTF
+ TRxRichEdit::Loaded();
+#else
+ TRichEdit::Loaded();
+#endif
+/*
+ if (RTFHeader == "")
+ RTFHeader = defRTFHeader;
+ if (RTFTrailer == "")
+ RTFTrailer = defRTFTrailer;
+
+ if (RTFChapterMarkPre == "")
+ RTFChapterMarkPre = defRTFChapterMarkPre;
+ if (RTFChapterMarkPost == "")
+ RTFChapterMarkPost = defRTFChapterMarkPost;
+
+ if (RTFVerseMarkPre == "")
+ RTFVerseMarkPre = defRTFVerseMarkPre;
+ if (RTFVerseMarkPost == "")
+ RTFVerseMarkPost = defRTFVerseMarkPost;
+
+ if (RTFVersePre == "")
+ RTFVersePre = defRTFVersePre;
+ if (RTFVersePost == "")
+ RTFVersePost = defRTFVersePost;
+*/
+}
+
+
+int __fastcall SWDispRTF::GetMySelStart()
+{
+ CHARRANGE cr;
+
+ SendMessage(Handle, EM_EXGETSEL, 0, (long)&cr);
+ return cr.cpMin;
+}
+
+
+void __fastcall SWDispRTF::SetMySelStart(int iselstart)
+{
+ CHARRANGE cr;
+
+ cr.cpMin = iselstart;
+ cr.cpMax = iselstart;
+ SendMessage(Handle, EM_EXSETSEL, 0, (long)&cr);
+}
+
+
+char SWDispRTF::Display(SWModule &Module)
+{
+ System::AnsiString newtext, tmptext;
+
+ newtext = RTFHeader;
+ newtext = newtext + RTFHeadMargin;
+ Module.Error(); // clear error;
+ newtext = newtext + "\\pard \\nowidctlpar \\cf7\\f0 ";
+ (const char *)Module; // force key to snap to entry before pulling out the text of the key
+ newtext = newtext + RTFVerseMarkPre + Module.KeyText() + RTFVerseMarkPost;
+ tmptext = "";
+/*
+ for (char *loop = (char *)Module; *loop; loop++) {
+ if ((*loop == '\n') && (ExpandNewLine))
+ tmptext += "\\par ";
+ else tmptext += *loop;
+ }
+*/
+ tmptext = (const char *)Module;
+
+ newtext = newtext + RTFVersePre + " " + tmptext + RTFVersePost;
+ newtext = newtext + RTFTrailer;
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(newtext.c_str(), newtext.Length());
+ RTFStream->Position = 0;
+ Lines->LoadFromStream(RTFStream);
+ return 0;
+}
+
+/*
+void SWDispRTF::SetModule(SWText *imodule)
+{
+ FModule = imodule;
+}
+
+
+SWText *SWDispRTF::GetModule()
+{
+ return FModule;
+}
+*/
+
+
+int __fastcall SWDispRTF::getFontSize() {
+ return fontSize;
+}
+
+
+void __fastcall SWDispRTF::setFontSize(int iFontSize) {
+ fontSize = iFontSize;
+ recalcHeaders();
+}
+
+
+void SWDispRTF::recalcHeaders() {
+
+ char buf[4096];
+
+ sprintf(buf, defRTFTrailer, 24 + FontSize);
+ RTFTrailer = buf;
+
+ sprintf(buf, defRTFChapterMarkPre, 30 + FontSize);
+ RTFChapterMarkPre = buf;
+ sprintf(buf, defRTFChapterMarkPost, 10 + FontSize);
+ RTFChapterMarkPost = buf;
+
+ sprintf(buf, defRTFVerseMarkPre, 20 + FontSize);
+ RTFVerseMarkPre = buf;
+
+ sprintf(buf, defRTFVersePre, 24 + FontSize);
+ RTFVersePre = buf;
+ fontSize = 0; // (+/-)
+}
+
+
+//---------------------------------------------------------------------------
+namespace Swdisprtf
+{
+ void __fastcall Register()
+ {
+ TComponentClass classes[1] = {__classid(SWDispRTF)};
+ RegisterComponents("SWORD", classes, 0);
+ }
+}
+//---------------------------------------------------------------------------
+
+
diff --git a/apps/windoze/swdisprtfchap.cpp b/apps/windoze/swdisprtfchap.cpp
new file mode 100644
index 0000000..f9ff5d7
--- /dev/null
+++ b/apps/windoze/swdisprtfchap.cpp
@@ -0,0 +1,128 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "biblecsmgr.h"
+#include "swdisprtfchap.h"
+//---------------------------------------------------------------------------
+static inline SWDispRTFChap *ValidCtrCheck()
+{
+ return new SWDispRTFChap(NULL);
+}
+//---------------------------------------------------------------------------
+__fastcall SWDispRTFChap::SWDispRTFChap(TComponent* Owner)
+ : SWDispRTF(Owner)
+{
+ FCurVersePos = true;
+ FCurVerseMrk = true;
+ FMarkCurrentVerse = true;
+ FAutoPosition = true;
+
+ OSVERSIONINFO osvi;
+ memset(&osvi, 0, sizeof(OSVERSIONINFO));
+ osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+ GetVersionEx(&osvi);
+ platformID = osvi.dwPlatformId;
+}
+
+__fastcall SWDispRTFChap::~SWDispRTFChap()
+{
+}
+
+
+void __fastcall SWDispRTFChap::Loaded(void)
+{
+ SWDispRTF::Loaded();
+}
+
+
+char SWDispRTFChap::Display(SWModule &Module)
+{
+ int testmt, book, chap, verse, versepos;
+ System::AnsiString newtext, tmptext;
+ VerseKey *key = (VerseKey *)(SWKey *)Module;
+ testmt = key->Testament();
+ chap = key->Chapter();
+ book = key->Book();
+ verse = key->Verse();
+ key->Verse(1);
+ newtext = RTFHeader;
+ newtext = newtext + RTFChapterMarkPre + IntToStr(chap) + RTFChapterMarkPost;
+ newtext = newtext + "\\pard\\f0\\nowidctlpar\\cf7 ";
+ if (Module.Direction() == DIRECTION_RTL) {
+ newtext = newtext + "\\qr ";
+ }
+ if (Module.Direction() == DIRECTION_RTL && (platformID == WINNT && (!strnicmp(Module.Lang(), "he", 2) || !strnicmp(Module.Lang(), "ar", 2)))) {
+ newtext = newtext + "\\rtlpar ";
+ }
+
+ Module.Error(); // clear error;
+ while ((key->Book() == book) && (key->Chapter() == chap) && (Module.Error() == 0)) {
+ newtext = newtext + "{";
+ if (key->Verse() == verse && MarkCurrentVerse == true)
+ newtext = newtext + "\\cf2 "; // \cf2 = second color in color table
+
+ tmptext = "";
+ for (const char *loop = (const char *)Module; *loop; loop++) {
+ if (*loop == '\n')
+ tmptext += "\\par ";
+ else tmptext += *loop;
+ }
+ if (tmptext.Length() > 3) { // make sure we have an entry
+ if (Module.Direction() == DIRECTION_RTL && (platformID == WIN9X || (Module.Lang() && strnicmp(Module.Lang(), "he", 2) && strnicmp(Module.Lang(), "ar", 2)))) {
+ newtext = newtext + RTFVersePre + tmptext + RTFVersePost;
+ newtext = newtext + RTFVerseMarkPre + IntToStr(key->Verse()) + RTFVerseMarkPost;
+ newtext = newtext + "\\par ";
+ } else {
+ newtext = newtext + RTFVerseMarkPre + IntToStr(key->Verse()) + RTFVerseMarkPost;
+ newtext = newtext + RTFVersePre + tmptext + RTFVersePost;
+ }
+ }
+ if ((key->Verse() == verse) && (AutoPosition == true)) {
+ tmptext = newtext + RTFTrailer;
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(tmptext.c_str(), tmptext.Length());
+ RTFStream->Position = 0;
+// FMarkCurrentVerse = true;
+ Lines->LoadFromStream(RTFStream);
+ PlainText = true;
+ versepos = GetTextLen(); //RTFStream.Position;
+ PlainText = false;
+ }
+ newtext = newtext + "}";
+ Module++;
+ }
+ newtext = newtext + RTFTrailer;
+ key->Verse(1); //{ When setting chapter: if (verse <> new chapter range) don't autonormalize. (we could've just turned the autonormalize option off then back on, but this is cooler) }
+ key->Chapter(1);
+ key->Book(1);
+ key->Testament(testmt);
+ key->Book(book);
+ key->Chapter(chap);
+ key->Verse(verse);
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(newtext.c_str(), newtext.Length());
+ RTFStream->Position = 0;
+ Lines->LoadFromStream(RTFStream);
+
+ //{ Position control text at current verse }
+ this->SetFocus();
+ if (AutoPosition == true) {
+ SelStart = versepos;
+ SendMessage(Handle, EM_SCROLLCARET, 0, 0);
+ }
+ return 0;
+}
+
+
+//---------------------------------------------------------------------------
+namespace Swdisprtfchap
+{
+ void __fastcall Register()
+ {
+ TComponentClass classes[1] = {__classid(SWDispRTFChap)};
+ RegisterComponents("SWORD", classes, 0);
+ }
+}
+//---------------------------------------------------------------------------
+ \ No newline at end of file
diff --git a/apps/windoze/swwinlog.cpp b/apps/windoze/swwinlog.cpp
new file mode 100644
index 0000000..2cde232
--- /dev/null
+++ b/apps/windoze/swwinlog.cpp
@@ -0,0 +1,76 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "swwinlog.h"
+#include <stdio.h>
+#include <conio.h>
+#include <stdarg.h>
+//---------------------------------------------------------------------------
+
+SWWinLog::SWWinLog(HWND iparent)
+{
+ parent = iparent;
+ log = true;
+}
+
+
+void SWWinLog::LogWarning(char *fmt, ...)
+{
+ char msg[2048];
+ va_list argptr;
+
+ if (log) {
+ va_start(argptr, fmt);
+ vsprintf(msg, fmt, argptr);
+ va_end(argptr);
+
+ MessageBox(NULL, msg, "Warning", MB_OK);
+ }
+}
+
+
+void SWWinLog::LogError(char *fmt, ...)
+{
+ char msg[2048];
+ va_list argptr;
+
+ if (log) {
+ va_start(argptr, fmt);
+ vsprintf(msg, fmt, argptr);
+ va_end(argptr);
+
+ MessageBox(NULL, msg, "Error", MB_OK);
+ }
+}
+
+
+void SWWinLog::LogTimedInformation(char *fmt, ...)
+{
+ char msg[2048];
+ va_list argptr;
+
+ if (log) {
+ va_start(argptr, fmt);
+ vsprintf(msg, fmt, argptr);
+ va_end(argptr);
+
+ MessageBox(NULL, msg, "Information...", MB_OK);
+
+ }
+}
+
+
+void SWWinLog::LogInformation(char *fmt, ...)
+{
+ char msg[2048];
+ va_list argptr;
+
+ if (log) {
+ va_start(argptr, fmt);
+ vsprintf(msg, fmt, argptr);
+ va_end(argptr);
+
+ MessageBox(NULL, msg, "Information", MB_OK);
+ }
+}
diff --git a/apps/windoze/tbdisp.cpp b/apps/windoze/tbdisp.cpp
new file mode 100644
index 0000000..45de2bd
--- /dev/null
+++ b/apps/windoze/tbdisp.cpp
@@ -0,0 +1,55 @@
+/******************************************************************************
+ * tbdisp.cpp - code for class 'tbdisp'. tbdisp writes module output to a
+ * MSWindows TextBox (or any other control that takes a
+ * SetDialogItemText
+ */
+
+#include <swmodule.h>
+#include <tbdisp.h>
+#include <windows.h>
+#include <string.h>
+
+
+/******************************************************************************
+ * TBDisp Constructor - sets up an instance of TBDisp for use
+ *
+ * ENT: iwnd - window id on which control resides
+ * ictrlid - control id in which to display module text
+ */
+
+TBDisp::TBDisp(HWND iwnd, int ictrlid)
+{
+ wnd = iwnd;
+ ctrlid = ictrlid;
+}
+
+
+/******************************************************************************
+ * SWDisplay::Display - casts a module to a character pointer and displays it in
+ * an MSWindows control
+ *
+ * ENT: imodule - module to display
+ *
+ * RET: error status
+ */
+
+char TBDisp::Display(SWModule &imodule)
+{
+ char *buf, *to;
+ const char *mtext;
+
+ mtext = (const char *)imodule;
+
+ buf = new char [ strlen(mtext) + 100 ];
+
+ for (to = buf; *mtext; mtext++) {
+ if (*mtext == '\n')
+ *to++ = '\r';
+ *to++ = *mtext;
+ }
+ *to = 0;
+
+ SetDlgItemText(wnd, ctrlid, buf);
+ delete [] buf;
+ return 0;
+}
diff --git a/apps/windoze/vb/ActiveDiathekeDemo/ADDemo.frm b/apps/windoze/vb/ActiveDiathekeDemo/ADDemo.frm
new file mode 100644
index 0000000..c07b356
--- /dev/null
+++ b/apps/windoze/vb/ActiveDiathekeDemo/ADDemo.frm
@@ -0,0 +1,318 @@
+VERSION 5.00
+Object = "{723C13CC-FA83-4FCA-915A-9ECA87DF11A1}#1.0#0"; "ACTIVE~1.OCX"
+Object = "{3B7C8863-D78F-101B-B9B5-04021C009402}#1.2#0"; "RICHTX32.OCX"
+Begin VB.Form MainWindow
+ BorderStyle = 3 'Fixed Dialog
+ Caption = "ActiveDiatheke Demo"
+ ClientHeight = 7680
+ ClientLeft = 45
+ ClientTop = 330
+ ClientWidth = 10080
+ LinkTopic = "Form1"
+ MaxButton = 0 'False
+ ScaleHeight = 7680
+ ScaleWidth = 10080
+ StartUpPosition = 3 'Windows Default
+ Begin VB.CheckBox bidireorder
+ Caption = "BiDi Reorder"
+ Height = 255
+ Left = 3360
+ TabIndex = 18
+ Top = 600
+ Width = 1455
+ End
+ Begin VB.CheckBox arshape
+ Caption = "Shape Arabic"
+ Height = 255
+ Left = 1920
+ TabIndex = 17
+ Top = 600
+ Width = 1335
+ End
+ Begin VB.CheckBox script
+ Caption = "Roman Transliterate"
+ Height = 255
+ Left = 4920
+ TabIndex = 16
+ Top = 600
+ Width = 1815
+ End
+ Begin VB.CheckBox variants
+ Caption = "Variants"
+ Height = 255
+ Left = 7680
+ TabIndex = 15
+ Top = 840
+ Width = 975
+ End
+ Begin VB.CheckBox scripref
+ Caption = "Scrip. Refs."
+ Height = 255
+ Left = 8760
+ TabIndex = 14
+ Top = 840
+ Width = 1335
+ End
+ Begin VB.CheckBox gaccents
+ Caption = "Greek Accents"
+ Height = 255
+ Left = 1920
+ TabIndex = 13
+ Top = 840
+ Width = 1455
+ End
+ Begin VB.CheckBox hpoints
+ Caption = "Hebrew Vowels"
+ Height = 255
+ Left = 3360
+ TabIndex = 12
+ Top = 840
+ Width = 1455
+ End
+ Begin VB.CheckBox hcantillation
+ Caption = "Hebrew Cantillation"
+ Height = 255
+ Left = 4920
+ TabIndex = 11
+ Top = 840
+ Width = 1815
+ End
+ Begin VB.CheckBox morphology
+ Caption = "Morphology"
+ Height = 255
+ Left = 8760
+ TabIndex = 10
+ Top = 480
+ Width = 1335
+ End
+ Begin ACTIVEDIATHEKELib.ActiveDiatheke diatheke
+ Left = 0
+ Top = 6720
+ _Version = 65536
+ _ExtentX = 3625
+ _ExtentY = 1085
+ _StockProps = 0
+ book = ""
+ key = ""
+ script = "Latin"
+ strongs = -1 'True
+ footnotes = -1 'True
+ headings = -1 'True
+ morphology = -1 'True
+ greekaccents = -1 'True
+ hebrewpoints = -1 'True
+ hebrewcantillation= -1 'True
+ scripref = -1 'True
+ arshape = -1 'True
+ bidireorder = -1 'True
+ outputformat = 5
+ outputencoding = 4
+ End
+ Begin RichTextLib.RichTextBox presentation
+ DataField = "5"
+ Height = 6495
+ Left = 1800
+ TabIndex = 9
+ Top = 1200
+ Width = 8295
+ _ExtentX = 14631
+ _ExtentY = 11456
+ _Version = 393217
+ Enabled = -1 'True
+ ScrollBars = 2
+ TextRTF = $"ADDemo.frx":0000
+ End
+ Begin VB.CheckBox headings
+ Caption = "Headings"
+ Height = 255
+ Left = 7680
+ TabIndex = 8
+ Top = 480
+ Width = 1095
+ End
+ Begin VB.CheckBox footnotes
+ Caption = "Footnotes"
+ Height = 255
+ Left = 8760
+ TabIndex = 7
+ Top = 120
+ Width = 1095
+ End
+ Begin VB.CheckBox strongs
+ Caption = "Strong's"
+ Height = 255
+ Left = 7680
+ TabIndex = 6
+ Top = 120
+ Width = 975
+ End
+ Begin VB.ComboBox searchtype
+ Height = 315
+ Left = 6120
+ TabIndex = 4
+ Top = 120
+ Width = 1455
+ End
+ Begin VB.TextBox key
+ CausesValidation= 0 'False
+ Height = 375
+ Left = 2280
+ TabIndex = 1
+ Top = 120
+ Width = 2535
+ End
+ Begin VB.ListBox books
+ Height = 7665
+ Left = 0
+ TabIndex = 0
+ Top = 0
+ Width = 1815
+ End
+ Begin VB.Label Label3
+ Caption = "Search Type"
+ Height = 255
+ Left = 5040
+ TabIndex = 5
+ Top = 120
+ Width = 975
+ End
+ Begin VB.Label Label2
+ Caption = "Key"
+ Height = 255
+ Left = 1920
+ TabIndex = 3
+ Top = 120
+ Width = 375
+ End
+ Begin VB.Label Label1
+ Caption = "Label1"
+ Height = 135
+ Left = 3960
+ TabIndex = 2
+ Top = 120
+ Width = 15
+ End
+End
+Attribute VB_Name = "MainWindow"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = False
+
+Private Sub arshape_Click()
+If arshape.Value = 1 Then diatheke.arshape = True Else diatheke.arshape = False
+End Sub
+
+Private Sub bidireorder_Click()
+If bidireorder.Value = 1 Then diatheke.bidireorder = True Else diatheke.bidireorder = False
+End Sub
+
+Private Sub books_Click()
+diatheke.book = books.Text
+End Sub
+
+Private Sub diatheke_ValueChanged()
+presentation.TextRTF = diatheke.Value
+End Sub
+
+Private Sub footnotes_Click()
+If footnotes.Value = 1 Then diatheke.footnotes = True Else diatheke.footnotes = False
+End Sub
+
+Private Sub Form_Initialize()
+
+' grab the book list (just names) using book "system" and key "modulelistnames"
+diatheke.book = "system"
+diatheke.key = "modulelistnames"
+diatheke.query
+
+' split the book list by line into an array
+booklist = Split(diatheke.Value, Chr$(10), -1, vbTextCompare)
+
+' and add them each to the list control
+For Each book In booklist
+ books.AddItem (book)
+Next book
+
+diatheke.book = "KJV"
+diatheke.key = "John 1:1"
+diatheke.query
+
+' wasn't that easy :)
+
+key.Text = diatheke.key
+
+searchtype.AddItem "None", 0
+searchtype.AddItem "Regex", 1
+searchtype.AddItem "Multiword", 2
+searchtype.AddItem "Phrase", 3
+searchtype.ListIndex = diatheke.searchtype
+
+key.Text = diatheke.key
+If diatheke.strongs Then strongs.Value = 1 Else strongs.Value = 0
+If diatheke.footnotes Then footnotes.Value = 1 Else footnotes.Value = 0
+If diatheke.headings Then headings.Value = 1 Else headings.Value = 0
+If diatheke.morphology Then morphology.Value = 1 Else morphology.Value = 0
+If diatheke.scripref Then scripref.Value = 1 Else scripref.Value = 0
+If diatheke.variants Then variants.Value = 1 Else variants.Value = 0
+If diatheke.script = "Latin" Then script.Value = 1 Else script.Value = 0
+If diatheke.arshape Then arshape.Value = 1 Else arshape.Value = 0
+If diatheke.bidireorder Then bidireorder.Value = 1 Else bidireorder.Value = 0
+
+diatheke.autoupdate = True
+End Sub
+
+
+Private Sub Form_Terminate()
+diatheke.autoupdate = False
+End Sub
+
+Private Sub gaccents_Click()
+If gaccents.Value = 1 Then diatheke.gaccents = True Else diatheke.headings = False
+End Sub
+
+Private Sub hcantillation_Click()
+If hcantillation.Value = 1 Then diatheke.hcantillation = True Else diatheke.hcantillation = False
+End Sub
+
+Private Sub headings_Click()
+If headings.Value = 1 Then diatheke.headings = True Else diatheke.headings = False
+End Sub
+
+Private Sub hpoints_Click()
+If hpoints.Value = 1 Then diatheke.hpoints = True Else diatheke.hpoints = False
+End Sub
+
+Private Sub key_Change()
+diatheke.autoupdate = False
+diatheke.key = key.Text
+diatheke.autoupdate = True
+End Sub
+
+Private Sub key_KeyPress(KeyAscii As Integer)
+If KeyAscii = 13 Then diatheke.query
+End Sub
+
+Private Sub morphology_Click()
+If morphology.Value = 1 Then diatheke.morphology = True Else diatheke.morphology = False
+End Sub
+
+Private Sub scripref_Click()
+If scripref.Value = 1 Then diatheke.scripref = True Else diatheke.scripref = False
+End Sub
+
+Private Sub searchtype_Change()
+diatheke.searchtype = searchtype.ListIndex
+End Sub
+
+Private Sub strongs_Click()
+If strongs.Value = 1 Then diatheke.strongs = True Else diatheke.strongs = False
+End Sub
+
+Private Sub script_Click()
+If script.Value = 1 Then diatheke.script = "Latin" Else diatheke.script = "Off"
+End Sub
+
+Private Sub variants_Click()
+If variants.Value = 1 Then diatheke.variants = 1 Else diatheke.variants = 0
+End Sub
diff --git a/apps/windoze/vb/ActiveDiathekeDemo/ADDemo.frx b/apps/windoze/vb/ActiveDiathekeDemo/ADDemo.frx
new file mode 100644
index 0000000..8d51db9
--- /dev/null
+++ b/apps/windoze/vb/ActiveDiathekeDemo/ADDemo.frx
Binary files differ
diff --git a/apps/windoze/vb/ActiveDiathekeDemo/ADDemo.vbp b/apps/windoze/vb/ActiveDiathekeDemo/ADDemo.vbp
new file mode 100644
index 0000000..df6d702
--- /dev/null
+++ b/apps/windoze/vb/ActiveDiathekeDemo/ADDemo.vbp
@@ -0,0 +1,41 @@
+Type=Exe
+Form=ADDemo.frm
+Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\..\..\..\..\WINNT\System32\stdole2.tlb#OLE Automation
+Object={723C13CC-FA83-4FCA-915A-9ECA87DF11A1}#1.0#0; ACTIVE~1.OCX
+Object={3050F1C5-98B5-11CF-BB82-00AA00BDCE0B}#4.0#0; MSHTML.TLB
+Object={3B7C8863-D78F-101B-B9B5-04021C009402}#1.2#0; RICHTX32.OCX
+IconForm="MainWindow"
+Startup="MainWindow"
+HelpFile=""
+Title="ADDemo"
+ExeName32="ADDemo.exe"
+Command32=""
+Name="ActiveDiathekeDemo"
+HelpContextID="0"
+CompatibleMode="0"
+MajorVer=1
+MinorVer=1
+RevisionVer=0
+AutoIncrementVer=0
+ServerSupportFiles=0
+VersionComments="ActiveDiatheke demo application by Chris Little <chrislit@crosswire.org>"
+VersionCompanyName="the Chiasma"
+CompilationType=0
+OptimizationType=0
+FavorPentiumPro(tm)=-1
+CodeViewDebugInfo=0
+NoAliasing=0
+BoundsCheck=0
+OverflowCheck=0
+FlPointCheck=0
+FDIVCheck=0
+UnroundedFP=0
+StartMode=0
+Unattended=0
+Retained=0
+ThreadPerObject=0
+MaxNumberOfThreads=1
+DebugStartupOption=0
+
+[MS Transaction Server]
+AutoRefresh=1
diff --git a/apps/windoze/vb/ActiveDiathekeDemo/ADDemo.vbw b/apps/windoze/vb/ActiveDiathekeDemo/ADDemo.vbw
new file mode 100644
index 0000000..5a10421
--- /dev/null
+++ b/apps/windoze/vb/ActiveDiathekeDemo/ADDemo.vbw
@@ -0,0 +1 @@
+MainWindow = 154, 178, 687, 626, C, 7, 25, 778, 606, C
diff --git a/apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.clw b/apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.clw
new file mode 100644
index 0000000..8a16031
--- /dev/null
+++ b/apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.clw
@@ -0,0 +1,72 @@
+; CLW file contains information for the MFC ClassWizard
+
+[General Info]
+Version=1
+LastClass=CActiveDiathekePropPage
+LastTemplate=CDialog
+NewFileInclude1=#include "stdafx.h"
+NewFileInclude2=#include "ActiveDiatheke.h"
+CDK=Y
+
+ClassCount=2
+Class1=CActiveDiathekeCtrl
+Class2=CActiveDiathekePropPage
+
+ResourceCount=2
+LastPage=0
+Resource2=IDD_PROPPAGE_ACTIVEDIATHEKE
+
+[CLS:CActiveDiathekeCtrl]
+Type=0
+HeaderFile=ActiveDiathekeCtl.h
+ImplementationFile=ActiveDiathekeCtl.cpp
+Filter=W
+BaseClass=COleControl
+VirtualFilter=wWC
+
+[CLS:CActiveDiathekePropPage]
+Type=0
+HeaderFile=ActiveDiathekePpg.h
+ImplementationFile=ActiveDiathekePpg.cpp
+Filter=D
+LastObject=IDC_ARSHAPE
+BaseClass=COlePropertyPage
+VirtualFilter=idWC
+
+[DLG:IDD_PROPPAGE_ACTIVEDIATHEKE]
+Type=1
+Class=CActiveDiathekePropPage
+ControlCount=32
+Control1=IDC_STATIC,static,1342308352
+Control2=IDC_BOOK,edit,1350631552
+Control3=IDC_STATIC,static,1342308352
+Control4=IDC_KEY,edit,1350631552
+Control5=IDC_STATIC,static,1342308352
+Control6=IDC_LOCALE,edit,1350631552
+Control7=IDC_STATIC,static,1342308352
+Control8=IDC_MAXVERSES,edit,1350639746
+Control9=IDC_SPIN1,msctls_updown32,1342177334
+Control10=IDC_AUTOUPDATE,button,1342242819
+Control11=IDC_STATIC,static,1342308352
+Control12=IDV_SEARCHTYPE,combobox,1344339971
+Control13=IDC_STATIC,static,1342308352
+Control14=IDC_OUTPUTFORMAT,combobox,1344339971
+Control15=IDC_STATIC,static,1342308352
+Control16=IDC_SCRIPT,edit,1350631552
+Control17=IDC_STATIC,static,1342308352
+Control18=IDC_STRONGS,button,1342242819
+Control19=IDC_FOOTNOTES,button,1342242819
+Control20=IDC_HEADINGS,button,1342242819
+Control21=IDC_GREEKACCENTS,button,1342242819
+Control22=IDC_MORPHOLOGY,button,1342242819
+Control23=IDC_HEBREWCANTILLATION,button,1342242819
+Control24=IDC_HEBREWPOINTS,button,1342242819
+Control25=IDC_STATIC,static,1342308352
+Control26=IDC_VARIANTS,edit,1350639746
+Control27=IDC_SPIN2,msctls_updown32,1342177334
+Control28=IDC_STATIC,static,1342308352
+Control29=IDC_OUTPUTENCODING,combobox,1344339971
+Control30=IDC_SCRIPREF,button,1342242819
+Control31=IDC_ARSHAPE,button,1342242819
+Control32=IDC_BIDIREORDER,button,1342242819
+
diff --git a/apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.cpp b/apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.cpp
new file mode 100644
index 0000000..47875f1
--- /dev/null
+++ b/apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.cpp
@@ -0,0 +1,79 @@
+// ActiveDiatheke.cpp : Implementation of CActiveDiathekeApp and DLL registration.
+
+#include "stdafx.h"
+#include "ActiveDiatheke.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#undef THIS_FILE
+static char THIS_FILE[] = __FILE__;
+#endif
+
+
+CActiveDiathekeApp NEAR theApp;
+
+const GUID CDECL BASED_CODE _tlid =
+ { 0x723c13cc, 0xfa83, 0x4fca, { 0x91, 0x5a, 0x9e, 0xca, 0x87, 0xdf, 0x11, 0xa1 } };
+const WORD _wVerMajor = 1;
+const WORD _wVerMinor = 0;
+
+
+////////////////////////////////////////////////////////////////////////////
+// CActiveDiathekeApp::InitInstance - DLL initialization
+
+BOOL CActiveDiathekeApp::InitInstance()
+{
+ BOOL bInit = COleControlModule::InitInstance();
+
+ if (bInit)
+ {
+ // TODO: Add your own module initialization code here.
+ }
+
+ return bInit;
+}
+
+
+////////////////////////////////////////////////////////////////////////////
+// CActiveDiathekeApp::ExitInstance - DLL termination
+
+int CActiveDiathekeApp::ExitInstance()
+{
+ // TODO: Add your own module termination code here.
+
+ return COleControlModule::ExitInstance();
+}
+
+
+/////////////////////////////////////////////////////////////////////////////
+// DllRegisterServer - Adds entries to the system registry
+
+STDAPI DllRegisterServer(void)
+{
+ AFX_MANAGE_STATE(_afxModuleAddrThis);
+
+ if (!AfxOleRegisterTypeLib(AfxGetInstanceHandle(), _tlid))
+ return ResultFromScode(SELFREG_E_TYPELIB);
+
+ if (!COleObjectFactoryEx::UpdateRegistryAll(TRUE))
+ return ResultFromScode(SELFREG_E_CLASS);
+
+ return NOERROR;
+}
+
+
+/////////////////////////////////////////////////////////////////////////////
+// DllUnregisterServer - Removes entries from the system registry
+
+STDAPI DllUnregisterServer(void)
+{
+ AFX_MANAGE_STATE(_afxModuleAddrThis);
+
+ if (!AfxOleUnregisterTypeLib(_tlid, _wVerMajor, _wVerMinor))
+ return ResultFromScode(SELFREG_E_TYPELIB);
+
+ if (!COleObjectFactoryEx::UpdateRegistryAll(FALSE))
+ return ResultFromScode(SELFREG_E_CLASS);
+
+ return NOERROR;
+}
diff --git a/apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.def b/apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.def
new file mode 100644
index 0000000..2d5951e
--- /dev/null
+++ b/apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.def
@@ -0,0 +1,9 @@
+; ActiveDiatheke.def : Declares the module parameters.
+
+LIBRARY "ACTIVEDIATHEKE.OCX"
+
+EXPORTS
+ DllCanUnloadNow @1 PRIVATE
+ DllGetClassObject @2 PRIVATE
+ DllRegisterServer @3 PRIVATE
+ DllUnregisterServer @4 PRIVATE
diff --git a/apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.dsp b/apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.dsp
new file mode 100644
index 0000000..b46ab84
--- /dev/null
+++ b/apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.dsp
@@ -0,0 +1,1332 @@
+# Microsoft Developer Studio Project File - Name="ActiveDiatheke" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=ActiveDiatheke - Win32 Debug with ICU
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "ActiveDiatheke.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "ActiveDiatheke.mak" CFG="ActiveDiatheke - Win32 Debug with ICU"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "ActiveDiatheke - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "ActiveDiatheke - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "ActiveDiatheke - Win32 Debug with ICU" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "ActiveDiatheke - Win32 Release with ICU" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "ActiveDiatheke - Win32 Release"
+
+# PROP BASE Use_MFC 2
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Ext "ocx"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 2
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Ext "ocx"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /Yu"stdafx.h" /FD /c
+# ADD CPP /nologo /MD /w /W0 /GX /O2 /I "../../../../include" /I "../../../../src/utilfuns/win32" /D "NDEBUG" /D "_MBCS" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_USRDLL" /D "__VISUALC__" /D "REGEX_MALLOC" /FD /c
+# SUBTRACT CPP /YX /Yc /Yu
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
+# ADD RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 /nologo /subsystem:windows /dll /machine:I386
+# ADD LINK32 /nologo /subsystem:windows /dll /machine:I386
+# Begin Custom Build - Registering ActiveX Control...
+OutDir=.\Release
+TargetPath=.\Release\ActiveDiatheke.ocx
+InputPath=.\Release\ActiveDiatheke.ocx
+SOURCE="$(InputPath)"
+
+"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ regsvr32 /s /c "$(TargetPath)"
+ echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg"
+
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "ActiveDiatheke - Win32 Debug"
+
+# PROP BASE Use_MFC 2
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Ext "ocx"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 2
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Ext "ocx"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c
+# ADD CPP /nologo /MDd /w /W0 /Gm /GX /ZI /Od /I "../../../../include" /I "../../../../src/utilfuns/win32" /D "_DEBUG" /D "_MBCS" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_USRDLL" /D "__VISUALC__" /D "REGEX_MALLOC" /FD /GZ /c
+# SUBTRACT CPP /YX /Yc /Yu
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"
+# ADD RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
+# Begin Custom Build - Registering ActiveX Control...
+OutDir=.\Debug
+TargetPath=.\Debug\ActiveDiatheke.ocx
+InputPath=.\Debug\ActiveDiatheke.ocx
+SOURCE="$(InputPath)"
+
+"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ regsvr32 /s /c "$(TargetPath)"
+ echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg"
+
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "ActiveDiatheke - Win32 Debug with ICU"
+
+# PROP BASE Use_MFC 2
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "ActiveDiatheke___Win32_Debug_with_ICU"
+# PROP BASE Intermediate_Dir "ActiveDiatheke___Win32_Debug_with_ICU"
+# PROP BASE Target_Ext "ocx"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 2
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "ActiveDiatheke___Win32_Debug_with_ICU"
+# PROP Intermediate_Dir "ActiveDiatheke___Win32_Debug_with_ICU"
+# PROP Target_Ext "ocx"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MDd /w /W0 /Gm /GX /ZI /Od /I "../../../../include" /I "../../../../src/utilfuns/win32" /D "_DEBUG" /D "_MBCS" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_USRDLL" /D "__VISUALC__" /D "REGEX_MALLOC" /FD /GZ /c
+# SUBTRACT BASE CPP /YX /Yc /Yu
+# ADD CPP /nologo /MDd /w /W0 /Gm /GX /ZI /Od /I "../../../../include" /I "../../../../src/utilfuns/win32" /I "../../../../../icu-sword/include" /D "_DEBUG" /D "_MBCS" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_USRDLL" /D "__VISUALC__" /D "REGEX_MALLOC" /D "_ICU_" /FD /GZ /c
+# SUBTRACT CPP /YX /Yc /Yu
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"
+# ADD RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 icuin.lib icuuc.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept /libpath:"../../../../../icu-sword/lib"
+# Begin Custom Build - Registering ActiveX Control...
+OutDir=.\ActiveDiatheke___Win32_Debug_with_ICU
+TargetPath=.\ActiveDiatheke___Win32_Debug_with_ICU\ActiveDiatheke.ocx
+InputPath=.\ActiveDiatheke___Win32_Debug_with_ICU\ActiveDiatheke.ocx
+SOURCE="$(InputPath)"
+
+"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ regsvr32 /s /c "$(TargetPath)"
+ echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg"
+
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "ActiveDiatheke - Win32 Release with ICU"
+
+# PROP BASE Use_MFC 2
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "ActiveDiatheke___Win32_Release_with_ICU"
+# PROP BASE Intermediate_Dir "ActiveDiatheke___Win32_Release_with_ICU"
+# PROP BASE Target_Ext "ocx"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 2
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "ActiveDiatheke___Win32_Release_with_ICU"
+# PROP Intermediate_Dir "ActiveDiatheke___Win32_Release_with_ICU"
+# PROP Target_Ext "ocx"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MD /w /W0 /GX /O2 /I "../../../../include" /I "../../../../src/utilfuns/win32" /D "NDEBUG" /D "_MBCS" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_USRDLL" /D "__VISUALC__" /D "REGEX_MALLOC" /FD /c
+# SUBTRACT BASE CPP /YX /Yc /Yu
+# ADD CPP /nologo /MD /w /W0 /GX /O2 /I "../../../../include" /I "../../../../src/utilfuns/win32" /I "../../../../../icu-sword/include" /D "NDEBUG" /D "_MBCS" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_USRDLL" /D "__VISUALC__" /D "REGEX_MALLOC" /D "_ICU_" /FD /c
+# SUBTRACT CPP /YX /Yc /Yu
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
+# ADD RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 /nologo /subsystem:windows /dll /machine:I386
+# ADD LINK32 icuin.lib icuuc.lib /nologo /subsystem:windows /dll /machine:I386 /libpath:"../../../../../icu-sword/lib"
+# Begin Custom Build - Registering ActiveX Control...
+OutDir=.\ActiveDiatheke___Win32_Release_with_ICU
+TargetPath=.\ActiveDiatheke___Win32_Release_with_ICU\ActiveDiatheke.ocx
+InputPath=.\ActiveDiatheke___Win32_Release_with_ICU\ActiveDiatheke.ocx
+SOURCE="$(InputPath)"
+
+"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ regsvr32 /s /c "$(TargetPath)"
+ echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg"
+
+# End Custom Build
+
+!ENDIF
+
+# Begin Target
+
+# Name "ActiveDiatheke - Win32 Release"
+# Name "ActiveDiatheke - Win32 Debug"
+# Name "ActiveDiatheke - Win32 Debug with ICU"
+# Name "ActiveDiatheke - Win32 Release with ICU"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\ActiveDiatheke.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\ActiveDiatheke.def
+# End Source File
+# Begin Source File
+
+SOURCE=.\ActiveDiatheke.odl
+# End Source File
+# Begin Source File
+
+SOURCE=.\ActiveDiatheke.rc
+# End Source File
+# Begin Source File
+
+SOURCE=.\ActiveDiathekeCtl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\ActiveDiathekePpg.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\console\diatheke\corediatheke.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\console\diatheke\diafiltmgr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\console\diatheke\diathekemgr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\console\diatheke\gbfcgi.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\StdAfx.cpp
+# ADD CPP /Yc"stdafx.h"
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\console\diatheke\thmlcgi.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\ActiveDiatheke.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ActiveDiathekeCtl.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ActiveDiathekePpg.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\console\diatheke\corediatheke.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\console\diatheke\diafiltmgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\console\diatheke\diathekemgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\console\diatheke\gbfcgi.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Resource.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\StdAfx.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\console\diatheke\thmlcgi.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# Begin Source File
+
+SOURCE=.\ActiveDiathekeCtl.bmp
+# End Source File
+# End Group
+# Begin Group "Sword Source"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\adler32.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\cipherfil.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\compress.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\crc32.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\deflate.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\win32\dirent.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\mgr\encfiltmgr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\common\entriesblk.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\mgr\filemgr.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\gbffootnotes.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\gbfheadings.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\gbfhtml.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\gbfhtmlhref.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\gbfmorph.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\gbfplain.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\gbfrtf.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\gbfstrongs.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\gbfthml.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\Greek2Greek.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\greeklexattribs.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\gzio.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\frontend\im\hebrewmcim.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\comments\hrefcom\hrefcom.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\infblock.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\infcodes.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\inffast.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\inflate.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\inftrees.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\infutil.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\latin1utf16.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\latin1utf8.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\keys\listkey.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\mgr\localemgr.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\common\lzsscomprs.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\mgr\markupfiltmgr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\frontend\im\nullim.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\plainfootnotes.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\plainhtml.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\comments\rawcom\rawcom.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\comments\rawfiles\rawfiles.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\genbook\rawgenbook\rawgenbook.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\lexdict\rawld\rawld.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\lexdict\rawld4\rawld4.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\common\rawstr.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\common\rawstr4.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\texts\rawtext\rawtext.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\common\rawverse.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\regex.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\roman.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\rtfhtml.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\rwphtml.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\rwprtf.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\common\sapphire.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\scsuutf8.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\keys\strkey.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\swbasicfilter.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\mgr\swcacher.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\common\swcipher.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\comments\swcom.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\common\swcomprs.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\mgr\swconfig.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\frontend\swdisp.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\mgr\swfiltermgr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\genbook\swgenbook.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\frontend\im\swinputmeth.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\keys\swkey.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\lexdict\swld.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\mgr\swlocale.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\frontend\swlog.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\mgr\swmgr.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\swmodule.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\texts\swtext.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\swunicod.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\swversion.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmlfootnotes.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmlgbf.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmlheadings.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmlhtml.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmlhtmlhref.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmllemma.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmlmorph.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmlolb.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmlplain.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmlrtf.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmlscripref.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmlstrongs.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmlvariants.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\keys\treekey.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\keys\treekeyidx.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\trees.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\uncompr.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\unicodertf.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\untgz.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\utf16utf8.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\utf8arshaping.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\utf8bidireorder.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\utf8cantillation.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\utf8greekaccents.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\utf8hebrewpoints.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\utf8html.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\utf8latin1.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\utf8nfc.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\utf8nfkd.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\utf8transliterator.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\utf8utf16.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\utilconf.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\utilstr.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\keys\versekey.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\comments\zcom\zcom.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\common\zipcomprs.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\lexdict\zld\zld.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\common\zstr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\texts\ztext\ztext.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\zutil.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\common\zverse.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# End Group
+# Begin Group "Sword Headers"
+
+# PROP Default_Filter "h"
+# Begin Source File
+
+SOURCE=..\..\..\..\include\canon.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\cipherfil.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\defs.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\echomod.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\encfiltmgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\entriesblk.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\femain.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\filemgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\flatapi.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\gbffootnotes.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\gbfheadings.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\gbfhtml.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\gbfhtmlhref.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\gbfmorph.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\gbfplain.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\gbfrtf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\gbfstrongs.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\gbfthml.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\Greek2Greek.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\GreekChars.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\hebrewmcim.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\hrefcom.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\latin1utf16.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\latin1utf8.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\listkey.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\localemgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\lzsscomprs.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\markupfiltmgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\nullim.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\plainfootnotes.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\plainhtml.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rawcom.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rawfiles.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rawgbf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rawgenbook.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rawld.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rawld4.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rawstr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rawstr4.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rawtext.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rawverse.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\regex.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\roman.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rtfhtml.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rwphtml.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rwprtf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\sapphire.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\scsuutf8.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\strkey.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swbasicfilter.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swcacher.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swcipher.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swcom.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swcomprs.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swconfig.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swdisp.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swdisprtf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swdisprtfchap.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swfilter.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swfiltermgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swgenbook.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swinputmeth.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swkey.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swld.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swlocale.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swlog.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swmacs.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swmgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swmodule.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swobject.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swtext.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swunicod.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swversion.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swwinlog.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\sysdata.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\tbdisp.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmlfootnotes.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmlgbf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmlheadings.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmlhtml.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmlhtmlhref.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmllemma.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmlmorph.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmlolb.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmlplain.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmlrtf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmlscripref.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmlstrongs.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmlvariants.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\treekey.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\treekeyidx.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\unicodertf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\unixstr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\untgz.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utf16utf8.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utf8arshaping.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utf8bidireorder.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utf8cantillation.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utf8greekaccents.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utf8hebrewpoints.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utf8html.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utf8latin1.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utf8nfc.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utf8nfkd.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utf8transliterator.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utf8utf16.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utilconf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utilfuns.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utilstr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\versekey.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\zcom.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\zconf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\zipcomprs.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\zld.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\zlib.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\zstr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\ztext.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\zverse.h
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=.\ReadMe.txt
+# End Source File
+# End Target
+# End Project
diff --git a/apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.dsw b/apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.dsw
new file mode 100644
index 0000000..09b43e8
--- /dev/null
+++ b/apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.dsw
@@ -0,0 +1,29 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "ActiveDiatheke"=.\ActiveDiatheke.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.h b/apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.h
new file mode 100644
index 0000000..4aac543
--- /dev/null
+++ b/apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.h
@@ -0,0 +1,33 @@
+#if !defined(AFX_ACTIVEDIATHEKE_H__38346B57_C15C_48C4_95B9_BEE4F2C3EF26__INCLUDED_)
+#define AFX_ACTIVEDIATHEKE_H__38346B57_C15C_48C4_95B9_BEE4F2C3EF26__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+// ActiveDiatheke.h : main header file for ACTIVEDIATHEKE.DLL
+
+#if !defined( __AFXCTL_H__ )
+ #error include 'afxctl.h' before including this file
+#endif
+
+#include "resource.h" // main symbols
+
+/////////////////////////////////////////////////////////////////////////////
+// CActiveDiathekeApp : See ActiveDiatheke.cpp for implementation.
+
+class CActiveDiathekeApp : public COleControlModule
+{
+public:
+ BOOL InitInstance();
+ int ExitInstance();
+};
+
+extern const GUID CDECL _tlid;
+extern const WORD _wVerMajor;
+extern const WORD _wVerMinor;
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
+
+#endif // !defined(AFX_ACTIVEDIATHEKE_H__38346B57_C15C_48C4_95B9_BEE4F2C3EF26__INCLUDED)
diff --git a/apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.odl b/apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.odl
new file mode 100644
index 0000000..03a3c11
--- /dev/null
+++ b/apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.odl
@@ -0,0 +1,90 @@
+// ActiveDiatheke.odl : type library source for ActiveX Control project.
+
+// This file will be processed by the Make Type Library (mktyplib) tool to
+// produce the type library (ActiveDiatheke.tlb) that will become a resource in
+// ActiveDiatheke.ocx.
+
+#include <olectl.h>
+#include <idispids.h>
+
+[ uuid(723C13CC-FA83-4FCA-915A-9ECA87DF11A1), version(1.0),
+ helpfile("ActiveDiatheke.hlp"),
+ helpstring("ActiveDiatheke ActiveX Control module"),
+ control ]
+library ACTIVEDIATHEKELib
+{
+ importlib(STDOLE_TLB);
+ importlib(STDTYPE_TLB);
+
+ // Primary dispatch interface for CActiveDiathekeCtrl
+
+ [ uuid(7445174B-2EF2-42FE-ACA5-FAEA52C3377E),
+ helpstring("Dispatch interface for ActiveDiatheke Control"), hidden ]
+ dispinterface _DActiveDiatheke
+ {
+ properties:
+ // NOTE - ClassWizard will maintain property information here.
+ // Use extreme caution when editing this section.
+ //{{AFX_ODL_PROP(CActiveDiathekeCtrl)
+ [id(1)] long maxverses;
+ [id(2)] short outputformat;
+ [id(3)] short searchtype;
+ [id(4)] BSTR book;
+ [id(5)] BSTR locale;
+ [id(6)] BSTR key;
+ [id(7)] BSTR value;
+ [id(8)] boolean autoupdate;
+ [id(9)] boolean strongs;
+ [id(10)] boolean footnotes;
+ [id(11)] boolean headings;
+ [id(12)] boolean morphology;
+ [id(13)] boolean gaccents;
+ [id(14)] boolean hpoints;
+ [id(15)] boolean hcantillation;
+ [id(16)] BSTR script;
+ [id(17)] short variants;
+ [id(18)] boolean scripref;
+ [id(19)] boolean arshape;
+ [id(20)] boolean bidireorder;
+ [id(21)] short outputencoding;
+ //}}AFX_ODL_PROP
+
+ methods:
+ // NOTE - ClassWizard will maintain method information here.
+ // Use extreme caution when editing this section.
+ //{{AFX_ODL_METHOD(CActiveDiathekeCtrl)
+ [id(22)] long query();
+ //}}AFX_ODL_METHOD
+ };
+
+ // Event dispatch interface for CActiveDiathekeCtrl
+
+ [ uuid(8683C608-3E0C-4C2F-A727-9BAE7A68189F),
+ helpstring("Event interface for ActiveDiatheke Control") ]
+ dispinterface _DActiveDiathekeEvents
+ {
+ properties:
+ // Event interface has no properties
+
+ methods:
+ // NOTE - ClassWizard will maintain event information here.
+ // Use extreme caution when editing this section.
+ //{{AFX_ODL_EVENT(CActiveDiathekeCtrl)
+ [id(1)] void ValueChanged();
+ //}}AFX_ODL_EVENT
+ };
+
+ // Class information for CActiveDiathekeCtrl
+
+ [ uuid(6BAD30CD-3506-42CF-B54C-E47F19260393),
+ helpstring("ActiveDiatheke Control"), control ]
+ coclass ActiveDiatheke
+ {
+ [default] dispinterface _DActiveDiatheke;
+ [default, source] dispinterface _DActiveDiathekeEvents;
+ };
+
+
+ //{{AFX_APPEND_ODL}}
+ //}}AFX_APPEND_ODL}}
+};
diff --git a/apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.rc b/apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.rc
new file mode 100644
index 0000000..9a66f9c
--- /dev/null
+++ b/apps/windoze/vc/ActiveDiatheke/ActiveDiatheke.rc
@@ -0,0 +1,262 @@
+//Microsoft Developer Studio generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "1 TYPELIB ""ActiveDiatheke.tlb""\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+#ifndef _MAC
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,0,0,1
+ PRODUCTVERSION 1,0,0,1
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "Comments", "\0"
+ VALUE "CompanyName", "CrossWire Bible Society\0"
+ VALUE "FileDescription", "ActiveDiatheke ActiveX Control Module\0"
+ VALUE "FileVersion", "1, 5, 3, 1\0"
+ VALUE "InternalName", "ActiveDiatheke\0"
+ VALUE "LegalCopyright", "Copyright (C) 2001-2002\0"
+ VALUE "LegalTrademarks", "\0"
+ VALUE "OLESelfRegister", "\0"
+ VALUE "OriginalFilename", "ActiveDiatheke.OCX\0"
+ VALUE "PrivateBuild", "\0"
+ VALUE "ProductName", "ActiveDiatheke ActiveX Control Module\0"
+ VALUE "ProductVersion", "1, 5, 3, 1\0"
+ VALUE "SpecialBuild", "\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
+#endif // !_MAC
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Bitmap
+//
+
+IDB_ACTIVEDIATHEKE BITMAP DISCARDABLE "ActiveDiathekeCtl.bmp"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_PROPPAGE_ACTIVEDIATHEKE DIALOG DISCARDABLE 0, 0, 250, 110
+STYLE WS_CHILD
+FONT 8, "MS Sans Serif"
+BEGIN
+ LTEXT "Book",IDC_STATIC,27,12,18,8
+ EDITTEXT IDC_BOOK,49,6,54,14,ES_AUTOHSCROLL
+ LTEXT "Key",IDC_STATIC,32,26,13,8
+ EDITTEXT IDC_KEY,49,20,54,14,ES_AUTOHSCROLL
+ LTEXT "Locale",IDC_STATIC,23,40,22,8
+ EDITTEXT IDC_LOCALE,49,34,54,14,ES_AUTOHSCROLL
+ LTEXT "Max Verses",IDC_STATIC,7,69,38,8
+ EDITTEXT IDC_MAXVERSES,49,63,54,14,ES_RIGHT | ES_AUTOHSCROLL |
+ ES_NUMBER
+ CONTROL "Spin1",IDC_SPIN1,"msctls_updown32",UDS_SETBUDDYINT |
+ UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,92,63,11,
+ 14
+ CONTROL "Autoupdate",IDC_AUTOUPDATE,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,49,93,53,10
+ LTEXT "Search Type",IDC_STATIC,118,9,42,8
+ COMBOBOX IDV_SEARCHTYPE,168,6,75,49,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ LTEXT "Output Format",IDC_STATIC,114,25,46,8
+ COMBOBOX IDC_OUTPUTFORMAT,168,20,75,60,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP
+ LTEXT "Output Script",IDC_STATIC,3,54,42,8
+ EDITTEXT IDC_SCRIPT,49,48,54,14,ES_AUTOHSCROLL
+ LTEXT "Option Filters:",IDC_STATIC,112,49,44,8
+ CONTROL "Strong's Numbers",IDC_STRONGS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,171,58,71,10
+ CONTROL "Footnotes",IDC_FOOTNOTES,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,112,67,47,10
+ CONTROL "Section Headings",IDC_HEADINGS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,171,67,72,10
+ CONTROL "Gk. Accents",IDC_GREEKACCENTS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,112,76,57,10
+ CONTROL "Morphology",IDC_MORPHOLOGY,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,171,76,72,10
+ CONTROL "Heb. Cantil.",IDC_HEBREWCANTILLATION,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,112,85,57,10
+ CONTROL "Heb. Vowels",IDC_HEBREWPOINTS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,171,85,72,10
+ LTEXT "Variants",IDC_STATIC,19,84,26,8
+ EDITTEXT IDC_VARIANTS,49,78,54,14,ES_RIGHT | ES_AUTOHSCROLL |
+ ES_NUMBER
+ CONTROL "Spin1",IDC_SPIN2,"msctls_updown32",UDS_SETBUDDYINT |
+ UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,92,78,11,
+ 14
+ LTEXT "Output Encoding",IDC_STATIC,106,39,54,8
+ COMBOBOX IDC_OUTPUTENCODING,168,34,75,60,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP
+ CONTROL "Scrip. Refs.",IDC_SCRIPREF,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,112,58,53,10
+ CONTROL "Arabic Shape",IDC_ARSHAPE,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,112,94,57,10
+ CONTROL "BiDi Reorder",IDC_BIDIREORDER,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,171,94,72,10
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO DISCARDABLE
+BEGIN
+ IDD_PROPPAGE_ACTIVEDIATHEKE, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 243
+ TOPMARGIN, 6
+ BOTTOMMARGIN, 103
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog Info
+//
+
+IDD_PROPPAGE_ACTIVEDIATHEKE DLGINIT
+BEGIN
+ IDV_SEARCHTYPE, 0x403, 5, 0
+0x6f4e, 0x656e, "\000"
+ IDV_SEARCHTYPE, 0x403, 6, 0
+0x6552, 0x6567, 0x0078,
+ IDV_SEARCHTYPE, 0x403, 10, 0
+0x754d, 0x746c, 0x7769, 0x726f, 0x0064,
+ IDV_SEARCHTYPE, 0x403, 7, 0
+0x6850, 0x6172, 0x6573, "\000"
+ IDC_OUTPUTFORMAT, 0x403, 10, 0
+0x6c50, 0x6961, 0x746e, 0x7865, 0x0074,
+ IDC_OUTPUTFORMAT, 0x403, 5, 0
+0x6854, 0x4c4d, "\000"
+ IDC_OUTPUTFORMAT, 0x403, 4, 0
+0x4247, 0x0046,
+ IDC_OUTPUTFORMAT, 0x403, 5, 0
+0x5448, 0x4c4d, "\000"
+ IDC_OUTPUTFORMAT, 0x403, 9, 0
+0x5448, 0x4c4d, 0x5248, 0x4645, "\000"
+ IDC_OUTPUTFORMAT, 0x403, 4, 0
+0x5452, 0x0046,
+ IDC_OUTPUTFORMAT, 0x403, 5, 0
+0x534f, 0x5349, "\000"
+ IDC_OUTPUTENCODING, 0x403, 8, 0
+0x614c, 0x6974, 0x2d6e, 0x0031,
+ IDC_OUTPUTENCODING, 0x403, 6, 0
+0x5455, 0x2d46, 0x0038,
+ IDC_OUTPUTENCODING, 0x403, 5, 0
+0x4353, 0x5553, "\000"
+ IDC_OUTPUTENCODING, 0x403, 7, 0
+0x5455, 0x2d46, 0x3631, "\000"
+ IDC_OUTPUTENCODING, 0x403, 4, 0
+0x5452, 0x0046,
+ IDC_OUTPUTENCODING, 0x403, 5, 0
+0x5448, 0x4c4d, "\000"
+ 0
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_ACTIVEDIATHEKE "ActiveDiatheke Control"
+ IDS_ACTIVEDIATHEKE_PPG "ActiveDiatheke Property Page"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_ACTIVEDIATHEKE_PPG_CAPTION "General"
+END
+
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+1 TYPELIB "ActiveDiatheke.tlb"
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/apps/windoze/vc/ActiveDiatheke/ActiveDiathekeCtl.bmp b/apps/windoze/vc/ActiveDiatheke/ActiveDiathekeCtl.bmp
new file mode 100644
index 0000000..3ffeb05
--- /dev/null
+++ b/apps/windoze/vc/ActiveDiatheke/ActiveDiathekeCtl.bmp
Binary files differ
diff --git a/apps/windoze/vc/ActiveDiatheke/ActiveDiathekeCtl.cpp b/apps/windoze/vc/ActiveDiatheke/ActiveDiathekeCtl.cpp
new file mode 100644
index 0000000..363c8b1
--- /dev/null
+++ b/apps/windoze/vc/ActiveDiatheke/ActiveDiathekeCtl.cpp
@@ -0,0 +1,388 @@
+// ActiveDiathekeCtl.cpp : Implementation of the CActiveDiathekeCtrl ActiveX Control class.
+
+#include "stdafx.h"
+#include "ActiveDiatheke.h"
+#include "ActiveDiathekeCtl.h"
+#include "ActiveDiathekePpg.h"
+#include "../../../console/diatheke/corediatheke.h"
+#include <strstream>
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#undef THIS_FILE
+static char THIS_FILE[] = __FILE__;
+#endif
+
+
+IMPLEMENT_DYNCREATE(CActiveDiathekeCtrl, COleControl)
+
+
+/////////////////////////////////////////////////////////////////////////////
+// Message map
+
+BEGIN_MESSAGE_MAP(CActiveDiathekeCtrl, COleControl)
+ //{{AFX_MSG_MAP(CActiveDiathekeCtrl)
+ // NOTE - ClassWizard will add and remove message map entries
+ // DO NOT EDIT what you see in these blocks of generated code !
+ //}}AFX_MSG_MAP
+ ON_OLEVERB(AFX_IDS_VERB_EDIT, OnEdit)
+ ON_OLEVERB(AFX_IDS_VERB_PROPERTIES, OnProperties)
+END_MESSAGE_MAP()
+
+
+/////////////////////////////////////////////////////////////////////////////
+// Dispatch map
+
+BEGIN_DISPATCH_MAP(CActiveDiathekeCtrl, COleControl)
+ //{{AFX_DISPATCH_MAP(CActiveDiathekeCtrl)
+ DISP_PROPERTY_NOTIFY(CActiveDiathekeCtrl, "maxverses", m_maxverses, OnMaxversesChanged, VT_I4)
+ DISP_PROPERTY_NOTIFY(CActiveDiathekeCtrl, "outputformat", m_outputformat, OnOutputformatChanged, VT_I2)
+ DISP_PROPERTY_NOTIFY(CActiveDiathekeCtrl, "searchtype", m_searchtype, OnSearchtypeChanged, VT_I2)
+ DISP_PROPERTY_NOTIFY(CActiveDiathekeCtrl, "book", m_book, OnBookChanged, VT_BSTR)
+ DISP_PROPERTY_NOTIFY(CActiveDiathekeCtrl, "locale", m_locale, OnLocaleChanged, VT_BSTR)
+ DISP_PROPERTY_NOTIFY(CActiveDiathekeCtrl, "key", m_key, OnKeyChanged, VT_BSTR)
+ DISP_PROPERTY_NOTIFY(CActiveDiathekeCtrl, "value", m_value, OnValueChanged, VT_BSTR)
+ DISP_PROPERTY_NOTIFY(CActiveDiathekeCtrl, "autoupdate", m_autoupdate, OnAutoupdateChanged, VT_BOOL)
+ DISP_PROPERTY_NOTIFY(CActiveDiathekeCtrl, "strongs", m_strongs, OnStrongsChanged, VT_BOOL)
+ DISP_PROPERTY_NOTIFY(CActiveDiathekeCtrl, "footnotes", m_footnotes, OnFootnotesChanged, VT_BOOL)
+ DISP_PROPERTY_NOTIFY(CActiveDiathekeCtrl, "headings", m_headings, OnHeadingsChanged, VT_BOOL)
+ DISP_PROPERTY_NOTIFY(CActiveDiathekeCtrl, "morphology", m_morphology, OnMorphologyChanged, VT_BOOL)
+ DISP_PROPERTY_NOTIFY(CActiveDiathekeCtrl, "greekaccents", m_gaccents, OnGaccentsChanged, VT_BOOL)
+ DISP_PROPERTY_NOTIFY(CActiveDiathekeCtrl, "hebrewpoints", m_hpoints, OnHpointsChanged, VT_BOOL)
+ DISP_PROPERTY_NOTIFY(CActiveDiathekeCtrl, "hebrewcantillation", m_hcantillation, OnHcantillationChanged, VT_BOOL)
+ DISP_PROPERTY_NOTIFY(CActiveDiathekeCtrl, "script", m_script, OnScriptChanged, VT_BSTR)
+ DISP_PROPERTY_NOTIFY(CActiveDiathekeCtrl, "variants", m_variants, OnVariantsChanged, VT_I2)
+ DISP_PROPERTY_NOTIFY(CActiveDiathekeCtrl, "scripref", m_scripref, OnScriprefChanged, VT_BOOL)
+ DISP_PROPERTY_NOTIFY(CActiveDiathekeCtrl, "arshape", m_arshape, OnArshapeChanged, VT_BOOL)
+ DISP_PROPERTY_NOTIFY(CActiveDiathekeCtrl, "bidireorder", m_bidireorder, OnBidireorderChanged, VT_BOOL)
+ DISP_PROPERTY_NOTIFY(CActiveDiathekeCtrl, "outputencoding", m_outputencoding, OnOutputencodingChanged, VT_I2)
+ DISP_FUNCTION(CActiveDiathekeCtrl, "query", query, VT_I4, VTS_NONE)
+ //}}AFX_DISPATCH_MAP
+END_DISPATCH_MAP()
+
+
+/////////////////////////////////////////////////////////////////////////////
+// Event map
+
+BEGIN_EVENT_MAP(CActiveDiathekeCtrl, COleControl)
+ //{{AFX_EVENT_MAP(CActiveDiathekeCtrl)
+ EVENT_CUSTOM("ValueChanged", FireValueChanged, VTS_NONE)
+ //}}AFX_EVENT_MAP
+END_EVENT_MAP()
+
+
+/////////////////////////////////////////////////////////////////////////////
+// Property pages
+
+// TODO: Add more property pages as needed. Remember to increase the count!
+BEGIN_PROPPAGEIDS(CActiveDiathekeCtrl, 1)
+ PROPPAGEID(CActiveDiathekePropPage::guid)
+END_PROPPAGEIDS(CActiveDiathekeCtrl)
+
+
+/////////////////////////////////////////////////////////////////////////////
+// Initialize class factory and guid
+
+IMPLEMENT_OLECREATE_EX(CActiveDiathekeCtrl, "ACTIVEDIATHEKE.ActiveDiathekeCtrl.1",
+ 0x6bad30cd, 0x3506, 0x42cf, 0xb5, 0x4c, 0xe4, 0x7f, 0x19, 0x26, 0x3, 0x93)
+
+
+/////////////////////////////////////////////////////////////////////////////
+// Type library ID and version
+
+IMPLEMENT_OLETYPELIB(CActiveDiathekeCtrl, _tlid, _wVerMajor, _wVerMinor)
+
+
+/////////////////////////////////////////////////////////////////////////////
+// Interface IDs
+
+const IID BASED_CODE IID_DActiveDiatheke =
+ { 0x7445174b, 0x2ef2, 0x42fe, { 0xac, 0xa5, 0xfa, 0xea, 0x52, 0xc3, 0x37, 0x7e } };
+const IID BASED_CODE IID_DActiveDiathekeEvents =
+ { 0x8683c608, 0x3e0c, 0x4c2f, { 0xa7, 0x27, 0x9b, 0xae, 0x7a, 0x68, 0x18, 0x9f } };
+
+
+/////////////////////////////////////////////////////////////////////////////
+// Control type information
+
+static const DWORD BASED_CODE _dwActiveDiathekeOleMisc =
+ OLEMISC_INVISIBLEATRUNTIME |
+ OLEMISC_ACTIVATEWHENVISIBLE |
+ OLEMISC_SETCLIENTSITEFIRST |
+ OLEMISC_INSIDEOUT |
+ OLEMISC_CANTLINKINSIDE |
+ OLEMISC_RECOMPOSEONRESIZE;
+
+IMPLEMENT_OLECTLTYPE(CActiveDiathekeCtrl, IDS_ACTIVEDIATHEKE, _dwActiveDiathekeOleMisc)
+
+
+/////////////////////////////////////////////////////////////////////////////
+// CActiveDiathekeCtrl::CActiveDiathekeCtrlFactory::UpdateRegistry -
+// Adds or removes system registry entries for CActiveDiathekeCtrl
+
+BOOL CActiveDiathekeCtrl::CActiveDiathekeCtrlFactory::UpdateRegistry(BOOL bRegister)
+{
+ // TODO: Verify that your control follows apartment-model threading rules.
+ // Refer to MFC TechNote 64 for more information.
+ // If your control does not conform to the apartment-model rules, then
+ // you must modify the code below, changing the 6th parameter from
+ // afxRegInsertable | afxRegApartmentThreading to afxRegInsertable.
+
+ if (bRegister)
+ return AfxOleRegisterControlClass(
+ AfxGetInstanceHandle(),
+ m_clsid,
+ m_lpszProgID,
+ IDS_ACTIVEDIATHEKE,
+ IDB_ACTIVEDIATHEKE,
+ afxRegInsertable | afxRegApartmentThreading,
+ _dwActiveDiathekeOleMisc,
+ _tlid,
+ _wVerMajor,
+ _wVerMinor);
+ else
+ return AfxOleUnregisterClass(m_clsid, m_lpszProgID);
+}
+
+
+/////////////////////////////////////////////////////////////////////////////
+// CActiveDiathekeCtrl::CActiveDiathekeCtrl - Constructor
+
+CActiveDiathekeCtrl::CActiveDiathekeCtrl()
+{
+ InitializeIIDs(&IID_DActiveDiatheke, &IID_DActiveDiathekeEvents);
+ query();
+}
+
+
+/////////////////////////////////////////////////////////////////////////////
+// CActiveDiathekeCtrl::~CActiveDiathekeCtrl - Destructor
+
+CActiveDiathekeCtrl::~CActiveDiathekeCtrl()
+{
+ // TODO: Cleanup your control's instance data here.
+}
+
+
+/////////////////////////////////////////////////////////////////////////////
+// CActiveDiathekeCtrl::OnDraw - Drawing function
+
+void CActiveDiathekeCtrl::OnDraw(
+ CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
+{
+ // TODO: Replace the following code with your own drawing code.
+ pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
+ pdc->ExtTextOut(0, 0, ETO_CLIPPED, rcBounds, "The SWORD Project", NULL);
+ pdc->ExtTextOut(0, 20, ETO_CLIPPED, rcBounds, "ActiveDiatheke", NULL);
+}
+
+
+/////////////////////////////////////////////////////////////////////////////
+// CActiveDiathekeCtrl::DoPropExchange - Persistence support
+
+void CActiveDiathekeCtrl::DoPropExchange(CPropExchange* pPX)
+{
+ ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor));
+ COleControl::DoPropExchange(pPX);
+
+ PX_String(pPX, _T("book"), m_book, "KJV");
+ PX_String(pPX, _T("key"), m_key, "John 3:16");
+ PX_String(pPX, _T("locale"), m_locale, "en");
+ PX_String(pPX, _T("script"), m_script, "Off");
+
+ PX_Bool(pPX, _T("autoupdate"), m_autoupdate, FALSE);
+
+ PX_Bool(pPX, _T("strongs"), m_strongs, FALSE);
+ PX_Bool(pPX, _T("footnotes"), m_footnotes, FALSE);
+ PX_Bool(pPX, _T("headings"), m_headings, FALSE);
+ PX_Bool(pPX, _T("morphology"), m_morphology, FALSE);
+ PX_Bool(pPX, _T("greekaccents"), m_gaccents, FALSE);
+ PX_Bool(pPX, _T("hebrewpoints"), m_hpoints, FALSE);
+ PX_Bool(pPX, _T("hebrewcantillation"), m_hcantillation, FALSE);
+ PX_Bool(pPX, _T("scripref"), m_scripref, FALSE);
+ PX_Bool(pPX, _T("arshape"), m_arshape, FALSE);
+ PX_Bool(pPX, _T("bidireorder"), m_bidireorder, FALSE);
+
+ PX_Long(pPX, _T("maxverses"), m_maxverses, -1);
+
+ PX_Short(pPX, _T("variants"), m_variants, 0);
+ PX_Short(pPX, _T("outputformat"), m_outputformat, FMT_PLAIN);
+ PX_Short(pPX, _T("outputencoding"), m_outputencoding, ENC_UTF8);
+ PX_Short(pPX, _T("searchtype"), m_searchtype, ST_NONE);
+}
+
+
+/////////////////////////////////////////////////////////////////////////////
+// CActiveDiathekeCtrl::OnResetState - Reset control to default state
+
+void CActiveDiathekeCtrl::OnResetState()
+{
+ COleControl::OnResetState(); // Resets defaults found in DoPropExchange
+
+ // TODO: Reset any other control state here.
+}
+
+
+/////////////////////////////////////////////////////////////////////////////
+// CActiveDiathekeCtrl message handlers
+
+void CActiveDiathekeCtrl::OnMaxversesChanged()
+{
+ if (m_autoupdate)
+ query();
+ SetModifiedFlag();
+}
+
+void CActiveDiathekeCtrl::OnOutputformatChanged()
+{
+ if (m_autoupdate)
+ query();
+ SetModifiedFlag();
+}
+
+void CActiveDiathekeCtrl::OnSearchtypeChanged()
+{
+ if (m_autoupdate)
+ query();
+ SetModifiedFlag();
+}
+
+void CActiveDiathekeCtrl::OnBookChanged()
+{
+ if (m_autoupdate)
+ query();
+ SetModifiedFlag();
+}
+
+void CActiveDiathekeCtrl::OnLocaleChanged()
+{
+ if (m_autoupdate)
+ query();
+ SetModifiedFlag();
+}
+
+void CActiveDiathekeCtrl::OnKeyChanged()
+{
+ if (m_autoupdate)
+ query();
+ SetModifiedFlag();
+}
+
+long CActiveDiathekeCtrl::query()
+{
+ ostrstream output;
+ unsigned char opt = (m_strongs ? OP_STRONGS : 0) + (m_footnotes ? OP_FOOTNOTES : 0) + (m_headings ? OP_HEADINGS : 0) + (m_morphology ? OP_MORPH : 0) + (m_gaccents ? OP_GREEKACCENTS : 0) + (m_hpoints ? OP_HEBREWPOINTS : 0) + (m_hcantillation ? OP_CANTILLATION : 0) + (!m_script.IsEmpty() ? OP_TRANSLITERATOR : 0) + (m_variants ? OP_VARIANTS : 0) + (m_scripref ? OP_SCRIPREF : 0) + (m_arshape ? OP_ARSHAPE : 0) + (m_bidireorder ? OP_BIDI : 0);
+ doquery(m_maxverses, m_outputformat + 1, m_outputencoding + 1, opt, m_searchtype, (LPCTSTR)m_book, (LPCTSTR)m_locale, (LPCTSTR)m_key, &output, (LPCTSTR)m_script, m_variants);
+ output << '\0';
+ char* versevalue = output.str();
+ if (versevalue) {
+ m_value = versevalue;
+ delete versevalue;
+ FireValueChanged();
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void CActiveDiathekeCtrl::OnValueChanged()
+{
+ if (m_autoupdate)
+ query();
+ SetModifiedFlag();
+}
+
+void CActiveDiathekeCtrl::OnAutoupdateChanged()
+{
+ SetModifiedFlag();
+}
+
+void CActiveDiathekeCtrl::OnStrongsChanged()
+{
+ if (m_autoupdate)
+ query();
+ SetModifiedFlag();
+}
+
+void CActiveDiathekeCtrl::OnFootnotesChanged()
+{
+ if (m_autoupdate)
+ query();
+ SetModifiedFlag();
+}
+
+void CActiveDiathekeCtrl::OnHeadingsChanged()
+{
+ if (m_autoupdate)
+ query();
+ SetModifiedFlag();
+}
+
+void CActiveDiathekeCtrl::OnMorphologyChanged()
+{
+ if (m_autoupdate)
+ query();
+ SetModifiedFlag();
+}
+
+void CActiveDiathekeCtrl::OnGaccentsChanged()
+{
+ if (m_autoupdate)
+ query();
+ SetModifiedFlag();
+}
+
+void CActiveDiathekeCtrl::OnHpointsChanged()
+{
+ if (m_autoupdate)
+ query();
+ SetModifiedFlag();
+}
+
+void CActiveDiathekeCtrl::OnHcantillationChanged()
+{
+ if (m_autoupdate)
+ query();
+ SetModifiedFlag();
+}
+
+void CActiveDiathekeCtrl::OnScriptChanged()
+{
+ if (m_autoupdate)
+ query();
+ SetModifiedFlag();
+}
+
+void CActiveDiathekeCtrl::OnVariantsChanged()
+{
+ if (m_autoupdate)
+ query();
+ SetModifiedFlag();
+}
+
+void CActiveDiathekeCtrl::OnScriprefChanged()
+{
+ if (m_autoupdate)
+ query();
+ SetModifiedFlag();
+}
+
+void CActiveDiathekeCtrl::OnArshapeChanged()
+{
+ if (m_autoupdate)
+ query();
+ SetModifiedFlag();
+}
+
+void CActiveDiathekeCtrl::OnBidireorderChanged()
+{
+ if (m_autoupdate)
+ query();
+ SetModifiedFlag();
+}
+
+void CActiveDiathekeCtrl::OnOutputencodingChanged()
+{
+ if (m_autoupdate)
+ query();
+ SetModifiedFlag();
+}
diff --git a/apps/windoze/vc/ActiveDiatheke/ActiveDiathekeCtl.h b/apps/windoze/vc/ActiveDiatheke/ActiveDiathekeCtl.h
new file mode 100644
index 0000000..eefe14f
--- /dev/null
+++ b/apps/windoze/vc/ActiveDiatheke/ActiveDiathekeCtl.h
@@ -0,0 +1,137 @@
+#if !defined(AFX_ACTIVEDIATHEKECTL_H__10F16FE7_A96E_4D91_94BD_CFB96F27772D__INCLUDED_)
+#define AFX_ACTIVEDIATHEKECTL_H__10F16FE7_A96E_4D91_94BD_CFB96F27772D__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+// ActiveDiathekeCtl.h : Declaration of the CActiveDiathekeCtrl ActiveX Control class.
+
+/////////////////////////////////////////////////////////////////////////////
+// CActiveDiathekeCtrl : See ActiveDiathekeCtl.cpp for implementation.
+
+class CActiveDiathekeCtrl : public COleControl
+{
+ DECLARE_DYNCREATE(CActiveDiathekeCtrl)
+
+// Constructor
+public:
+ CActiveDiathekeCtrl();
+
+// Overrides
+ // ClassWizard generated virtual function overrides
+ //{{AFX_VIRTUAL(CActiveDiathekeCtrl)
+ public:
+ virtual void OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid);
+ virtual void DoPropExchange(CPropExchange* pPX);
+ virtual void OnResetState();
+ //}}AFX_VIRTUAL
+
+// Implementation
+protected:
+ ~CActiveDiathekeCtrl();
+
+ DECLARE_OLECREATE_EX(CActiveDiathekeCtrl) // Class factory and guid
+ DECLARE_OLETYPELIB(CActiveDiathekeCtrl) // GetTypeInfo
+ DECLARE_PROPPAGEIDS(CActiveDiathekeCtrl) // Property page IDs
+ DECLARE_OLECTLTYPE(CActiveDiathekeCtrl) // Type name and misc status
+
+// Message maps
+ //{{AFX_MSG(CActiveDiathekeCtrl)
+ // NOTE - ClassWizard will add and remove member functions here.
+ // DO NOT EDIT what you see in these blocks of generated code !
+ //}}AFX_MSG
+ DECLARE_MESSAGE_MAP()
+
+// Dispatch maps
+ //{{AFX_DISPATCH(CActiveDiathekeCtrl)
+ long m_maxverses;
+ afx_msg void OnMaxversesChanged();
+ short m_outputformat;
+ afx_msg void OnOutputformatChanged();
+ short m_searchtype;
+ afx_msg void OnSearchtypeChanged();
+ CString m_book;
+ afx_msg void OnBookChanged();
+ CString m_locale;
+ afx_msg void OnLocaleChanged();
+ CString m_key;
+ afx_msg void OnKeyChanged();
+ CString m_value;
+ afx_msg void OnValueChanged();
+ BOOL m_autoupdate;
+ afx_msg void OnAutoupdateChanged();
+ BOOL m_strongs;
+ afx_msg void OnStrongsChanged();
+ BOOL m_footnotes;
+ afx_msg void OnFootnotesChanged();
+ BOOL m_headings;
+ afx_msg void OnHeadingsChanged();
+ BOOL m_morphology;
+ afx_msg void OnMorphologyChanged();
+ BOOL m_gaccents;
+ afx_msg void OnGaccentsChanged();
+ BOOL m_hpoints;
+ afx_msg void OnHpointsChanged();
+ BOOL m_hcantillation;
+ afx_msg void OnHcantillationChanged();
+ CString m_script;
+ afx_msg void OnScriptChanged();
+ short m_variants;
+ afx_msg void OnVariantsChanged();
+ BOOL m_scripref;
+ afx_msg void OnScriprefChanged();
+ BOOL m_arshape;
+ afx_msg void OnArshapeChanged();
+ BOOL m_bidireorder;
+ afx_msg void OnBidireorderChanged();
+ short m_outputencoding;
+ afx_msg void OnOutputencodingChanged();
+ afx_msg long query();
+ //}}AFX_DISPATCH
+ DECLARE_DISPATCH_MAP()
+
+// Event maps
+ //{{AFX_EVENT(CActiveDiathekeCtrl)
+ void FireValueChanged()
+ {FireEvent(eventidValueChanged,EVENT_PARAM(VTS_NONE));}
+ //}}AFX_EVENT
+ DECLARE_EVENT_MAP()
+
+// Dispatch and event IDs
+public:
+ enum {
+ //{{AFX_DISP_ID(CActiveDiathekeCtrl)
+ dispidMaxverses = 1L,
+ dispidOutputformat = 2L,
+ dispidSearchtype = 3L,
+ dispidBook = 4L,
+ dispidLocale = 5L,
+ dispidKey = 6L,
+ dispidValue = 7L,
+ dispidAutoupdate = 8L,
+ dispidStrongs = 9L,
+ dispidFootnotes = 10L,
+ dispidHeadings = 11L,
+ dispidMorphology = 12L,
+ dispidGaccents = 13L,
+ dispidHpoints = 14L,
+ dispidHcantillation = 15L,
+ dispidScript = 16L,
+ dispidVariants = 17L,
+ dispidScripref = 18L,
+ dispidArshape = 19L,
+ dispidBidireorder = 20L,
+ dispidOutputencoding = 21L,
+ dispidQuery = 22L,
+ eventidValueChanged = 1L,
+ //}}AFX_DISP_ID
+ };
+private:
+ bool isQuerying;
+};
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
+
+#endif // !defined(AFX_ACTIVEDIATHEKECTL_H__10F16FE7_A96E_4D91_94BD_CFB96F27772D__INCLUDED)
diff --git a/apps/windoze/vc/ActiveDiatheke/ActiveDiathekePpg.cpp b/apps/windoze/vc/ActiveDiatheke/ActiveDiathekePpg.cpp
new file mode 100644
index 0000000..72a5ada
--- /dev/null
+++ b/apps/windoze/vc/ActiveDiatheke/ActiveDiathekePpg.cpp
@@ -0,0 +1,140 @@
+// ActiveDiathekePpg.cpp : Implementation of the CActiveDiathekePropPage property page class.
+
+#include "stdafx.h"
+#include "ActiveDiatheke.h"
+#include "ActiveDiathekePpg.h"
+#include "../../../console/diatheke/corediatheke.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#undef THIS_FILE
+static char THIS_FILE[] = __FILE__;
+#endif
+
+
+IMPLEMENT_DYNCREATE(CActiveDiathekePropPage, COlePropertyPage)
+
+
+/////////////////////////////////////////////////////////////////////////////
+// Message map
+
+BEGIN_MESSAGE_MAP(CActiveDiathekePropPage, COlePropertyPage)
+ //{{AFX_MSG_MAP(CActiveDiathekePropPage)
+ // NOTE - ClassWizard will add and remove message map entries
+ // DO NOT EDIT what you see in these blocks of generated code !
+ //}}AFX_MSG_MAP
+END_MESSAGE_MAP()
+
+
+/////////////////////////////////////////////////////////////////////////////
+// Initialize class factory and guid
+
+IMPLEMENT_OLECREATE_EX(CActiveDiathekePropPage, "ACTIVEDIATHEKE.ActiveDiathekePropPage.1",
+ 0x8b2a25a0, 0xf098, 0x405e, 0x90, 0xa0, 0x16, 0x53, 0x31, 0x8c, 0xe9, 0x7c)
+
+
+/////////////////////////////////////////////////////////////////////////////
+// CActiveDiathekePropPage::CActiveDiathekePropPageFactory::UpdateRegistry -
+// Adds or removes system registry entries for CActiveDiathekePropPage
+
+BOOL CActiveDiathekePropPage::CActiveDiathekePropPageFactory::UpdateRegistry(BOOL bRegister)
+{
+ if (bRegister)
+ return AfxOleRegisterPropertyPageClass(AfxGetInstanceHandle(),
+ m_clsid, IDS_ACTIVEDIATHEKE_PPG);
+ else
+ return AfxOleUnregisterClass(m_clsid, NULL);
+}
+
+
+/////////////////////////////////////////////////////////////////////////////
+// CActiveDiathekePropPage::CActiveDiathekePropPage - Constructor
+
+CActiveDiathekePropPage::CActiveDiathekePropPage() :
+ COlePropertyPage(IDD, IDS_ACTIVEDIATHEKE_PPG_CAPTION)
+{
+ //{{AFX_DATA_INIT(CActiveDiathekePropPage)
+ m_book = _T("KJV");
+ m_key = _T("John 3:16");
+ m_locale = _T("en");
+ m_maxverses = -1;
+ m_searchtype = ST_NONE;
+ m_strongs = FALSE;
+ m_footnotes = FALSE;
+ m_headings = FALSE;
+ m_morphology = FALSE;
+ m_outputformat = FMT_RTF;
+ m_autoupdate = FALSE;
+ m_script = _T("Off");
+ m_hpoints = TRUE;
+ m_hcantillation = FALSE;
+ m_gaccents = TRUE;
+ m_arshape = FALSE;
+ m_bidireorder = FALSE;
+ m_outputencoding = ENC_RTF;
+ m_scripref = TRUE;
+ m_variants = 0;
+ //}}AFX_DATA_INIT
+}
+
+
+/////////////////////////////////////////////////////////////////////////////
+// CActiveDiathekePropPage::DoDataExchange - Moves data between page and properties
+
+void CActiveDiathekePropPage::DoDataExchange(CDataExchange* pDX)
+{
+ //{{AFX_DATA_MAP(CActiveDiathekePropPage)
+ DDX_Control(pDX, IDC_SPIN2, m_variantsSpinCtrl);
+ DDX_Control(pDX, IDC_SPIN1, m_maxversesSpinCtrl);
+ DDP_Text(pDX, IDC_BOOK, m_book, _T("book") );
+ DDX_Text(pDX, IDC_BOOK, m_book);
+ DDP_Text(pDX, IDC_KEY, m_key, _T("key") );
+ DDX_Text(pDX, IDC_KEY, m_key);
+ DDP_Text(pDX, IDC_LOCALE, m_locale, _T("locale") );
+ DDX_Text(pDX, IDC_LOCALE, m_locale);
+ DDP_Text(pDX, IDC_MAXVERSES, m_maxverses, _T("maxverses") );
+ DDX_Text(pDX, IDC_MAXVERSES, m_maxverses);
+ DDV_MinMaxLong(pDX, m_maxverses, -1, 64000);
+ DDP_CBIndex(pDX, IDV_SEARCHTYPE, m_searchtype, _T("searchtype") );
+ DDX_CBIndex(pDX, IDV_SEARCHTYPE, m_searchtype);
+ DDP_Check(pDX, IDC_STRONGS, m_strongs, _T("strongs") );
+ DDX_Check(pDX, IDC_STRONGS, m_strongs);
+ DDP_Check(pDX, IDC_FOOTNOTES, m_footnotes, _T("footnotes") );
+ DDX_Check(pDX, IDC_FOOTNOTES, m_footnotes);
+ DDP_Check(pDX, IDC_HEADINGS, m_headings, _T("headings") );
+ DDX_Check(pDX, IDC_HEADINGS, m_headings);
+ DDP_Check(pDX, IDC_MORPHOLOGY, m_morphology, _T("morphology") );
+ DDX_Check(pDX, IDC_MORPHOLOGY, m_morphology);
+ DDP_CBIndex(pDX, IDC_OUTPUTFORMAT, m_outputformat, _T("outputformat") );
+ DDX_CBIndex(pDX, IDC_OUTPUTFORMAT, m_outputformat);
+ DDP_Check(pDX, IDC_AUTOUPDATE, m_autoupdate, _T("autoupdate") );
+ DDX_Check(pDX, IDC_AUTOUPDATE, m_autoupdate);
+ DDP_Text(pDX, IDC_SCRIPT, m_script, _T("script") );
+ DDX_Text(pDX, IDC_SCRIPT, m_script);
+ DDP_Check(pDX, IDC_HEBREWPOINTS, m_hpoints, _T("hebrewpoints") );
+ DDX_Check(pDX, IDC_HEBREWPOINTS, m_hpoints);
+ DDP_Check(pDX, IDC_HEBREWCANTILLATION, m_hcantillation, _T("hebrewcantillation") );
+ DDX_Check(pDX, IDC_HEBREWCANTILLATION, m_hcantillation);
+ DDP_Check(pDX, IDC_GREEKACCENTS, m_gaccents, _T("greekaccents") );
+ DDX_Check(pDX, IDC_GREEKACCENTS, m_gaccents);
+ DDP_Check(pDX, IDC_ARSHAPE, m_arshape, _T("arshape") );
+ DDX_Check(pDX, IDC_ARSHAPE, m_arshape);
+ DDP_Check(pDX, IDC_BIDIREORDER, m_bidireorder, _T("bidireorder") );
+ DDX_Check(pDX, IDC_BIDIREORDER, m_bidireorder);
+ DDP_CBIndex(pDX, IDC_OUTPUTENCODING, m_outputencoding, _T("outputencoding") );
+ DDX_CBIndex(pDX, IDC_OUTPUTENCODING, m_outputencoding);
+ DDP_Check(pDX, IDC_SCRIPREF, m_scripref, _T("scripref") );
+ DDX_Check(pDX, IDC_SCRIPREF, m_scripref);
+ DDP_Text(pDX, IDC_VARIANTS, m_variants, _T("variants") );
+ DDX_Text(pDX, IDC_VARIANTS, m_variants);
+ DDV_MinMaxInt(pDX, m_variants, -1, 1);
+ //}}AFX_DATA_MAP
+ DDP_PostProcessing(pDX);
+
+ m_variantsSpinCtrl.SetRange32(-1, 1);
+ m_maxversesSpinCtrl.SetRange32(-1, 64000);
+}
+
+
+/////////////////////////////////////////////////////////////////////////////
+// CActiveDiathekePropPage message handlers
diff --git a/apps/windoze/vc/ActiveDiatheke/ActiveDiathekePpg.h b/apps/windoze/vc/ActiveDiatheke/ActiveDiathekePpg.h
new file mode 100644
index 0000000..c8b63e7
--- /dev/null
+++ b/apps/windoze/vc/ActiveDiatheke/ActiveDiathekePpg.h
@@ -0,0 +1,66 @@
+#if !defined(AFX_ACTIVEDIATHEKEPPG_H__47D3068E_9EAA_433E_9C21_DB523C8F31DD__INCLUDED_)
+#define AFX_ACTIVEDIATHEKEPPG_H__47D3068E_9EAA_433E_9C21_DB523C8F31DD__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+// ActiveDiathekePpg.h : Declaration of the CActiveDiathekePropPage property page class.
+
+////////////////////////////////////////////////////////////////////////////
+// CActiveDiathekePropPage : See ActiveDiathekePpg.cpp.cpp for implementation.
+
+class CActiveDiathekePropPage : public COlePropertyPage
+{
+ DECLARE_DYNCREATE(CActiveDiathekePropPage)
+ DECLARE_OLECREATE_EX(CActiveDiathekePropPage)
+
+// Constructor
+public:
+ CActiveDiathekePropPage();
+
+// Dialog Data
+ //{{AFX_DATA(CActiveDiathekePropPage)
+ enum { IDD = IDD_PROPPAGE_ACTIVEDIATHEKE };
+ CSpinButtonCtrl m_variantsSpinCtrl;
+ CSpinButtonCtrl m_maxversesSpinCtrl;
+ CString m_book;
+ CString m_key;
+ CString m_locale;
+ long m_maxverses;
+ int m_searchtype;
+ BOOL m_strongs;
+ BOOL m_footnotes;
+ BOOL m_headings;
+ BOOL m_morphology;
+ int m_outputformat;
+ BOOL m_autoupdate;
+ CString m_script;
+ BOOL m_hpoints;
+ BOOL m_hcantillation;
+ BOOL m_gaccents;
+ BOOL m_arshape;
+ BOOL m_bidireorder;
+ int m_outputencoding;
+ BOOL m_scripref;
+ short m_variants;
+ //}}AFX_DATA
+
+// Implementation
+protected:
+ virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
+
+// Message maps
+protected:
+ //{{AFX_MSG(CActiveDiathekePropPage)
+ // NOTE - ClassWizard will add and remove member functions here.
+ // DO NOT EDIT what you see in these blocks of generated code !
+ //}}AFX_MSG
+ DECLARE_MESSAGE_MAP()
+
+};
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
+
+#endif // !defined(AFX_ACTIVEDIATHEKEPPG_H__47D3068E_9EAA_433E_9C21_DB523C8F31DD__INCLUDED)
diff --git a/apps/windoze/vc/ActiveDiatheke/ReadMe.txt b/apps/windoze/vc/ActiveDiatheke/ReadMe.txt
new file mode 100644
index 0000000..1be88a7
--- /dev/null
+++ b/apps/windoze/vc/ActiveDiatheke/ReadMe.txt
@@ -0,0 +1,84 @@
+========================================================================
+ ActiveX Control DLL : ACTIVEDIATHEKE
+========================================================================
+
+ControlWizard has created this project for your ACTIVEDIATHEKE ActiveX Control
+DLL, which contains 1 control.
+
+This skeleton project not only demonstrates the basics of writing an
+ActiveX Control, but is also a starting point for writing the specific
+features of your control.
+
+This file contains a summary of what you will find in each of the files
+that make up your ACTIVEDIATHEKE ActiveX Control DLL.
+
+ActiveDiatheke.dsp
+ This file (the project file) contains information at the project level and
+ is used to build a single project or subproject. Other users can share the
+ project (.dsp) file, but they should export the makefiles locally.
+
+ActiveDiatheke.h
+ This is the main include file for the ActiveX Control DLL. It
+ includes other project-specific includes such as resource.h.
+
+ActiveDiatheke.cpp
+ This is the main source file that contains code for DLL initialization,
+ termination and other bookkeeping.
+
+ActiveDiatheke.rc
+ This is a listing of the Microsoft Windows resources that the project
+ uses. This file can be directly edited with the Visual C++ resource
+ editor.
+
+ActiveDiatheke.def
+ This file contains information about the ActiveX Control DLL that
+ must be provided to run with Microsoft Windows.
+
+ActiveDiatheke.clw
+ This file contains information used by ClassWizard to edit existing
+ classes or add new classes. ClassWizard also uses this file to store
+ information needed to generate and edit message maps and dialog data
+ maps and to generate prototype member functions.
+
+ActiveDiatheke.odl
+ This file contains the Object Description Language source code for the
+ type library of your control.
+
+/////////////////////////////////////////////////////////////////////////////
+ActiveDiatheke control:
+
+ActiveDiathekeCtl.h
+ This file contains the declaration of the CActiveDiathekeCtrl C++ class.
+
+ActiveDiathekeCtl.cpp
+ This file contains the implementation of the CActiveDiathekeCtrl C++ class.
+
+ActiveDiathekePpg.h
+ This file contains the declaration of the CActiveDiathekePropPage C++ class.
+
+ActiveDiathekePpg.cpp
+ This file contains the implementation of the CActiveDiathekePropPage C++ class.
+
+ActiveDiathekeCtl.bmp
+ This file contains a bitmap that a container will use to represent the
+ CActiveDiathekeCtrl control when it appears on a tool palette. This bitmap
+ is included by the main resource file ActiveDiatheke.rc.
+
+/////////////////////////////////////////////////////////////////////////////
+Other standard files:
+
+stdafx.h, stdafx.cpp
+ These files are used to build a precompiled header (PCH) file
+ named stdafx.pch and a precompiled types (PCT) file named stdafx.obj.
+
+resource.h
+ This is the standard header file, which defines new resource IDs.
+ The Visual C++ resource editor reads and updates this file.
+
+/////////////////////////////////////////////////////////////////////////////
+Other notes:
+
+ControlWizard uses "TODO:" to indicate parts of the source code you
+should add to or customize.
+
+/////////////////////////////////////////////////////////////////////////////
diff --git a/apps/windoze/vc/ActiveDiatheke/Resource.h b/apps/windoze/vc/ActiveDiatheke/Resource.h
new file mode 100644
index 0000000..8b4a005
--- /dev/null
+++ b/apps/windoze/vc/ActiveDiatheke/Resource.h
@@ -0,0 +1,42 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Developer Studio generated include file.
+// Used by ActiveDiatheke.rc
+//
+#define IDS_ACTIVEDIATHEKE 1
+#define IDB_ACTIVEDIATHEKE 1
+#define IDS_ACTIVEDIATHEKE_PPG 2
+#define IDS_ACTIVEDIATHEKE_PPG_CAPTION 200
+#define IDD_PROPPAGE_ACTIVEDIATHEKE 200
+#define IDC_MAXVERSES 205
+#define IDC_VARIANTS 206
+#define IDC_LOCALE 208
+#define IDC_SCRIPT 209
+#define IDV_SEARCHTYPE 210
+#define IDC_OUTPUTFORMAT 211
+#define IDC_OUTPUTENCODING 212
+#define IDC_KEY 213
+#define IDC_BOOK 214
+#define IDC_SPIN1 215
+#define IDC_SPIN2 216
+#define IDC_STRONGS 217
+#define IDC_FOOTNOTES 218
+#define IDC_HEADINGS 219
+#define IDC_AUTOUPDATE 220
+#define IDC_MORPHOLOGY 221
+#define IDC_GREEKACCENTS 222
+#define IDC_HEBREWPOINTS 223
+#define IDC_HEBREWCANTILLATION 224
+#define IDC_SCRIPREF 226
+#define IDC_ARSHAPE 227
+#define IDC_BIDIREORDER 228
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 202
+#define _APS_NEXT_COMMAND_VALUE 32768
+#define _APS_NEXT_CONTROL_VALUE 221
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/apps/windoze/vc/ActiveDiatheke/StdAfx.cpp b/apps/windoze/vc/ActiveDiatheke/StdAfx.cpp
new file mode 100644
index 0000000..07f7b46
--- /dev/null
+++ b/apps/windoze/vc/ActiveDiatheke/StdAfx.cpp
@@ -0,0 +1,5 @@
+// stdafx.cpp : source file that includes just the standard includes
+// stdafx.pch will be the pre-compiled header
+// stdafx.obj will contain the pre-compiled type information
+
+#include "stdafx.h"
diff --git a/apps/windoze/vc/ActiveDiatheke/StdAfx.h b/apps/windoze/vc/ActiveDiatheke/StdAfx.h
new file mode 100644
index 0000000..bf7f13d
--- /dev/null
+++ b/apps/windoze/vc/ActiveDiatheke/StdAfx.h
@@ -0,0 +1,29 @@
+#if !defined(AFX_STDAFX_H__953A30CC_45C9_4F79_B81B_A7FFBD7B8063__INCLUDED_)
+#define AFX_STDAFX_H__953A30CC_45C9_4F79_B81B_A7FFBD7B8063__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+// stdafx.h : include file for standard system include files,
+// or project specific include files that are used frequently,
+// but are changed infrequently
+
+#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
+
+#include <afxctl.h> // MFC support for ActiveX Controls
+#include <afxext.h> // MFC extensions
+#include <afxdtctl.h> // MFC support for Internet Explorer 4 Comon Controls
+#ifndef _AFX_NO_AFXCMN_SUPPORT
+#include <afxcmn.h> // MFC support for Windows Common Controls
+#endif // _AFX_NO_AFXCMN_SUPPORT
+
+// Delete the two includes below if you do not wish to use the MFC
+// database classes
+#include <afxdb.h> // MFC database classes
+#include <afxdao.h> // MFC DAO database classes
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
+
+#endif // !defined(AFX_STDAFX_H__953A30CC_45C9_4F79_B81B_A7FFBD7B8063__INCLUDED_)
diff --git a/apps/windoze/vc/swordlib/swordlib.dsp b/apps/windoze/vc/swordlib/swordlib.dsp
new file mode 100644
index 0000000..c495b75
--- /dev/null
+++ b/apps/windoze/vc/swordlib/swordlib.dsp
@@ -0,0 +1,1086 @@
+# Microsoft Developer Studio Project File - Name="swordlib" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Static Library" 0x0104
+
+CFG=swordlib - Win32 Debug with ICU
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "swordlib.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "swordlib.mak" CFG="swordlib - Win32 Debug with ICU"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "swordlib - Win32 Release" (based on "Win32 (x86) Static Library")
+!MESSAGE "swordlib - Win32 Debug" (based on "Win32 (x86) Static Library")
+!MESSAGE "swordlib - Win32 Debug with ICU" (based on "Win32 (x86) Static Library")
+!MESSAGE "swordlib - Win32 Release with ICU" (based on "Win32 (x86) Static Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "swordlib - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
+# ADD CPP /nologo /w /W0 /GX /O2 /I "../../../../include" /I "../../../../src/utilfuns/win32" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "REGEX_MALLOC" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
+# ADD CPP /nologo /w /W0 /Gm /GX /ZI /Od /I "../../../../src/utilfuns/win32" /I "../../../../include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "REGEX_MALLOC" /YX /FD /GZ /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 Debug with ICU"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "swordlib___Win32_Debug_with_ICU"
+# PROP BASE Intermediate_Dir "swordlib___Win32_Debug_with_ICU"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "swordlib___Win32_Debug_with_ICU"
+# PROP Intermediate_Dir "swordlib___Win32_Debug_with_ICU"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /w /W0 /Gm /GX /ZI /Od /I "../../../../src/utilfuns/win32" /I "../../../../include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "REGEX_MALLOC" /D "__VISUALC__" /YX /FD /GZ /c
+# ADD CPP /nologo /w /W0 /Gm /GX /ZI /Od /I "../../../../src/utilfuns/win32" /I "../../../../include" /I "../../../../../icu-sword/include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "REGEX_MALLOC" /D "_ICU_" /YX /FD /GZ /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+
+!ELSEIF "$(CFG)" == "swordlib - Win32 Release with ICU"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "swordlib___Win32_Release_with_ICU"
+# PROP BASE Intermediate_Dir "swordlib___Win32_Release_with_ICU"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "swordlib___Win32_Release_with_ICU"
+# PROP Intermediate_Dir "swordlib___Win32_Release_with_ICU"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /w /W0 /GX /O2 /I "../../../../include" /I "../../../../src/utilfuns/win32" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "REGEX_MALLOC" /D "__VISUALC__" /YX /FD /c
+# ADD CPP /nologo /w /W0 /GX /O2 /I "../../../../include" /I "../../../../src/utilfuns/win32" /I "../../../../../icu-sword/include" /D "NDEBUG" /D "_ICU_" /D "WIN32" /D "_MBCS" /D "_LIB" /D "REGEX_MALLOC" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+
+!ENDIF
+
+# Begin Target
+
+# Name "swordlib - Win32 Release"
+# Name "swordlib - Win32 Debug"
+# Name "swordlib - Win32 Debug with ICU"
+# Name "swordlib - Win32 Release with ICU"
+# Begin Group "Sword Source Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\adler32.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\cipherfil.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\compress.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\crc32.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\deflate.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\win32\dirent.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\mgr\encfiltmgr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\common\entriesblk.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\mgr\filemgr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\gbffootnotes.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\gbfheadings.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\gbfhtml.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\gbfhtmlhref.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\gbfmorph.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\gbfplain.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\gbfrtf.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\gbfstrongs.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\gbfthml.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\Greek2Greek.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\greeklexattribs.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\gzio.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\frontend\im\hebrewmcim.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\comments\hrefcom\hrefcom.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\infblock.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\infcodes.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\inffast.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\inflate.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\inftrees.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\infutil.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\latin1utf16.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\latin1utf8.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\keys\listkey.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\mgr\localemgr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\common\lzsscomprs.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\mgr\markupfiltmgr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\frontend\im\nullim.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\plainfootnotes.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\plainhtml.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\comments\rawcom\rawcom.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\comments\rawfiles\rawfiles.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\genbook\rawgenbook\rawgenbook.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\lexdict\rawld\rawld.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\lexdict\rawld4\rawld4.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\common\rawstr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\common\rawstr4.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\texts\rawtext\rawtext.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\common\rawverse.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\regex.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\roman.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\rtfhtml.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\rwphtml.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\rwprtf.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\common\sapphire.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\scsuutf8.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\keys\strkey.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\swbasicfilter.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\mgr\swcacher.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\common\swcipher.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\comments\swcom.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\common\swcomprs.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\mgr\swconfig.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\frontend\swdisp.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\mgr\swfiltermgr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\genbook\swgenbook.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\frontend\im\swinputmeth.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\keys\swkey.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\lexdict\swld.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\mgr\swlocale.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\frontend\swlog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\mgr\swmgr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\swmodule.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\texts\swtext.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\swunicod.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\swversion.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmlfootnotes.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmlgbf.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmlheadings.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmlhtml.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmlhtmlhref.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmllemma.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmlmorph.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmlolb.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmlplain.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmlrtf.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmlscripref.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmlstrongs.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\thmlvariants.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\keys\treekey.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\keys\treekeyidx.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\trees.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\uncompr.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\unicodertf.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\untgz.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\utf16utf8.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\utf8arshaping.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\utf8bidireorder.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\utf8cantillation.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\utf8greekaccents.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\utf8hebrewpoints.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\utf8html.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\utf8latin1.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\utf8nfc.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\utf8nfkd.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\utf8transliterator.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\filters\utf8utf16.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\utilconf.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\utilstr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\keys\versekey.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\comments\zcom\zcom.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\common\zipcomprs.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\lexdict\zld\zld.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\common\zstr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\texts\ztext\ztext.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\zlib\zutil.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\modules\common\zverse.cpp
+# End Source File
+# End Group
+# Begin Group "Sword Header Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\..\..\include\canon.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\cipherfil.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\defs.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\utilfuns\win32\dirent.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\echomod.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\encfiltmgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\entriesblk.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\femain.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\filemgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\flatapi.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\gbffootnotes.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\gbfheadings.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\gbfhtml.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\gbfhtmlhref.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\gbfmorph.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\gbfplain.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\gbfrtf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\gbfstrongs.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\gbfthml.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\Greek2Greek.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\GreekChars.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\greeklexattribs.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\hebrewmcim.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\hrefcom.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\latin1utf16.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\latin1utf8.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\listkey.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\localemgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\lzsscomprs.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\markupfiltmgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\multimapwdef.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\nullim.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\plainfootnotes.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\plainhtml.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rawcom.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rawfiles.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rawgbf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rawgenbook.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rawld.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rawld4.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rawstr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rawstr4.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rawtext.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rawverse.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\regex.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\roman.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rtfhtml.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rwphtml.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\rwprtf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\sapphire.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\scsuutf8.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\strkey.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swbasicfilter.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swcacher.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swcipher.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swcom.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swcomprs.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swconfig.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swdisp.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swdisprtf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swdisprtfchap.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swfilter.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swfiltermgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swgenbook.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swinputmeth.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swkey.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swld.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swlocale.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swlog.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swmacs.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swmgr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swmodule.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swobject.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swtext.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swunicod.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swversion.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\swwinlog.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\sysdata.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\tbdisp.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmlfootnotes.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmlgbf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmlheadings.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmlhtml.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmlhtmlhref.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmllemma.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmlmorph.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmlolb.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmlplain.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmlrtf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmlscripref.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmlstrongs.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\thmlvariants.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\treekey.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\treekeyidx.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\unicodertf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\unixstr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\untgz.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utf16utf8.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utf8arshaping.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utf8bidireorder.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utf8cantillation.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utf8greekaccents.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utf8hebrewpoints.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utf8html.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utf8latin1.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utf8nfc.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utf8nfkd.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utf8transliterator.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utf8utf16.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utilconf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utilfuns.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\utilstr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\versekey.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\zcom.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\zconf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\zipcomprs.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\zld.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\zlib.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\zstr.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\ztext.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\include\zverse.h
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/apps/windoze/vc/swordlib/swordlib.dsw b/apps/windoze/vc/swordlib/swordlib.dsw
new file mode 100644
index 0000000..13a28f8
--- /dev/null
+++ b/apps/windoze/vc/swordlib/swordlib.dsw
@@ -0,0 +1,29 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "swordlib"=.\swordlib.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+